+ void clear();
+
+signals:
+ void finishedBacklogFetch(BufferId bufferId);
+
+public slots:
+ void requestBacklog(BufferId bufferId);
+ void messagesReceived(BufferId bufferId, int count);
+ void buffersPermanentlyMerged(BufferId bufferId1, BufferId bufferId2);
+ void insertErrorMessage(BufferInfo bufferInfo, const QString &errorString);
+
+protected:
+// virtual MessageModelItem *createMessageModelItem(const Message &) = 0;
+
+ 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;
+ virtual const MessageModelItem *lastMessageItem() const = 0;
+ virtual MessageModelItem *lastMessageItem() = 0;
+ virtual void insertMessage__(int pos, const Message &) = 0;
+ virtual void insertMessages__(int pos, const QList<Message> &) = 0;
+ virtual void removeMessageAt(int i) = 0;
+ virtual void removeAllMessages() = 0;
+ virtual Message takeMessageAt(int i) = 0;
+
+ virtual void customEvent(QEvent *event);
+
+private slots:
+ void changeOfDay();
+
+private:
+ void insertMessageGroup(const QList<Message> &);
+ int insertMessagesGracefully(const QList<Message> &); // inserts as many contiguous msgs as possible. returns numer of inserted msgs.