X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fchatitem.h;h=cf71ad9b159ee6fb7ad4ce1f380677d742d01536;hb=86a1220cc45c658954860e6dedbc18e38986ca94;hp=5796f5e90fbf3c8eaab8a7a0ae501e2fbf4b4368;hpb=68cd9a2621c71005cda0ed4fb796bbf5fcbe007e;p=quassel.git diff --git a/src/qtui/chatitem.h b/src/qtui/chatitem.h index 5796f5e9..cf71ad9b 100644 --- a/src/qtui/chatitem.h +++ b/src/qtui/chatitem.h @@ -48,7 +48,7 @@ public: 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; @@ -83,7 +83,8 @@ protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - virtual QTextLayout::FormatRange selectionFormat() const; + void paintBackground(QPainter *); + QVector selectionFormats() const; virtual inline QVector additionalFormats() const { return QVector(); } inline qint16 selectionStart() const { return _selectionStart; } @@ -185,15 +186,13 @@ protected: virtual QVector additionalFormats() const; virtual inline void initLayout(QTextLayout *layout) const { - initLayoutHelper(layout, QTextOption::WrapAnywhere); + initLayoutHelper(layout, QTextOption::WrapAtWordBoundaryOrAnywhere); doLayout(layout); } - virtual void doLayout(QTextLayout *layout) const; private: struct Clickable; class ActionProxy; - class WrapColumnFinder; ContentsChatItemPrivate *_data; ContentsChatItemPrivate *privateData() const; @@ -242,23 +241,6 @@ struct ContentsChatItemPrivate { ContentsChatItemPrivate(const QList &c, ContentsChatItem *parent) : contentsItem(parent), clickables(c) {} }; -class ContentsChatItem::WrapColumnFinder { -public: - WrapColumnFinder(const ChatItem *parent); - ~WrapColumnFinder(); - - qint16 nextWrapColumn(); - -private: - const ChatItem *item; - QTextLayout layout; - QTextLine line; - ChatLineModel::WrapList wrapList; - qint16 wordidx; - qint16 lineCount; - qreal choppedTrailing; -}; - //! Acts as a proxy for Action signals targetted at a ContentsChatItem /** Since a ChatItem is not a QObject, hence cannot receive signals, we use a static ActionProxy * as a receiver instead. This avoids having to handle ChatItem actions (e.g. context menu entries)