X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatlinemodelitem.h;h=8f90d22b323f7ffbc836cdc5642ec6946f7ee6a4;hp=9fe4b8bc1c88af5a1fc31e91cbe47cdd7c07cc6e;hb=6b2f3b5846f1329e9a5ea38192ae9ca6e47920bd;hpb=5199330f0b249b20c27cd372d995909f97433786 diff --git a/src/qtui/chatlinemodelitem.h b/src/qtui/chatlinemodelitem.h index 9fe4b8bc..8f90d22b 100644 --- a/src/qtui/chatlinemodelitem.h +++ b/src/qtui/chatlinemodelitem.h @@ -30,6 +30,7 @@ public: ChatLineModelItem(const Message &); virtual QVariant data(int column, int role) const; + virtual bool setData(int column, const QVariant &value, int role); virtual inline const Message &message() const { return _styledMsg; } virtual inline const QDateTime ×tamp() const { return _styledMsg.timestamp(); } @@ -39,6 +40,17 @@ public: virtual inline Message::Type msgType() const { return _styledMsg.type(); } virtual inline Message::Flags msgFlags() const { return _styledMsg.flags(); } + virtual inline void invalidateWrapList() { _wrapList.clear(); } + + /// Used to store information about words to be used for wrapping + struct Word { + quint16 start; + qreal endX; + qreal width; + qreal trailing; + }; + typedef QVector WrapList; + private: QVariant timestampData(int role) const; QVariant senderData(int role) const; @@ -47,7 +59,13 @@ private: QVariant backgroundBrush(UiStyle::FormatType subelement, bool selected = false) const; quint32 messageLabel() const; + void computeWrapList() const; + + mutable WrapList _wrapList; UiStyle::StyledMessage _styledMsg; + + static unsigned char *TextBoundaryFinderBuffer; + static int TextBoundaryFinderBufferSize; }; #endif