X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=1b6e0bba0b133beb9b96493632c85b55104a3a5f;hp=f77ab6c4ae38cc474e97f7e73d4d207eec68f704;hb=21d8d7f0a79eeeb541664aa80ce481fdbfc41f09;hpb=7500eaafd4aa510c758eabd8c835c0c05b2587cd diff --git a/src/client/client.cpp b/src/client/client.cpp index f77ab6c4..1b6e0bba 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -321,7 +321,7 @@ void Client::coreSocketDisconnected() { /* Clear internal data. Hopefully nothing relies on it at this point. */ _networkModel->clear(); - QHash::iterator bufferIter = _buffers.begin(); + QHash::iterator bufferIter = _buffers.begin(); while(bufferIter != _buffers.end()) { Buffer *buffer = bufferIter.value(); disconnect(buffer, SIGNAL(destroyed()), this, 0); @@ -331,7 +331,7 @@ void Client::coreSocketDisconnected() { Q_ASSERT(_buffers.isEmpty()); - QHash::iterator netIter = _networkInfo.begin(); + QHash::iterator netIter = _networkInfo.begin(); while(netIter != _networkInfo.end()) { NetworkInfo *net = netIter.value(); disconnect(net, SIGNAL(destroyed()), this, 0); @@ -340,6 +340,15 @@ void Client::coreSocketDisconnected() { } Q_ASSERT(_networkInfo.isEmpty()); + QHash::iterator idIter = _identities.begin(); + while(idIter != _identities.end()) { + Identity *id = idIter.value(); + emit identityRemoved(id->id()); + idIter = _identities.erase(idIter); + id->deleteLater(); + } + Q_ASSERT(_identities.isEmpty()); + coreConnectionInfo.clear(); sessionData.clear(); layoutQueue.clear(); @@ -370,10 +379,11 @@ void Client::syncToCore(const QVariant &coreState) { // create identities foreach(QVariant vid, sessionState["Identities"].toList()) { - Identity *id = new Identity(vid.value(), this); - _identities[id->id()] = id; - signalProxy()->synchronize(id); - qDebug() << "received identity" << id->identityName(); + coreIdentityCreated(vid.value()); + //Identity *id = new Identity(vid.value(), this); + //_identities[id->id()] = id; + //signalProxy()->synchronize(id); + //qDebug() << "received identity" << id->identityName(); } // store Buffer details