KDE 4.4 PyKDE API Reference
  • KDE's Python API
  • Overview
  • PyKDE Home
  • Sitemap
  • Contact Us
 

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 );

Author:
Stephen Kelly <steveire@gmail.com>
Since:
4.4


Methods

 __init__ (self, QItemSelectionModel selectionModel, QObject parent=0)

Method Documentation

__init__ (  self,
QItemSelectionModel  selectionModel,
QObject  parent=0
)
  • Full Index

Modules

  • akonadi
  • dnssd
  • kdecore
  • kdeui
  • khtml
  • kio
  • knewstuff
  • kparts
  • kutils
  • nepomuk
  • phonon
  • plasma
  • polkitqt
  • solid
  • soprano
This documentation is maintained by Simon Edwards.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal