• 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)
 
- Public Member Functions inherited from QItemSelectionModel
 QItemSelectionModel (QAbstractItemModel *model)
 
 QItemSelectionModel (QAbstractItemModel *model, QObject *parent)
 
virtual  ~QItemSelectionModel ()
 
virtual void clear ()
 
void clearSelection ()
 
bool columnIntersectsSelection (int column, const QModelIndex &parent) const
 
void currentChanged (const QModelIndex &current, const QModelIndex &previous)
 
void currentColumnChanged (const QModelIndex &current, const QModelIndex &previous)
 
QModelIndex currentIndex () const
 
void currentRowChanged (const QModelIndex &current, const QModelIndex &previous)
 
bool hasSelection () const
 
bool isColumnSelected (int column, const QModelIndex &parent) const
 
bool isRowSelected (int row, const QModelIndex &parent) const
 
bool isSelected (const QModelIndex &index) const
 
const QAbstractItemModel * model () const
 
virtual void reset ()
 
bool rowIntersectsSelection (int row, const QModelIndex &parent) const
 
virtual void select (const QItemSelection &selection, QFlags< QItemSelectionModel::SelectionFlag > command)
 
virtual void select (const QModelIndex &index, QFlags< QItemSelectionModel::SelectionFlag > command)
 
QModelIndexList selectedColumns (int row) const
 
QModelIndexList selectedIndexes () const
 
QModelIndexList selectedRows (int column) const
 
const QItemSelection selection () const
 
void selectionChanged (const QItemSelection &selected, const QItemSelection &deselected)
 
void setCurrentIndex (const QModelIndex &index, QFlags< QItemSelectionModel::SelectionFlag > command)
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
 QObject (QObject *parent, const char *name)
 
virtual  ~QObject ()
 
bool blockSignals (bool block)
 
QObject * child (const char *objName, const char *inheritsClass, bool recursiveSearch) const
 
const QObjectList & children () const
 
const char * className () const
 
bool connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const QObject *receiver, const char *method)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method)
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QByteArray > dynamicPropertyNames () const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
T findChild (const QString &name) const
 
QList< T > findChildren (const QRegExp &regExp) const
 
QList< T > findChildren (const QString &name) const
 
bool inherits (const char *className) const
 
void insertChild (QObject *object)
 
void installEventFilter (QObject *filterObj)
 
bool isA (const char *className) const
 
bool isWidgetType () const
 
void killTimer (int id)
 
virtual const QMetaObject * metaObject () const
 
void moveToThread (QThread *targetThread)
 
const char * name () const
 
const char * name (const char *defaultName) const
 
QString objectName () const
 
QObject * parent () const
 
QVariant property (const char *name) const
 
void removeChild (QObject *object)
 
void removeEventFilter (QObject *obj)
 
void setName (const char *name)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval)
 
QThread * thread () const
 

Protected Attributes

KLinkItemSelectionModelPrivate
*const 
d_ptr
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from QItemSelectionModel
typedef SelectionFlags
 
- Protected Member Functions inherited from QItemSelectionModel
void emitSelectionChanged (const QItemSelection &newSelection, const QItemSelection &oldSelection)
 
- Protected Member Functions inherited from QObject
bool checkConnectArgs (const char *signal, const QObject *object, const char *method)
 
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const char *signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const char *signal)
 
int receivers (const char *signal) const
 
QObject * sender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 
- Static Protected Member Functions inherited from QObject
QByteArray normalizeSignalSlot (const char *signalSlot)
 
- Properties inherited from QObject
 objectName
 

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-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:24:02 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
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • 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