Continuing my personal crusade against Buffer.
[quassel.git] / src / client / buffermodel.cpp
index 3dfdc6d..594dc83 100644 (file)
@@ -23,6 +23,8 @@
 #include "networkmodel.h"
 #include "mappedselectionmodel.h"
 #include "buffer.h"
+#include "global.h"
+
 #include <QAbstractItemView>
 
 BufferModel::BufferModel(NetworkModel *parent)
@@ -30,6 +32,10 @@ BufferModel::BufferModel(NetworkModel *parent)
     _selectionModelSynchronizer(this)
 {
   setSourceModel(parent);
+  if(Global::parser.isSet("debugbufferswitches")) {
+    connect(_selectionModelSynchronizer.selectionModel(), SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)),
+           this, SLOT(debug_currentChanged(const QModelIndex &, const QModelIndex &)));
+  }
 }
 
 bool BufferModel::filterAcceptsRow(int sourceRow, const QModelIndex &parent) const {
@@ -55,19 +61,12 @@ void BufferModel::synchronizeView(QAbstractItemView *view) {
   view->setSelectionModel(mappedSelectionModel);
 }
 
-QModelIndex BufferModel::currentIndex() {
-  return standardSelectionModel()->currentIndex();
-}
-
 void BufferModel::setCurrentIndex(const QModelIndex &newCurrent) {
-  _selectionModelSynchronizer.selectionModel()->setCurrentIndex(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
-  _selectionModelSynchronizer.selectionModel()->select(newCurrent, QItemSelectionModel::Current);
+  _selectionModelSynchronizer.selectionModel()->setCurrentIndex(newCurrent, QItemSelectionModel::Current);
+  _selectionModelSynchronizer.selectionModel()->select(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
 }
 
 void BufferModel::debug_currentChanged(QModelIndex current, QModelIndex previous) {
-  qDebug() << "New current:" << current << "(previous:" << previous << ")";
-}
-
-void BufferModel::debug_selectionChanged(QItemSelection current , QItemSelection previous) {
-  qDebug() << "new selection:" << current << "(previoius:" << previous << ")";
+  Q_UNUSED(previous);
+  qDebug() << "Switched current Buffer: " << current << current.data().toString() << "Buffer:" << current.data(NetworkModel::BufferIdRole).value<BufferId>();
 }