BufferModel::BufferModel(NetworkModel *parent)
: QSortFilterProxyModel(parent),
_selectionModelSynchronizer(this),
- _propertyMapper(this)
+ _standardSelectionModel(this)
{
setSourceModel(parent);
-
- // initialize the Property Mapper
- _propertyMapper.setModel(this);
- _selectionModelSynchronizer.addRegularSelectionModel(_propertyMapper.selectionModel());
- connect(&_selectionModelSynchronizer, SIGNAL(setCurrentIndex(QModelIndex, QItemSelectionModel::SelectionFlags)),
- this, SLOT(setCurrentIndex(QModelIndex, QItemSelectionModel::SelectionFlags)));
+ _selectionModelSynchronizer.addRegularSelectionModel(standardSelectionModel());
}
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) {
view->setSelectionModel(mappedSelectionModel);
}
-void BufferModel::mapProperty(int column, int role, QObject *target, const QByteArray &property) {
- _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 standardSelectionModel()->currentIndex();
}
-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);
}