From: Manuel Nickschas Date: Wed, 6 Aug 2008 19:45:10 +0000 (+0200) Subject: Make use of QtUiMessageProcessor. For now, we just directly layout the messages as... X-Git-Tag: 0.3.0~92 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=c7c0c7673942be376bbcab06dcc62b7f15e406a2 Make use of QtUiMessageProcessor. For now, we just directly layout the messages as we used to. --- diff --git a/src/client/client.cpp b/src/client/client.cpp index f9665c6c..db60bcbc 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -20,6 +20,7 @@ #include "client.h" +#include "abstractmessageprocessor.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), + _messageProcessor(0), _connectedToCore(false), _syncedToCore(false) { @@ -97,6 +99,7 @@ void Client::init() { _bufferModel = new BufferModel(_networkModel); _messageModel = mainUi->createMessageModel(this); + _messageProcessor = mainUi->createMessageProcessor(this); 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::recvMessage(const Message &msg_) { + Message msg = msg_; + messageProcessor()->process(msg); +} + void Client::receiveBacklog(BufferId bufferId, const QVariantList &msgs) { //QTime start = QTime::currentTime(); + QList msglist; foreach(QVariant v, msgs) { - Message msg = v.value(); - checkForHighlight(msg); - _messageModel->insertMessage(msg); - buffer(msg.bufferInfo())->updateActivityLevel(msg); + msglist << v.value(); } + messageProcessor()->process(msglist); //qDebug() << "processed" << msgs.count() << "backlog lines in" << start.msecsTo(QTime::currentTime()); } diff --git a/src/client/client.h b/src/client/client.h index 7c427844..fab9a999 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -31,6 +31,7 @@ class BufferInfo; class Message; class MessageModel; +class AbstractMessageProcessor; 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 AbstractMessageProcessor *messageProcessor() { return instance()->_messageProcessor; } static inline SignalProxy *signalProxy() { return instance()->_signalProxy; } static inline ClientBacklogManager *backlogManager() { return instance()->_backlogManager; } @@ -213,6 +215,7 @@ private: ClientIrcListHelper *_ircListHelper; MessageModel *_messageModel; + AbstractMessageProcessor *_messageProcessor; ClientMode clientMode; diff --git a/src/client/quasselui.h b/src/client/quasselui.h index bcb512be..a278deff 100644 --- a/src/client/quasselui.h +++ b/src/client/quasselui.h @@ -25,27 +25,15 @@ #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 - 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() {} @@ -57,6 +45,4 @@ class AbstractUi : public QObject { }; - - #endif diff --git a/src/qtui/qtui.cpp b/src/qtui/qtui.cpp index a6e7ddf4..fb1bd50b 100644 --- a/src/qtui/qtui.cpp +++ b/src/qtui/qtui.cpp @@ -22,6 +22,7 @@ #include "chatlinemodel.h" #include "mainwin.h" +#include "qtuimessageprocessor.h" QtUiStyle *QtUi::_style; @@ -52,8 +53,8 @@ MessageModel *QtUi::createMessageModel(QObject *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() { diff --git a/src/qtui/qtui.h b/src/qtui/qtui.h index bbe31f7d..46f21c17 100644 --- a/src/qtui/qtui.h +++ b/src/qtui/qtui.h @@ -26,6 +26,7 @@ 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 @@ -38,8 +39,8 @@ class QtUi : public AbstractUi { QtUi(); ~QtUi(); //void init(); - MessageModel *createMessageModel(QObject *parent = 0); - AbstractUiMsg *layoutMsg(const Message &); + MessageModel *createMessageModel(QObject *parent); + AbstractMessageProcessor *createMessageProcessor(QObject *parent); static QtUiStyle *style();