Newly created buffers are now selected automatically.
[quassel.git] / src / client / buffermodel.cpp
index 78d3960..3426632 100644 (file)
@@ -42,11 +42,13 @@ BufferModel::~BufferModel() {
 
 bool BufferModel::filterAcceptsRow(int sourceRow, const QModelIndex &parent) const {
   Q_UNUSED(sourceRow);
-  // hide childs of buffers and everything below
-  if(parent.data(NetworkModel::ItemTypeRole) == NetworkModel::BufferItemType)
-    return false;
-  else
+  // only networks and buffers are allowed
+  if(!parent.isValid())
     return true;
+  if(parent.data(NetworkModel::ItemTypeRole) == NetworkModel::NetworkItemType)
+    return true;
+
+  return false;
 }
 
 void BufferModel::synchronizeSelectionModel(MappedSelectionModel *selectionModel) {
@@ -68,3 +70,8 @@ void BufferModel::mapProperty(int column, int role, QObject *target, const QByte
 QModelIndex BufferModel::currentIndex() {
   return propertyMapper()->selectionModel()->currentIndex();
 }
+
+void BufferModel::setCurrentIndex(const QModelIndex &newCurrent) {
+  standardSelectionModel()->setCurrentIndex(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
+  standardSelectionModel()->select(newCurrent, QItemSelectionModel::ClearAndSelect);
+}