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(); }
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<Word> WrapList;
+
private:
QVariant timestampData(int role) const;
QVariant senderData(int role) const;
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