X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=e3a92819f77bf17a439e84b6966e3f4d3aa0f28a;hp=a2473b17d9bb10f21b78373de590aa6516c7b7e5;hb=04754cf669dd295205226b744bc769b94693866a;hpb=52a4b82e170fe88725de8381c842a5278c7d1e46 diff --git a/src/client/client.cpp b/src/client/client.cpp index a2473b17..e3a92819 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -284,6 +284,7 @@ void Client::setSyncedToCore() { Q_ASSERT(!_bufferSyncer); _bufferSyncer = new BufferSyncer(this); connect(bufferSyncer(), SIGNAL(lastSeenSet(BufferId, const QDateTime &)), this, SLOT(updateLastSeen(BufferId, const QDateTime &))); + connect(bufferSyncer(), SIGNAL(bufferRemoved(BufferId)), this, SLOT(bufferRemoved(BufferId))); signalProxy()->synchronize(bufferSyncer()); _syncedToCore = true; @@ -457,4 +458,11 @@ void Client::setBufferLastSeen(BufferId id, const QDateTime &lastSeen) { bufferSyncer()->requestSetLastSeen(id, lastSeen); } - +void Client::bufferRemoved(BufferId bufferId) { + networkModel()->removeBuffer(bufferId); + if(_buffers.contains(bufferId)) { + Buffer *buff = _buffers.take(bufferId); + disconnect(buff, 0, this, 0); + buff->deleteLater(); + } +}