• Skip to content
  • Skip to link menu
KDE 4.5 API Reference
  • KDE API Reference
  • KDE-PIM Libraries
  • Sitemap
  • Contact Us
 

akonadi

Public Member Functions

SelectionProxyModel Class Reference

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

#include <selectionproxymodel.h>

Inheritance diagram for SelectionProxyModel:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 SelectionProxyModel (QItemSelectionModel *selectionModel, QObject *parent=0)

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 Integration in your Application for further guidance on the use of this class.

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

Definition at line 99 of file selectionproxymodel.h.


Constructor & Destructor Documentation

SelectionProxyModel::SelectionProxyModel ( QItemSelectionModel *  selectionModel,
QObject *  parent = 0 
) [explicit]

Creates a new selection proxy model.

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

Definition at line 68 of file selectionproxymodel.cpp.


The documentation for this class was generated from the following files:
  • selectionproxymodel.h
  • favoritecollectionsmodel.h
  • selectionproxymodel.cpp

akonadi

Skip menu "akonadi"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

KDE-PIM Libraries

Skip menu "KDE-PIM Libraries"
  • akonadi
  •   contact
  •   kmime
  • kabc
  • kblog
  • kcal
  • kholidays
  • kimap
  • kioslave
  •   imap4
  •   mbox
  •   nntp
  • kldap
  • kmime
  • kontactinterface
  • kpimidentities
  • kpimtextedit
  •   richtextbuilders
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • microblog
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2
Generated for KDE-PIM Libraries by doxygen 1.7.1
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal