X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=f2d1ddd89abf43435d900035ce1e97ab24c9a75f;hp=4a6111ee687c8fc5f88a7c2545063c1e93a78897;hb=748f25bbae0e0ca8df58ec69df8d19c84ae77252;hpb=a7b0b0bee42d05ce5af425ed1809e9288403914d diff --git a/src/client/client.cpp b/src/client/client.cpp index 4a6111ee..f2d1ddd8 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -94,11 +94,8 @@ Buffer *Client::buffer(BufferInfo id) { client, SLOT(userInput(BufferInfo, QString))); connect(buff, SIGNAL(bufferUpdated(Buffer *)), client, SIGNAL(bufferUpdated(Buffer *))); - connect(buff, SIGNAL(bufferDestroyed(Buffer *)), - client, SIGNAL(bufferDestroyed(Buffer *))); - connect(buff, SIGNAL(bufferDestroyed(Buffer *)), - client, SLOT(removeBuffer(Buffer *))); - + connect(buff, SIGNAL(destroyed()), + client, SLOT(bufferDestroyed())); client->_buffers[id.uid()] = buff; emit client->bufferUpdated(buff); } @@ -269,14 +266,12 @@ void Client::coreSocketDisconnected() { _bufferModel->clear(); foreach(Buffer *buffer, _buffers.values()) { - delete buffer; + buffer->deleteLater(); } - Q_ASSERT(_buffers.empty()); foreach(NetworkInfo *networkinfo, _networkInfo.values()) { - delete networkinfo; + networkinfo->deleteLater(); } - Q_ASSERT(_networkInfo.empty()); coreConnectionInfo.clear(); sessionData.clear(); @@ -455,9 +450,9 @@ void Client::updateBufferInfo(BufferInfo id) { buffer(id)->updateBufferInfo(id); } - -void Client::removeBuffer(Buffer *b) { - _buffers.remove(b->bufferInfo().uid()); +void Client::bufferDestroyed() { + Buffer *buffer = static_cast(sender()); + _buffers.remove(_buffers.key(buffer)); } void Client::recvMessage(const Message &msg) {