void initLayoutHelper(QTextLayout *layout, QTextOption::WrapMode, Qt::Alignment = Qt::AlignLeft) const;
virtual inline void initLayout(QTextLayout *layout) const {
- initLayoutHelper(layout, QTextOption::WrapAnywhere);
+ initLayoutHelper(layout, QTextOption::NoWrap);
doLayout(layout);
}
virtual void doLayout(QTextLayout *) const;
+ virtual UiStyle::FormatList formatList() const;
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
enum { Type = ChatScene::ChatItemType };
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
- virtual QTextLayout::FormatRange selectionFormat() const;
- virtual inline QVector<QTextLayout::FormatRange> additionalFormats() const { return QVector<QTextLayout::FormatRange>(); }
+ void paintBackground(QPainter *);
+ QVector<QTextLayout::FormatRange> selectionFormats() const;
+ virtual QVector<QTextLayout::FormatRange> additionalFormats() const;
+ void overlayFormat(UiStyle::FormatList &fmtList, int start, int end, quint32 overlayFmt) const;
inline qint16 selectionStart() const { return _selectionStart; }
inline void setSelectionStart(qint16 start) { _selectionStart = start; }
virtual inline int type() const { return Type; }
inline ChatLineModel::ColumnType column() const { return ChatLineModel::ContentsColumn; }
- inline QFontMetricsF *fontMetrics() const { return _fontMetrics; }
+ QFontMetricsF *fontMetrics() const;
protected:
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
doLayout(layout);
}
virtual void doLayout(QTextLayout *layout) const;
+ virtual UiStyle::FormatList formatList() const;
private:
struct Clickable;
WrapColumnFinder(const ChatItem *parent);
~WrapColumnFinder();
- qint16 nextWrapColumn();
+ qint16 nextWrapColumn(qreal width);
private:
const ChatItem *item;