Add MessageModel::insertErrorMessage()
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 5 Mar 2009 15:57:38 +0000 (16:57 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Fri, 13 Mar 2009 19:03:06 +0000 (20:03 +0100)
This allows displaying transient client-side error messages (e.g. for script execution).
These error messages are not sent to the core and hence not stored in the database.

src/client/messagemodel.cpp
src/client/messagemodel.h

index 07af7ac..122156a 100644 (file)
@@ -348,6 +348,18 @@ void MessageModel::changeOfDay() {
   _nextDayChange = _nextDayChange.addSecs(86400);
 }
 
+void MessageModel::insertErrorMessage(BufferInfo bufferInfo, const QString &errorString) {
+  int idx = messageCount();
+  beginInsertRows(QModelIndex(), idx, idx);
+  Message msg(bufferInfo, Message::Error, errorString);
+  if(!messagesIsEmpty())
+    msg.setMsgId(messageItemAt(idx-1)->msgId());
+  else
+    msg.setMsgId(0);
+  insertMessage__(idx, msg);
+  endInsertRows();
+}
+
 void MessageModel::requestBacklog(BufferId bufferId) {
   if(_messagesWaiting.contains(bufferId))
     return;
index 0d540cd..b6b783f 100644 (file)
@@ -73,6 +73,7 @@ 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;