X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fchatitem.h;h=a00e1e664aae4ed95bddf5405c7132c5aa792f53;hb=dcf8bbf7186419fcf1fce2db713a838b52ac2355;hp=d6888c3e8de474cd89f0b94845df499922230d15;hpb=209c692cb560ba979442d2f75ed08b4f6adf3120;p=quassel.git diff --git a/src/qtui/chatitem.h b/src/qtui/chatitem.h index d6888c3e..a00e1e66 100644 --- a/src/qtui/chatitem.h +++ b/src/qtui/chatitem.h @@ -50,32 +50,44 @@ class ChatItem : public QGraphicsItem { virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual QVariant data(int role) const; - //QString text() const; - //void setText(const UiStyle::StyledText &text); - - //QTextOption textOption() const; - //void setTextOption(const QTextOption &option); // returns height int setWidth(int width); - //virtual void layout(); protected: //void mouseMoveEvent ( QGraphicsSceneMouseEvent * event ); private: int heightForWidth(int width); - void layout(); + QTextLayout *createLayout(QTextOption::WrapMode); QRectF _boundingRect; QFontMetricsF *_fontMetrics; quint8 _lines; - //QTextLayout _layout; - //QTextOption _textOption; QPersistentModelIndex _index; QTextLayout *_layout; QList _wrapPositions; + + class WrapColumnFinder; +}; + +class ChatItem::WrapColumnFinder { + public: + WrapColumnFinder(ChatItem *parent); + ~WrapColumnFinder(); + + int nextWrapColumn(); + + private: + ChatItem *item; + QTextLayout *layout; + QTextLine line; + ChatLineModel::WrapList wrapList; + int wordidx; + int lastwrapcol; + qreal lastwrappos; + qreal w; }; #endif