Make use of QtUiMessageProcessor. For now, we just directly layout the messages as...
authorManuel Nickschas <sputnick@quassel-irc.org>
Wed, 6 Aug 2008 19:45:10 +0000 (21:45 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 6 Aug 2008 19:45:10 +0000 (21:45 +0200)
src/client/client.cpp
src/client/client.h
src/client/quasselui.h
src/qtui/qtui.cpp
src/qtui/qtui.h

index f9665c6..db60bcb 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "client.h"
 
 
 #include "client.h"
 
+#include "abstractmessageprocessor.h"
 #include "bufferinfo.h"
 #include "buffermodel.h"
 #include "buffersettings.h"
 #include "bufferinfo.h"
 #include "buffermodel.h"
 #include "buffersettings.h"
@@ -72,6 +73,7 @@ Client::Client(QObject *parent)
     _bufferViewManager(0),
     _ircListHelper(new ClientIrcListHelper(this)),
     _messageModel(0),
     _bufferViewManager(0),
     _ircListHelper(new ClientIrcListHelper(this)),
     _messageModel(0),
+    _messageProcessor(0),
     _connectedToCore(false),
     _syncedToCore(false)
 {
     _connectedToCore(false),
     _syncedToCore(false)
 {
@@ -97,6 +99,7 @@ void Client::init() {
 
   _bufferModel = new BufferModel(_networkModel);
   _messageModel = mainUi->createMessageModel(this);
 
   _bufferModel = new BufferModel(_networkModel);
   _messageModel = mainUi->createMessageModel(this);
+  _messageProcessor = mainUi->createMessageProcessor(this);
 
   SignalProxy *p = signalProxy();
 
 
   SignalProxy *p = signalProxy();
 
@@ -431,25 +434,23 @@ void Client::networkDestroyed() {
   }
 }
 
   }
 }
 
-void Client::recvMessage(const Message &msg_) {
-  Message msg = msg_;
-  checkForHighlight(msg);
-  _messageModel->insertMessage(msg);
-  buffer(msg.bufferInfo())->updateActivityLevel(msg);
-}
-
+// Hmm... we never used this...
 void Client::recvStatusMsg(QString /*net*/, QString /*msg*/) {
   //recvMessage(net, Message::server("", QString("[STATUS] %1").arg(msg)));
 }
 
 void Client::recvStatusMsg(QString /*net*/, QString /*msg*/) {
   //recvMessage(net, Message::server("", QString("[STATUS] %1").arg(msg)));
 }
 
+void Client::recvMessage(const Message &msg_) {
+  Message msg = msg_;
+  messageProcessor()->process(msg);
+}
+
 void Client::receiveBacklog(BufferId bufferId, const QVariantList &msgs) {
   //QTime start = QTime::currentTime();
 void Client::receiveBacklog(BufferId bufferId, const QVariantList &msgs) {
   //QTime start = QTime::currentTime();
+  QList<Message> msglist;
   foreach(QVariant v, msgs) {
   foreach(QVariant v, msgs) {
-    Message msg = v.value<Message>();
-    checkForHighlight(msg);
-    _messageModel->insertMessage(msg);
-    buffer(msg.bufferInfo())->updateActivityLevel(msg);
+    msglist << v.value<Message>();
   }
   }
+  messageProcessor()->process(msglist);
   //qDebug() << "processed" << msgs.count() << "backlog lines in" << start.msecsTo(QTime::currentTime());
 }
 
   //qDebug() << "processed" << msgs.count() << "backlog lines in" << start.msecsTo(QTime::currentTime());
 }
 
index 7c42784..fab9a99 100644 (file)
@@ -31,6 +31,7 @@
 class BufferInfo;
 class Message;
 class MessageModel;
 class BufferInfo;
 class Message;
 class MessageModel;
+class AbstractMessageProcessor;
 
 class Identity;
 class Network;
 
 class Identity;
 class Network;
@@ -93,6 +94,7 @@ public:
   static inline NetworkModel *networkModel() { return instance()->_networkModel; }
   static inline BufferModel *bufferModel() { return instance()->_bufferModel; }
   static inline MessageModel *messageModel() { return instance()->_messageModel; }
   static inline NetworkModel *networkModel() { return instance()->_networkModel; }
   static inline BufferModel *bufferModel() { return instance()->_bufferModel; }
   static inline MessageModel *messageModel() { return instance()->_messageModel; }
+  static inline AbstractMessageProcessor *messageProcessor() { return instance()->_messageProcessor; }
   static inline SignalProxy *signalProxy() { return instance()->_signalProxy; }
 
   static inline ClientBacklogManager *backlogManager() { return instance()->_backlogManager; }
   static inline SignalProxy *signalProxy() { return instance()->_signalProxy; }
 
   static inline ClientBacklogManager *backlogManager() { return instance()->_backlogManager; }
@@ -213,6 +215,7 @@ private:
   ClientIrcListHelper *_ircListHelper;
 
   MessageModel *_messageModel;
   ClientIrcListHelper *_ircListHelper;
 
   MessageModel *_messageModel;
+  AbstractMessageProcessor *_messageProcessor;
 
   ClientMode clientMode;
 
 
   ClientMode clientMode;
 
index bcb512b..a278def 100644 (file)
 #include "message.h"
 
 class MessageModel;
 #include "message.h"
 
 class MessageModel;
-
-class AbstractUiMsg {
-
-  public:
-    virtual ~AbstractUiMsg() {};
-    virtual QString sender() const = 0;
-    virtual QString text() const = 0;
-    virtual MsgId msgId() const = 0;
-    virtual BufferInfo bufferInfo() const = 0;
-    virtual QDateTime timestamp() const = 0;
-
-};
-
+class AbstractMessageProcessor;
 
 class AbstractUi : public QObject {
   Q_OBJECT
 
   public:
     virtual void init() {};  // called after the client is initialized
 
 class AbstractUi : public QObject {
   Q_OBJECT
 
   public:
     virtual void init() {};  // called after the client is initialized
-    virtual MessageModel *createMessageModel(QObject *parent = 0) = 0;
-    virtual AbstractUiMsg *layoutMsg(const Message &) = 0;
+    virtual MessageModel *createMessageModel(QObject *parent) = 0;
+    virtual AbstractMessageProcessor *createMessageProcessor(QObject *parent) = 0;
 
   protected slots:
     virtual void connectedToCore() {}
 
   protected slots:
     virtual void connectedToCore() {}
@@ -57,6 +45,4 @@ class AbstractUi : public QObject {
 
 };
 
 
 };
 
-
-
 #endif
 #endif
index a6e7ddf..fb1bd50 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "chatlinemodel.h"
 #include "mainwin.h"
 
 #include "chatlinemodel.h"
 #include "mainwin.h"
+#include "qtuimessageprocessor.h"
 
 QtUiStyle *QtUi::_style;
 
 
 QtUiStyle *QtUi::_style;
 
@@ -52,8 +53,8 @@ MessageModel *QtUi::createMessageModel(QObject *parent) {
   return new ChatLineModel(parent);
 }
 
   return new ChatLineModel(parent);
 }
 
-AbstractUiMsg *QtUi::layoutMsg(const Message &msg) {
-  return 0;  // FIXME obsolete?
+AbstractMessageProcessor *QtUi::createMessageProcessor(QObject *parent) {
+  return new QtUiMessageProcessor(parent);
 }
 
 void QtUi::connectedToCore() {
 }
 
 void QtUi::connectedToCore() {
index bbe31f7..46f21c1 100644 (file)
@@ -26,6 +26,7 @@
 
 class MainWin;
 class MessageModel;
 
 class MainWin;
 class MessageModel;
+class QtUiMessageProcessor;
 
 //! This class encapsulates Quassel's Qt-based GUI.
 /** This is basically a wrapper around MainWin, which is necessary because we cannot derive MainWin
 
 //! This class encapsulates Quassel's Qt-based GUI.
 /** This is basically a wrapper around MainWin, which is necessary because we cannot derive MainWin
@@ -38,8 +39,8 @@ class QtUi : public AbstractUi {
     QtUi();
     ~QtUi();
     //void init();
     QtUi();
     ~QtUi();
     //void init();
-    MessageModel *createMessageModel(QObject *parent = 0);
-    AbstractUiMsg *layoutMsg(const Message &);
+    MessageModel *createMessageModel(QObject *parent);
+    AbstractMessageProcessor *createMessageProcessor(QObject *parent);
 
     static QtUiStyle *style();
 
 
     static QtUiStyle *style();