Merging r774:778 from trunk into branches/0.3. Forwardporting hopefully the last...
[quassel.git] / src / client / buffermodel.cpp
index 4b78ea9..b67a447 100644 (file)
 
 BufferModel::BufferModel(NetworkModel *parent)
   : QSortFilterProxyModel(parent),
-    _selectionModelSynchronizer(this),
-    _propertyMapper(this)
+    _selectionModelSynchronizer(this)
 {
   setSourceModel(parent);
-
-  // initialize the Property Mapper
-  _propertyMapper.setModel(this);
-  _selectionModelSynchronizer.addRegularSelectionModel(_propertyMapper.selectionModel());
-  connect(_propertyMapper.selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)),
-         this, SLOT(currentChanged(QModelIndex, QModelIndex)));
-}
-
-BufferModel::~BufferModel() {
+  if(QCoreApplication::instance()->arguments().contains("--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 {
@@ -65,17 +59,16 @@ void BufferModel::synchronizeView(QAbstractItemView *view) {
   view->setSelectionModel(mappedSelectionModel);
 }
 
-void BufferModel::mapProperty(int column, int role, QObject *target, const QByteArray &property) {
-  _propertyMapper.addMapping(column, role, target, property);
+QModelIndex BufferModel::currentIndex() {
+  return standardSelectionModel()->currentIndex();
 }
 
-QModelIndex BufferModel::currentIndex() {
-  return propertyMapper()->selectionModel()->currentIndex();
+void BufferModel::setCurrentIndex(const QModelIndex &newCurrent) {
+  _selectionModelSynchronizer.selectionModel()->setCurrentIndex(newCurrent, QItemSelectionModel::Current);
+  _selectionModelSynchronizer.selectionModel()->select(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
 }
 
-void BufferModel::currentChanged(const QModelIndex &current, const QModelIndex &previous) {
-  Q_UNUSED(current);
-  setData(current, QDateTime::currentDateTime(), NetworkModel::LastSeenRole);
-  setData(previous, QDateTime::currentDateTime(), NetworkModel::LastSeenRole);
-  setData(previous, qVariantFromValue((int)BufferItem::NoActivity), NetworkModel::BufferActivityRole);
+void BufferModel::debug_currentChanged(QModelIndex current, QModelIndex previous) {
+  Q_UNUSED(previous);
+  qDebug() << "Switched current Buffer: " << current << current.data().toString() << "Buffer:" << current.data(NetworkModel::BufferIdRole).value<BufferId>();
 }