X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fmessagemodel.h;h=0f25fa8c8325e464d60bd2ede39bccd30fe6fc97;hb=50d5627b282f063e755f44f02a74aeddd1d07538;hp=a9ae901fab88315c91c2cdb80c3bf4e266cd57e6;hpb=5b53e584f269e9ac1201a428a3812a7a0607ee34;p=quassel.git diff --git a/src/client/messagemodel.h b/src/client/messagemodel.h index a9ae901f..0f25fa8c 100644 --- a/src/client/messagemodel.h +++ b/src/client/messagemodel.h @@ -55,7 +55,7 @@ public: inline QModelIndex index(int row, int column, const QModelIndex &/*parent*/ = QModelIndex()) const { return createIndex(row, column); } inline QModelIndex parent(const QModelIndex &) const { return QModelIndex(); } - inline int rowCount(const QModelIndex &/*parent*/ = QModelIndex()) const { return _messageList.count(); } + inline int rowCount(const QModelIndex &parent = QModelIndex()) const { return parent.isValid() ? 0 : _messageList.count(); } inline int columnCount(const QModelIndex &/*parent*/ = QModelIndex()) const { return 3; } virtual QVariant data(const QModelIndex &index, int role) const; @@ -68,10 +68,17 @@ public: void clear(); +public slots: + void requestBacklog(BufferId bufferId); + void messagesReceived(BufferId bufferId, int count); + protected: virtual MessageModelItem *createMessageModelItem(const Message &) = 0; virtual void customEvent(QEvent *event); +private slots: + void changeOfDay(); + private: void insertMessageGroup(const QList &); int insertMessagesGracefully(const QList &); // inserts as many contiguous msgs as possible. returns numer of inserted msgs. @@ -79,8 +86,14 @@ private: QList _messageList; QList _messageBuffer; + QTimer _dayChangeTimer; + QDateTime _nextDayChange; + QHash _messagesWaiting; }; +// ************************************************** +// MessageModelItem +// ************************************************** class MessageModelItem { public: //! Creates a MessageModelItem from a Message object. @@ -114,4 +127,6 @@ private: Message::Flags _flags; }; +QDebug operator<<(QDebug dbg, const MessageModelItem &msgItem); + #endif