Fix buffer preselection on reconnect
authorSebastian Goth <seezer@roath.org>
Fri, 9 Jul 2010 08:10:39 +0000 (10:10 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 11 Aug 2010 14:06:07 +0000 (16:06 +0200)
Removes restriction on valid buffers in AbstractBufferContainer to
be able to clear buffer selection.

src/qtui/mainwin.cpp
src/uisupport/abstractbuffercontainer.cpp

index 398f0a8..68a5f8e 100644 (file)
@@ -977,6 +977,11 @@ void MainWin::disconnectedFromCore() {
   }
 
   QtUiSettings s;
   }
 
   QtUiSettings s;
+  BufferId lastBufId = Client::bufferModel()->currentBuffer();
+  if(lastBufId.isValid()) {
+    s.setValue("LastUsedBufferId", lastBufId.toInt());
+    Client::bufferModel()->standardSelectionModel()->clearSelection();
+  }
   restoreState(s.value("MainWinState").toByteArray());
   setDisconnectedState();
 }
   restoreState(s.value("MainWinState").toByteArray());
   setDisconnectedState();
 }
index 65377fe..5ab79aa 100644 (file)
@@ -85,7 +85,8 @@ void AbstractBufferContainer::currentChanged(const QModelIndex &current, const Q
   Q_UNUSED(previous)
 
   BufferId newBufferId = current.data(NetworkModel::BufferIdRole).value<BufferId>();
   Q_UNUSED(previous)
 
   BufferId newBufferId = current.data(NetworkModel::BufferIdRole).value<BufferId>();
-  if(newBufferId.isValid() && currentBuffer() != newBufferId) {
+  // To be able to reset the selected buffer, we don't check if buffer/index is valid here
+  if(currentBuffer() != newBufferId) {
     setCurrentBuffer(newBufferId);
     emit currentChanged(newBufferId);
     emit currentChanged(current);
     setCurrentBuffer(newBufferId);
     emit currentChanged(newBufferId);
     emit currentChanged(current);