X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=be2c89401eecd4e26ad30781d284028f164b32e3;hp=d57678dd49905ad9bfa8ad35d8b816750555bab2;hb=87f95344178f652061d2c27ad6eda60d738a2041;hpb=f953257711e147661ce79e4da4c8b84f083e3e95 diff --git a/src/client/client.cpp b/src/client/client.cpp index d57678dd..be2c8940 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -464,6 +464,14 @@ void Client::setBufferLastSeen(BufferId id, const QDateTime &lastSeen) { } void Client::bufferRemoved(BufferId bufferId) { + QModelIndex current = bufferModel()->currentIndex(); + if(current.data(NetworkModel::BufferIdRole).value() == bufferId) { + // select the status buffer if the currently displayed buffer is about to be removed + QModelIndex newCurrent = current.sibling(0,0); + bufferModel()->standardSelectionModel()->setCurrentIndex(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); + bufferModel()->standardSelectionModel()->select(newCurrent, QItemSelectionModel::ClearAndSelect); + } + networkModel()->removeBuffer(bufferId); if(_buffers.contains(bufferId)) { Buffer *buff = _buffers.take(bufferId);