• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdepimlibs-4.14.10 API Reference
  • KDE Home
  • Contact Us
 

akonadi

  • Akonadi
  • SelectionProxyModel
Public Member Functions | List of all members
Akonadi::SelectionProxyModel Class Reference

#include <selectionproxymodel.h>

Inheritance diagram for Akonadi::SelectionProxyModel:
Akonadi::FavoriteCollectionsModel

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 );
Akonadi::Collection::mimeType
static QString mimeType()
Returns the mimetype used for collections.
Definition collection.cpp:197
Akonadi::EntityListView
A view to show an item/collection list provided by an EntityTreeModel.
Definition entitylistview.h:76
Akonadi::EntityListView::setModel
virtual void setModel(QAbstractItemModel *model)
Definition entitylistview.cpp:164
Akonadi::EntityMimeTypeFilterModel
A proxy model that filters entities by mime type.
Definition entitymimetypefiltermodel.h:62
Akonadi::EntityMimeTypeFilterModel::setHeaderGroup
void setHeaderGroup(EntityTreeModel::HeaderGroup headerGroup)
Sets the header set of the filter model.
Definition entitymimetypefiltermodel.cpp:152
Akonadi::EntityMimeTypeFilterModel::addMimeTypeInclusionFilter
void addMimeTypeInclusionFilter(const QString &mimeType)
Add mime type to be shown by the filter.
Definition entitymimetypefiltermodel.cpp:85
Akonadi::EntityMimeTypeFilterModel::addMimeTypeExclusionFilter
void addMimeTypeExclusionFilter(const QString &mimeType)
Add mime type to be excluded by the filter.
Definition entitymimetypefiltermodel.cpp:92
Akonadi::EntityTreeModel
A model for collections and items together.
Definition entitytreemodel.h:319
Akonadi::EntityTreeModel::CollectionTreeHeaders
@ CollectionTreeHeaders
Header information for a collection-only tree.
Definition entitytreemodel.h:385
Akonadi::EntityTreeModel::ItemListHeaders
@ ItemListHeaders
Header information for a list of items.
Definition entitytreemodel.h:386
Akonadi::EntityTreeView
A view to show an item/collection tree provided by an EntityTreeModel.
Definition entitytreeview.h:72
Akonadi::EntityTreeView::setModel
virtual void setModel(QAbstractItemModel *model)
Definition entitytreeview.cpp:209
Akonadi::SelectionProxyModel
A proxy model used to reference count selected Akonadi::Collection in a view.
Definition selectionproxymodel.h:100
Akonadi::SelectionProxyModel::SelectionProxyModel
SelectionProxyModel(QItemSelectionModel *selectionModel, QObject *parent=0)
Creates a new selection proxy model.
Definition selectionproxymodel.cpp:74
Akonadi
FreeBusyManager::Singleton.
Definition actionstatemanager_p.h:28

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

Author
Stephen Kelly steve.nosp@m.ire@.nosp@m.gmail.nosp@m..com
Since
4.4

Definition at line 99 of file selectionproxymodel.h.

Constructor & Destructor Documentation

◆ SelectionProxyModel()

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

Creates a new selection proxy model.

Parameters
selectionModelThe selection model of the source view.
parentThe parent object.

Definition at line 74 of file selectionproxymodel.cpp.

◆ ~SelectionProxyModel()

SelectionProxyModel::~SelectionProxyModel ( )

Definition at line 82 of file selectionproxymodel.cpp.


The documentation for this class was generated from the following files:
  • selectionproxymodel.h
  • selectionproxymodel.cpp
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Wed Jan 24 2024 00:00:00 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

akonadi

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

kdepimlibs-4.14.10 API Reference

Skip menu "kdepimlibs-4.14.10 API Reference"
  • akonadi
  •   contact
  •   kmime
  •   socialutils
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kioslave
  •   imap4
  •   mbox
  •   nntp
  • kldap
  • kmbox
  • kmime
  • kontactinterface
  • kpimidentities
  • kpimtextedit
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • microblog
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal