// initialize the Property Mapper
_propertyMapper.setModel(this);
_selectionModelSynchronizer.addRegularSelectionModel(_propertyMapper.selectionModel());
- connect(&_selectionModelSynchronizer, SIGNAL(setCurrentIndex(QModelIndex, QItemSelectionModel::SelectionFlags)),
- this, SLOT(setCurrentIndex(QModelIndex, QItemSelectionModel::SelectionFlags)));
}
BufferModel::~BufferModel() {
_propertyMapper.addMapping(column, role, target, property);
}
-// This Slot indicates that the user has selected a different buffer in the gui
-void BufferModel::setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command) {
- Q_UNUSED(command)
- BufferId newCurrentBuffer;
- if(index.data(NetworkModel::ItemTypeRole) == NetworkModel::BufferItemType
- && currentBuffer != (newCurrentBuffer = qVariantValue<BufferId>(index.data(NetworkModel::BufferIdRole)))) {
- currentBuffer = newCurrentBuffer;
- // FIXME: to something like: index.setData(ActivitRole, NoActivity);
- // networkModel->bufferActivity(BufferItem::NoActivity, currentBuffer);
- emit selectionChanged(index);
- }
-}
-
QModelIndex BufferModel::currentIndex() {
return propertyMapper()->selectionModel()->currentIndex();
}
#include <QSortFilterProxyModel>
#include <QItemSelectionModel>
-#include <QPointer>
#include "types.h"
-
-class NetworkModel;
#include "selectionmodelsynchronizer.h"
#include "modelpropertymapper.h"
+
+class NetworkModel;
class MappedSelectionModel;
class QAbstractItemView;
-class Buffer;
class BufferModel : public QSortFilterProxyModel {
Q_OBJECT
void synchronizeView(QAbstractItemView *view);
void mapProperty(int column, int role, QObject *target, const QByteArray &property);
-public slots:
QModelIndex currentIndex();
- void setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command);
-
-signals:
- void selectionChanged(const QModelIndex &);
private:
SelectionModelSynchronizer _selectionModelSynchronizer;
ModelPropertyMapper _propertyMapper;
- BufferId currentBuffer;
};
#endif // BUFFERMODEL_H
else
_itemData[column] = value;
+ emit dataChanged(column);
return true;
}
if(column >= columnCount() || role != Qt::DisplayRole)
return false;
+ emit dataChanged(column);
return setProperty(_propertyOrder[column].toAscii(), value);
}