X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientsyncer.cpp;h=a8e08ef2c22b2343153b474c2a31e219474ae2f2;hp=ed59b9962daea7b505108e9e9783e069ebb25920;hb=1adc00219ba072da57994764d086beed8ffb7bb4;hpb=0d49f7e83bd1055711e66aa880f3a0d62f7eefc9 diff --git a/src/client/clientsyncer.cpp b/src/client/clientsyncer.cpp index ed59b996..a8e08ef2 100644 --- a/src/client/clientsyncer.cpp +++ b/src/client/clientsyncer.cpp @@ -26,8 +26,6 @@ #include "client.h" #include "identity.h" -#include "ircuser.h" -#include "ircchannel.h" #include "network.h" #include "networkmodel.h" #include "quassel.h" @@ -169,7 +167,8 @@ void ClientSyncer::coreSocketConnected() { SignalProxy::writeDataToDevice(socket, clientInit); } -void ClientSyncer::useInternalCore() { +void ClientSyncer::useInternalCore(AccountId internalAccountId) { + coreConnectionInfo["AccountId"] = QVariant::fromValue(internalAccountId); emit startInternalCore(); emit connectToInternalCore(Client::instance()->signalProxy()); } @@ -248,7 +247,7 @@ void ClientSyncer::loginToCore(const QString &user, const QString &passwd) { void ClientSyncer::internalSessionStateReceived(const QVariant &packedState) { QVariantMap state = packedState.toMap(); emit sessionProgress(1, 1); - Client::instance()->setConnectedToInternalCore(); + Client::instance()->setConnectedToCore(coreConnectionInfo["AccountId"].value()); syncToCore(state); } @@ -256,7 +255,7 @@ void ClientSyncer::sessionStateReceived(const QVariantMap &state) { emit sessionProgress(1, 1); disconnect(this, SIGNAL(recvPartialItem(quint32, quint32)), this, SIGNAL(sessionProgress(quint32, quint32))); disconnect(socket, 0, this, 0); // rest of communication happens through SignalProxy - Client::instance()->setConnectedToCore(socket, coreConnectionInfo["AccountId"].value()); + Client::instance()->setConnectedToCore(coreConnectionInfo["AccountId"].value(), socket); syncToCore(state); } @@ -284,6 +283,8 @@ void ClientSyncer::syncToCore(const QVariantMap &sessionState) { // create network objects foreach(QVariant networkid, networkids) { NetworkId netid = networkid.value(); + if(Client::network(netid)) + continue; Network *net = new Network(netid, Client::instance()); netsToSync.insert(net); connect(net, SIGNAL(initDone()), this, SLOT(networkInitDone()));