X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fmessagemodel.h;h=2439d1e0f5fe76bc3ff39cd1fd91821291e285e7;hp=afb8ec30da66a69d6c7269a092e4997abcff454d;hb=d8d9cc49774faf66170790ea687c37584e5e7a51;hpb=27302bba72a29977e81b9a0b2d8cde3a62ebc818 diff --git a/src/client/messagemodel.h b/src/client/messagemodel.h index afb8ec30..2439d1e0 100644 --- a/src/client/messagemodel.h +++ b/src/client/messagemodel.h @@ -34,11 +34,12 @@ class MessageModel : public QAbstractItemModel { Q_OBJECT public: - enum MessageRole { + enum MessageModelRole { DisplayRole = Qt::DisplayRole, EditRole = Qt::EditRole, BackgroundRole = Qt::BackgroundRole, - MsgIdRole = Qt::UserRole, + MessageRole = Qt::UserRole, + MsgIdRole, BufferIdRole, TypeRole, FlagsRole, @@ -55,7 +56,7 @@ public: MessageModel(QObject *parent); - inline QModelIndex index(int row, int column, const QModelIndex &/*parent*/ = QModelIndex()) const { return createIndex(row, column); } + inline QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; inline QModelIndex parent(const QModelIndex &) const { return QModelIndex(); } inline int rowCount(const QModelIndex &parent = QModelIndex()) const { return parent.isValid() ? 0 : messageCount(); } inline int columnCount(const QModelIndex &/*parent*/ = QModelIndex()) const { return 3; } @@ -70,7 +71,8 @@ public: void clear(); - virtual const MessageModelItem *messageItemAt(int i) const = 0; +signals: + void finishedBacklogFetch(BufferId bufferId); public slots: void requestBacklog(BufferId bufferId); @@ -83,6 +85,7 @@ protected: virtual int messageCount() const = 0; virtual bool messagesIsEmpty() const = 0; + virtual const MessageModelItem *messageItemAt(int i) const = 0; virtual MessageModelItem *messageItemAt(int i) = 0; virtual const MessageModelItem *firstMessageItem() const= 0; virtual MessageModelItem *firstMessageItem() = 0; @@ -111,6 +114,14 @@ private: QHash _messagesWaiting; }; +// inlines +QModelIndex MessageModel::index(int row, int column, const QModelIndex &parent) const { + if(row < 0 || row >= rowCount(parent) || column < 0 || column >= columnCount(parent)) + return QModelIndex(); + + return createIndex(row, column); +} + // ************************************************** // MessageModelItem // ************************************************** @@ -142,7 +153,6 @@ public: static bool lessThan(const MessageModelItem *m1, const MessageModelItem *m2); private: - Message _msg; BufferId _redirectedTo; };