X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=c25f19392db985bb396134412fb09fbbb7c43c86;hb=fdf69d69f0dda76a65a27ce7059b7b86696ff79c;hp=741388c192e87505e60abb11cd5bcae23e19c783;hpb=7fc418e5841a1633f651e08a34ccd2123ba6e0db;p=quassel.git diff --git a/src/client/client.cpp b/src/client/client.cpp index 741388c1..c25f1939 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -39,6 +39,7 @@ #include "message.h" #include "messagemodel.h" #include "network.h" +#include "networkconfig.h" #include "networkmodel.h" #include "quassel.h" #include "signalproxy.h" @@ -89,6 +90,7 @@ Client::Client(QObject *parent) _bufferViewOverlay(new BufferViewOverlay(this)), _ircListHelper(new ClientIrcListHelper(this)), _inputHandler(0), + _networkConfig(0), _messageModel(0), _messageProcessor(0), _connectedToCore(false), @@ -322,7 +324,6 @@ void Client::setSyncedToCore() { Q_ASSERT(!_bufferViewManager); _bufferViewManager = new ClientBufferViewManager(signalProxy(), this); connect(bufferViewManager(), SIGNAL(initDone()), this, SLOT(createDefaultBufferView())); - connect(bufferViewManager(), SIGNAL(viewsInitialized()), this, SLOT(requestInitialBacklog())); // create AliasManager Q_ASSERT(!_aliasManager); @@ -330,6 +331,14 @@ void Client::setSyncedToCore() { connect(aliasManager(), SIGNAL(initDone()), SLOT(sendBufferedUserInput())); signalProxy()->synchronize(aliasManager()); + // create NetworkConfig + Q_ASSERT(!_networkConfig); + _networkConfig = new NetworkConfig("GlobalNetworkConfig", this); + signalProxy()->synchronize(networkConfig()); + + // trigger backlog request once all active bufferviews are initialized + connect(bufferViewOverlay(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog())); + _syncedToCore = true; emit connected(); emit coreConnectionStateChanged(true); @@ -340,7 +349,7 @@ void Client::requestInitialBacklog() { // triggers this slot. But we have to make sure that we know all buffers yet. // so we check the BufferSyncer and in case it wasn't initialized we wait for that instead if(!bufferSyncer()->isInitialized()) { - disconnect(bufferViewManager(), SIGNAL(viewsInitialized()), this, SLOT(requestInitialBacklog())); + connect(bufferViewOverlay(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog())); connect(bufferSyncer(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog())); return; } @@ -415,6 +424,10 @@ void Client::disconnectedFromCore() { } Q_ASSERT(_identities.isEmpty()); + if(_networkConfig) { + _networkConfig->deleteLater(); + _networkConfig = 0; + } } /*** ***/