X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fmessagemodel.h;h=c381f0f10143306286c98186edb75f3a693776a6;hp=afbe89f55db0152536c8fd70ff02e73f93aceee8;hb=0854030a4ed01e81750fc1c0c794428b4cf709a6;hpb=32b5e6447458a8e6e8074c40988b2d06f327094f diff --git a/src/client/messagemodel.h b/src/client/messagemodel.h index afbe89f5..c381f0f1 100644 --- a/src/client/messagemodel.h +++ b/src/client/messagemodel.h @@ -27,26 +27,28 @@ #include "message.h" #include "types.h" -class MessageItem; -class MsgId; +class MessageModelItem; +struct MsgId; class MessageModel : public QAbstractItemModel { Q_OBJECT public: enum MessageRole { + DisplayRole = Qt::DisplayRole, + EditRole = Qt::EditRole, MsgIdRole = Qt::UserRole, BufferIdRole, TypeRole, FlagsRole, TimestampRole, - DisplayRole, FormatRole, + ColumnTypeRole, UserRole }; enum ColumnType { - TimestampColumn, SenderColumn, TextColumn, UserColumnType + TimestampColumn, SenderColumn, ContentsColumn, UserColumnType }; MessageModel(QObject *parent); @@ -62,30 +64,32 @@ class MessageModel : public QAbstractItemModel { //virtual Qt::ItemFlags flags(const QModelIndex &index) const; - void insertMessage(const Message &); + bool insertMessage(const Message &, bool fakeMsg = false); void insertMessages(const QList &); + void clear(); + protected: - virtual MessageItem *createMessageItem(const Message &) = 0; + virtual MessageModelItem *createMessageModelItem(const Message &) = 0; private: - QList _messageList; + QList _messageList; int indexForId(MsgId); }; -class MessageItem { +class MessageModelItem { public: - //! Creates a MessageItem from a Message object. + //! Creates a MessageModelItem from a Message object. /** This baseclass implementation takes care of all Message data *except* the stylable strings. * Subclasses need to provide Qt::DisplayRole at least, which should describe the plaintext * strings without formattings (e.g. for searching purposes). */ - MessageItem(const Message &); - virtual ~MessageItem(); + MessageModelItem(const Message &); + virtual ~MessageModelItem(); virtual QVariant data(int column, int role) const; virtual bool setData(int column, const QVariant &value, int role) = 0;