• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdelibs API Reference
  • KDE Home
  • Contact Us
 

KDEUI

Public Member Functions | Protected Attributes | List of all members
KLinkItemSelectionModel Class Reference

#include <klinkitemselectionmodel.h>

Inheritance diagram for KLinkItemSelectionModel:
Inheritance graph
[legend]

Public Member Functions

 KLinkItemSelectionModel (QAbstractItemModel *targetModel, QItemSelectionModel *linkedItemSelectionModel, QObject *parent=0)
 
 ~KLinkItemSelectionModel ()
 
void select (const QModelIndex &index, QItemSelectionModel::SelectionFlags command)
 
void select (const QItemSelection &selection, QItemSelectionModel::SelectionFlags command)
 

Protected Attributes

KLinkItemSelectionModelPrivate
*const 
d_ptr
 

Detailed Description

Makes it possible to share a selection in multiple views which do not have the same source model.

Although multiple views can share the same QItemSelectionModel, the views then need to have the same source model.

If there is a proxy model between the model and one of the views, or different proxy models in each, this class makes it possible to share the selection between the views.

kproxyitemselectionmodel-simple.png
Sharing a QItemSelectionModel between views on the same model is trivial
kproxyitemselectionmodel-error.png
If a proxy model is used, it is no longer possible to share the QItemSelectionModel directly
kproxyitemselectionmodel-solution.png
A KLinkItemSelectionModel can be used to map the selection through the proxy model
QAbstractItemModel *model = getModel();
QSortFilterProxyModel *proxy = new QSortFilterProxyModel();
proxy->setSourceModel(model);
QTreeView *view1 = new QTreeView(splitter);
view1->setModel(model);
KLinkItemSelectionModel *view2SelectionModel = new KLinkItemSelectionModel( proxy, view1->selectionModel());
QTreeView *view2 = new QTreeView(splitter);
// Note that the QAbstractItemModel passed to KLinkItemSelectionModel must be the same as what is used in the view
view2->setModel(proxy);
view2->setSelectionModel( view2SelectionModel );
kproxyitemselectionmodel-complex.png
Arbitrarily complex proxy configurations on the same root model can be used
QAbstractItemModel *model = getModel();
QSortFilterProxyModel *proxy1 = new QSortFilterProxyModel();
proxy1->setSourceModel(model);
QSortFilterProxyModel *proxy2 = new QSortFilterProxyModel();
proxy2->setSourceModel(proxy1);
QSortFilterProxyModel *proxy3 = new QSortFilterProxyModel();
proxy3->setSourceModel(proxy2);
QTreeView *view1 = new QTreeView(splitter);
view1->setModel(proxy3);
QSortFilterProxyModel *proxy4 = new QSortFilterProxyModel();
proxy4->setSourceModel(model);
QSortFilterProxyModel *proxy5 = new QSortFilterProxyModel();
proxy5->setSourceModel(proxy4);
KLinkItemSelectionModel *view2SelectionModel = new KLinkItemSelectionModel( proxy5, view1->selectionModel());
QTreeView *view2 = new QTreeView(splitter);
// Note that the QAbstractItemModel passed to KLinkItemSelectionModel must be the same as what is used in the view
view2->setModel(proxy5);
view2->setSelectionModel( view2SelectionModel );

See also kdelibs/kdeui/tests/proxymodeltestapp/proxyitemselectionwidget.cpp.

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

Definition at line 95 of file klinkitemselectionmodel.h.

Constructor & Destructor Documentation

KLinkItemSelectionModel::KLinkItemSelectionModel ( QAbstractItemModel *  targetModel,
QItemSelectionModel *  linkedItemSelectionModel,
QObject *  parent = 0 
)

Constructor.

Definition at line 68 of file klinkitemselectionmodel.cpp.

KLinkItemSelectionModel::~KLinkItemSelectionModel ( )

Definition at line 77 of file klinkitemselectionmodel.cpp.

Member Function Documentation

void KLinkItemSelectionModel::select ( const QModelIndex &  index,
QItemSelectionModel::SelectionFlags  command 
)

Definition at line 82 of file klinkitemselectionmodel.cpp.

void KLinkItemSelectionModel::select ( const QItemSelection &  selection,
QItemSelectionModel::SelectionFlags  command 
)

Definition at line 134 of file klinkitemselectionmodel.cpp.

Member Data Documentation

KLinkItemSelectionModelPrivate* const KLinkItemSelectionModel::d_ptr
protected

Definition at line 108 of file klinkitemselectionmodel.h.


The documentation for this class was generated from the following files:
  • klinkitemselectionmodel.h
  • klinkitemselectionmodel.cpp
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:49:17 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KDEUI

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

kdelibs API Reference

Skip menu "kdelibs API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  • kjsembed
  •   WTF
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Nepomuk-Core
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



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