X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=d57678dd49905ad9bfa8ad35d8b816750555bab2;hp=e3a92819f77bf17a439e84b6966e3f4d3aa0f28a;hb=f953257711e147661ce79e4da4c8b84f083e3e95;hpb=c7a5ea8c0e5807fd0079bcb10cb88e4356526bad diff --git a/src/client/client.cpp b/src/client/client.cpp index e3a92819..d57678dd 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -280,7 +280,7 @@ void Client::setConnectedToCore(QIODevice *sock, AccountId id) { } void Client::setSyncedToCore() { - // create buffersyncer + // create buffersyncer Q_ASSERT(!_bufferSyncer); _bufferSyncer = new BufferSyncer(this); connect(bufferSyncer(), SIGNAL(lastSeenSet(BufferId, const QDateTime &)), this, SLOT(updateLastSeen(BufferId, const QDateTime &))); @@ -293,6 +293,9 @@ void Client::setSyncedToCore() { } void Client::disconnectFromCore() { + if(!isConnected()) + return; + if(socket) { socket->close(); socket->deleteLater(); @@ -304,8 +307,10 @@ void Client::disconnectFromCore() { emit coreConnectionStateChanged(false); // Clear internal data. Hopefully nothing relies on it at this point. - _bufferSyncer->deleteLater(); - _bufferSyncer = 0; + if(_bufferSyncer) { + _bufferSyncer->deleteLater(); + _bufferSyncer = 0; + } _networkModel->clear(); QHash::iterator bufferIter = _buffers.begin();