- Fixed "ghost-buffers" appearing in the network view
[quassel.git] / src / client / client.cpp
index 5872598..a2988ed 100644 (file)
@@ -161,6 +161,10 @@ Buffer *Client::buffer(BufferInfo bufferInfo) {
            client, SLOT(bufferDestroyed()));
     client->_buffers[bufferInfo.bufferId()] = buff;
     emit client->bufferUpdated(bufferInfo);
+
+    // I don't like this: but currently there isn't really a prettier way:
+    QModelIndex bufferIdx = networkModel()->bufferIndex(bufferInfo.bufferId());
+    bufferModel()->setCurrentIndex(bufferModel()->mapFromSource(bufferIdx));
   }
   Q_ASSERT(buff);
   return buff;
@@ -473,9 +477,7 @@ 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);
+    bufferModel()->setCurrentIndex(current.sibling(0,0));
   }
     
   networkModel()->removeBuffer(bufferId);