X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=8d5e71b98c4e9737a6a5cf7990564bf0af2ffce2;hb=d52b78268ad6ab09f896508a94dd7be47a720153;hp=8c7a043068cd68bd937e9b5e5a49ed549ad04e7c;hpb=9ced25191b84390d1867cf3ee19f5aec741795a8;p=quassel.git diff --git a/src/client/client.cpp b/src/client/client.cpp index 8c7a0430..8d5e71b9 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -21,21 +21,24 @@ #include "client.h" #include "bufferinfo.h" +#include "buffermodel.h" +#include "buffersettings.h" #include "buffersyncer.h" -#include "clientbacklogmanager.h" #include "bufferviewmanager.h" +#include "clientbacklogmanager.h" #include "global.h" #include "identity.h" #include "ircchannel.h" #include "ircuser.h" #include "message.h" +#ifdef SPUTDEV +# include "messagemodel.h" +#endif #include "network.h" #include "networkmodel.h" -#include "buffermodel.h" #include "quasselui.h" #include "signalproxy.h" #include "util.h" -#include "buffersettings.h" QPointer Client::instanceptr = 0; AccountId Client::_currentCoreAccount = 0; @@ -68,6 +71,7 @@ Client::Client(QObject *parent) _bufferSyncer(0), _backlogManager(new ClientBacklogManager(this)), _bufferViewManager(0), + _messageModel(0), _connectedToCore(false), _syncedToCore(false) { @@ -83,13 +87,16 @@ Client::~Client() { void Client::init() { _currentCoreAccount = 0; _networkModel = new NetworkModel(this); + connect(this, SIGNAL(bufferUpdated(BufferInfo)), _networkModel, SLOT(bufferUpdated(BufferInfo))); connect(this, SIGNAL(networkRemoved(NetworkId)), _networkModel, SLOT(networkRemoved(NetworkId))); _bufferModel = new BufferModel(_networkModel); - +#ifdef SPUTDEV + _messageModel = new MessageModel(this); +#endif SignalProxy *p = signalProxy(); p->attachSlot(SIGNAL(displayMsg(const Message &)), this, SLOT(recvMessage(const Message &))); @@ -318,21 +325,26 @@ void Client::setSyncedToCore() { emit coreConnectionStateChanged(true); } +void Client::setSecuredConnection() { + emit securedConnection(); +} + void Client::disconnectFromCore() { if(!isConnected()) return; + _connectedToCore = false; if(socket) { socket->close(); socket->deleteLater(); } - _connectedToCore = false; _syncedToCore = false; - setCurrentCoreAccount(0); emit disconnected(); emit coreConnectionStateChanged(false); // Clear internal data. Hopefully nothing relies on it at this point. + setCurrentCoreAccount(0); + if(_bufferSyncer) { _bufferSyncer->deleteLater(); _bufferSyncer = 0; @@ -342,7 +354,7 @@ void Client::disconnectFromCore() { _bufferViewManager->deleteLater(); _bufferViewManager = 0; } - + _networkModel->clear(); QHash::iterator bufferIter = _buffers.begin(); @@ -431,6 +443,9 @@ void Client::recvMessage(const Message &message) { // FIXME clean up code! (dup) + // 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(); @@ -474,9 +489,12 @@ 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 @@ -486,6 +504,7 @@ void Client::recvMessage(const Message &message) { Message mmsg = Message(msg.timestamp(), msg.bufferInfo(), msg.type(), msg.text(), sender, msg.flags()); monitorBuffer()->appendMsg(mmsg); } +#endif emit messageReceived(msg); } @@ -495,11 +514,13 @@ void Client::recvStatusMsg(QString /*net*/, QString /*msg*/) { } 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; return; } +#endif if(msgs.isEmpty()) return; // no work to be done...