X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=a6f7b4b6835d7df1a42f091eb02a86b75c559fa4;hp=8d5e71b98c4e9737a6a5cf7990564bf0af2ffce2;hb=fe4b38e66592f11fdf4c4651863968983daecd2d;hpb=0cc0a7626aa47a6fbb88da7e05dfc4d16a2ec616 diff --git a/src/client/client.cpp b/src/client/client.cpp index 8d5e71b9..a6f7b4b6 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -26,6 +26,7 @@ #include "buffersyncer.h" #include "bufferviewmanager.h" #include "clientbacklogmanager.h" +#include "clientirclisthelper.h" #include "global.h" #include "identity.h" #include "ircchannel.h" @@ -72,10 +73,13 @@ Client::Client(QObject *parent) _backlogManager(new ClientBacklogManager(this)), _bufferViewManager(0), _messageModel(0), + _ircListHelper(new ClientIrcListHelper(this)), _connectedToCore(false), _syncedToCore(false) { _monitorBuffer = new Buffer(BufferInfo(), this); + _signalProxy->synchronize(_ircListHelper); + connect(_backlogManager, SIGNAL(backlog(BufferId, const QVariantList &)), this, SLOT(receiveBacklog(BufferId, const QVariantList &))); } @@ -95,7 +99,7 @@ void Client::init() { _bufferModel = new BufferModel(_networkModel); #ifdef SPUTDEV - _messageModel = new MessageModel(this); + _messageModel = mainUi->createMessageModel(this); #endif SignalProxy *p = signalProxy(); @@ -435,6 +439,7 @@ void Client::networkDestroyed() { } } +#ifndef SPUTDEV void Client::recvMessage(const Message &message) { Message msg = message; Buffer *b; @@ -445,7 +450,6 @@ void Client::recvMessage(const Message &message) { // TODO: make redirected messages show up in the correct buffer! -#ifndef SPUTDEV if(msg.flags() & Message::Redirected) { BufferSettings bufferSettings; bool inStatus = bufferSettings.value("UserMessagesInStatusBuffer", QVariant(true)).toBool(); @@ -489,38 +493,48 @@ void Client::recvMessage(const Message &message) { b = buffer(msg.bufferInfo()); b->appendMsg(msg); } -#endif - //bufferModel()->updateBufferActivity(msg); - // monitor buffer goes away -#ifndef SPUTDEV if(msg.type() == Message::Plain || msg.type() == Message::Notice || msg.type() == Message::Action) { const Network *net = network(msg.bufferInfo().networkId()); QString networkName = net != 0 ? net->networkName() + ":" : QString(); QString sender = networkName + msg.bufferInfo().bufferName() + ":" + msg.sender(); - Message mmsg = Message(msg.timestamp(), msg.bufferInfo(), msg.type(), msg.text(), sender, msg.flags()); + Message mmsg = Message(msg.timestamp(), msg.bufferInfo(), msg.type(), msg.contents(), sender, msg.flags()); monitorBuffer()->appendMsg(mmsg); } -#endif - emit messageReceived(msg); } +#else + +void Client::recvMessage(const Message &msg) { + //checkForHighlight(msg); + _messageModel->insertMessage(msg); +} + +#endif /* SPUTDEV */ void Client::recvStatusMsg(QString /*net*/, QString /*msg*/) { //recvMessage(net, Message::server("", QString("[STATUS] %1").arg(msg))); } +#ifdef SPUTDEV +void Client::receiveBacklog(BufferId bufferId, const QVariantList &msgs) { + //checkForHighlight(msg); + foreach(QVariant v, msgs) { + _messageModel->insertMessage(v.value()); + } +} + +#else + void Client::receiveBacklog(BufferId bufferId, const QVariantList &msgs) { -#ifndef SPUTDEV Buffer *buffer_ = buffer(bufferId); if(!buffer_) { - qWarning() << "Client::recvBacklogData(): received Backlog for unknown Buffer:" << bufferId; + qWarning() << "Client::receiveBacklog(): received Backlog for unknown Buffer:" << bufferId; return; } -#endif if(msgs.isEmpty()) return; // no work to be done... @@ -542,6 +556,7 @@ void Client::receiveBacklog(BufferId bufferId, const QVariantList &msgs) { layoutTimer->start(); } } +#endif /* SPUTDEV */ void Client::layoutMsg() { if(layoutQueue.isEmpty()) { @@ -553,7 +568,7 @@ void Client::layoutMsg() { if(buffer->layoutMsg()) { layoutQueue.append(buffer); // Buffer has more messages in its queue --> Round Robin return; - } + } if(layoutQueue.isEmpty()) layoutTimer->stop(); @@ -577,7 +592,7 @@ void Client::checkForHighlight(Message &msg) { QRegExp nickRegExp("^(.*\\W)?" + QRegExp::escape(nickname) + "(\\W.*)?$"); if((msg.type() & (Message::Plain | Message::Notice | Message::Action)) && !(msg.flags() & Message::Self) - && nickRegExp.exactMatch(msg.text())) { + && nickRegExp.exactMatch(msg.contents())) { msg.setFlags(msg.flags() | Message::Highlight); return; } @@ -597,7 +612,7 @@ void Client::checkForHighlight(Message &msg) { } if((msg.type() & (Message::Plain | Message::Notice | Message::Action)) && !(msg.flags() & Message::Self) - && userRegExp.exactMatch(msg.text())) { + && userRegExp.exactMatch(msg.contents())) { msg.setFlags(msg.flags() | Message::Highlight); return; }