void QgsAttributeTableView::setModel( QgsAttributeTableFilterModel* filterModel ) { if ( mFilterModel ) { // Cleanup old model stuff if present disconnect( mMasterSelection, SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), this, SLOT( onMasterSelectionChanged( QItemSelection, QItemSelection ) ) ); disconnect( selectionModel(), SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), this, SLOT( onSelectionChanged( QItemSelection, QItemSelection ) ) ); disconnect( mFilterModel, SIGNAL( filterAboutToBeInvalidated() ), this, SLOT( onFilterAboutToBeInvalidated() ) ); disconnect( mFilterModel, SIGNAL( filterInvalidated() ), this, SLOT( onFilterInvalidated() ) ); } mFilterModel = filterModel; QTableView::setModel( filterModel ); if ( filterModel ) { // Connect new model stuff mMasterSelection = mFilterModel->masterSelection(); connect( mMasterSelection, SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), SLOT( onMasterSelectionChanged( QItemSelection, QItemSelection ) ) ); connect( selectionModel(), SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), SLOT( onSelectionChanged( QItemSelection, QItemSelection ) ) ); connect( mFilterModel, SIGNAL( filterAboutToBeInvalidated() ), SLOT( onFilterAboutToBeInvalidated() ) ); connect( mFilterModel, SIGNAL( filterInvalidated() ), SLOT( onFilterInvalidated() ) ); } }
void QgsAttributeTableView::setModel( QgsAttributeTableFilterModel* filterModel ) { if ( mFilterModel ) { // Cleanup old model stuff if present disconnect( mFilterModel, SIGNAL( filterAboutToBeInvalidated() ), this, SLOT( onFilterAboutToBeInvalidated() ) ); disconnect( mFilterModel, SIGNAL( filterInvalidated() ), this, SLOT( onFilterInvalidated() ) ); } mFilterModel = filterModel; QTableView::setModel( filterModel ); connect( mFilterModel, SIGNAL( destroyed() ), this, SLOT( modelDeleted() ) ); delete mFeatureSelectionModel; mFeatureSelectionModel = 0; if ( filterModel ) { if ( !mFeatureSelectionManager ) { mFeatureSelectionManager = new QgsVectorLayerSelectionManager( mFilterModel->layer(), mFilterModel ); } mFeatureSelectionModel = new QgsFeatureSelectionModel( mFilterModel, mFilterModel, mFeatureSelectionManager, mFilterModel ); setSelectionModel( mFeatureSelectionModel ); mTableDelegate->setFeatureSelectionModel( mFeatureSelectionModel ); connect( mFeatureSelectionModel, SIGNAL( requestRepaint( QModelIndexList ) ), this, SLOT( repaintRequested( QModelIndexList ) ) ); connect( mFeatureSelectionModel, SIGNAL( requestRepaint() ), this, SLOT( repaintRequested() ) ); } }
void QgsFeatureListView::setModel( QgsFeatureListModel* featureListModel ) { QListView::setModel( featureListModel ); mModel = featureListModel; mMasterSelection = featureListModel->masterSelection(); connect( mMasterSelection, SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), SLOT( onMasterSelectionChanged( QItemSelection, QItemSelection ) ) ); connect( selectionModel(), SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), SLOT( onSelectionChanged( QItemSelection, QItemSelection ) ) ); connect( mModel->sourceModel(), SIGNAL( filterAboutToBeInvalidated() ), SLOT( onFilterAboutToBeInvalidated() ) ); connect( mModel->sourceModel(), SIGNAL( filterInvalidated() ), SLOT( onFilterInvalidated() ) ); mCurrentEditSelectionModel = new QItemSelectionModel( mModel->masterModel(), this ); if ( mItemDelegate && mItemDelegate->parent() == this ) { delete mItemDelegate; } mItemDelegate = new QgsFeatureListViewDelegate( mModel, this ); mItemDelegate->setEditSelectionModel( mCurrentEditSelectionModel ); setItemDelegate( mItemDelegate ); connect( mCurrentEditSelectionModel, SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), SLOT( editSelectionChanged( QItemSelection, QItemSelection ) ) ); }