SelectionProxyModel Class Reference
from PyKDE4.akonadi import *
Inherits: KSelectionProxyModel → QAbstractProxyModel → QAbstractItemModel → QObject
Subclasses: Akonadi.FavoriteCollectionsModel
Namespace: Akonadi.SelectionProxyModel
Detailed Description
A proxy model used to reference count selected Akonadi.Collection in a view
This model extends KSelectionProxyModel implement reference counting on the Collections in an EntityTreeModel. This should only be used if the EntityTreeModel uses LazyPopulation.
By selecting a Collection, its reference count will be increased. A Collection in the EntityTreeModel which has a reference count of zero will ignore all signals from Monitor about items changed, inserted, removed etc, which can be expensive operations.
Example:
using namespace Akonadi; // itemView // ^ // | // itemModel // | // flatModel // | // collectionView --> selectionModel // ^ ^ // | | // collectionFilter | // \______________model EntityTreeModel *model = new EntityTreeModel( ... ); // setup collection model EntityMimeTypeFilterModel *collectionFilter = new EntityMimeTypeFilterModel( this ); collectionFilter->setSourceModel( model ); collectionFilter->addMimeTypeInclusionFilter( Collection.mimeType() ); collectionFilter->setHeaderGroup( EntityTreeModel.CollectionTreeHeaders ); // setup collection view EntityTreeView *collectionView = new EntityTreeView( this ); collectionView->setModel( collectionFilter ); // setup selection model SelectionProxyModel *selectionModel = new SelectionProxyModel( collectionView->selectionModel(), this ); selectionModel->setSourceModel( model ); // setup item model KDescendantsProxyModel *flatModel = new KDescendantsProxyModel( this ); flatModel->setSourceModel( selectionModel ); EntityMimeTypeFilterModel *itemModel = new EntityMimeTypeFilterModel( this ); itemModel->setSourceModel( flatModel ); itemModel->setHeaderGroup( EntityTreeModel.ItemListHeaders ); itemModel->addMimeTypeExclusionFilter( Collection.mimeType() ); EntityListView *itemView = new EntityListView( this ); itemView->setModel( itemModel );
- Since:
- 4.4
Methods | |
__init__ (self, QItemSelectionModel selectionModel, QObject parent=0) |
Method Documentation
__init__ | ( | self, | ||
QItemSelectionModel | selectionModel, | |||
QObject | parent=0 | |||
) |