X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientsyncer.cpp;h=02c9a2037db1703779898005a3bf175a32a4634b;hp=2b532705e439ca5a2f1f46e7045fdfd44e6e1e0d;hb=470a28f188f9531972944413bde1a43f9cd86343;hpb=e5f3a784b8c6e6b4fe9b299c3a3553f31fba5601 diff --git a/src/client/clientsyncer.cpp b/src/client/clientsyncer.cpp index 2b532705..02c9a203 100644 --- a/src/client/clientsyncer.cpp +++ b/src/client/clientsyncer.cpp @@ -169,6 +169,11 @@ void ClientSyncer::coreSocketConnected() { SignalProxy::writeDataToDevice(socket, clientInit); } +void ClientSyncer::useInternalCore() { + emit startInternalCore(); + emit connectToInternalCore(Client::instance()->signalProxy()); +} + void ClientSyncer::coreSocketDisconnected() { emit socketDisconnected(); Client::instance()->disconnectFromCore(); @@ -240,17 +245,22 @@ void ClientSyncer::loginToCore(const QString &user, const QString &passwd) { SignalProxy::writeDataToDevice(socket, clientLogin); } +void ClientSyncer::internalSessionStateReceived(const QVariant &packedState) { + QVariantMap state = packedState.toMap(); + emit sessionProgress(1, 1); + Client::instance()->setConnectedToInternalCore(); + syncToCore(state); +} + 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::signalProxy()->addPeer(socket); Client::instance()->setConnectedToCore(socket, coreConnectionInfo["AccountId"].value()); syncToCore(state); } void ClientSyncer::syncToCore(const QVariantMap &sessionState) { - // create identities foreach(QVariant vid, sessionState["Identities"].toList()) { Client::instance()->coreIdentityCreated(vid.value()); @@ -274,6 +284,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()));