KDE 4.5 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

Detailed Description

A proxy model used to reference count selected Akonadi.Collection in a view

Only selected Collections will be populated and monitored for changes. Unselected Collections will be ignored.

This model extends KSelectionProxyModel to implement reference counting on the Collections in an EntityTreeModel. The EntityTreeModel must use LazyPopulation to enable SelectionProxyModel to work.

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

See libakonadi_integration "Integration in your Application" for further guidance on the use of this class.

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
)

Creates a new selection proxy model.

Parameters:
selectionModel  The selection model of the source view.
parent  The parent object.

  • 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