class ChatLineModel : public MessageModel {
Q_OBJECT
- public:
- enum ChatLineRole {
- FormatRole = MessageModel::UserRole
- };
+public:
+ enum ChatLineRole {
+ WrapListRole = MessageModel::UserRole
+ };
- ChatLineModel(QObject *parent = 0);
- virtual ~ChatLineModel();
+ ChatLineModel(QObject *parent = 0);
- protected:
- virtual MessageModelItem *createMessageModelItem(const Message &);
+ /// 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;
+
+protected:
+ virtual MessageModelItem *createMessageModelItem(const Message &);
};
+QDataStream &operator<<(QDataStream &out, const ChatLineModel::WrapList);
+QDataStream &operator>>(QDataStream &in, ChatLineModel::WrapList &);
+
+Q_DECLARE_METATYPE(ChatLineModel::WrapList)
+
#endif