last fix for buffer removal (fingers crossed). It is strongly discouraged to use...
authorMarcus Eggenberger <egs@quassel-irc.org>
Mon, 18 Feb 2008 23:14:29 +0000 (23:14 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Mon, 18 Feb 2008 23:14:29 +0000 (23:14 +0000)
src/client/client.cpp
version.inc

index d57678d..be2c894 100644 (file)
@@ -464,6 +464,14 @@ void Client::setBufferLastSeen(BufferId id, const QDateTime &lastSeen) {
 }
 
 void Client::bufferRemoved(BufferId bufferId) {
 }
 
 void Client::bufferRemoved(BufferId bufferId) {
+  QModelIndex current = bufferModel()->currentIndex();
+  if(current.data(NetworkModel::BufferIdRole).value<BufferId>() == 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);
   networkModel()->removeBuffer(bufferId);
   if(_buffers.contains(bufferId)) {
     Buffer *buff = _buffers.take(bufferId);
index 528b199..b971366 100644 (file)
@@ -5,7 +5,7 @@
 
   quasselVersion = "0.2.0-pre";
   quasselDate = "2008-02-18";
 
   quasselVersion = "0.2.0-pre";
   quasselDate = "2008-02-18";
-  quasselBuild = 545;
+  quasselBuild = 546;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 526;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 526;