KLinkItemSelectionModel
KLinkItemSelectionModel Class Reference
#include <KLinkItemSelectionModel>
Inheritance diagram for KLinkItemSelectionModel:

Properties | |
QItemSelectionModel | linkedItemSelectionModel |
![]() | |
selectedIndexes | |
![]() | |
objectName | |
Signals | |
void | linkedItemSelectionModelChanged () |
Public Member Functions | |
KLinkItemSelectionModel (QAbstractItemModel *targetModel, QItemSelectionModel *linkedItemSelectionModel, QObject *parent=nullptr) | |
KLinkItemSelectionModel (QObject *parent=nullptr) | |
QItemSelectionModel * | linkedItemSelectionModel () const |
void | select (const QItemSelection &selection, QItemSelectionModel::SelectionFlags command) override |
void | select (const QModelIndex &index, QItemSelectionModel::SelectionFlags command) override |
void | setLinkedItemSelectionModel (QItemSelectionModel *selectionModel) |
![]() | |
QItemSelectionModel (QAbstractItemModel *model) | |
QItemSelectionModel (QAbstractItemModel *model, QObject *parent) | |
virtual void | clear () |
virtual void | clearCurrentIndex () |
void | clearSelection () |
bool | columnIntersectsSelection (int column, const QModelIndex &parent) const const |
void | currentChanged (const QModelIndex ¤t, const QModelIndex &previous) |
void | currentColumnChanged (const QModelIndex ¤t, const QModelIndex &previous) |
QModelIndex | currentIndex () const const |
void | currentRowChanged (const QModelIndex ¤t, const QModelIndex &previous) |
bool | hasSelection () const const |
bool | isColumnSelected (int column, const QModelIndex &parent) const const |
bool | isRowSelected (int row, const QModelIndex &parent) const const |
bool | isSelected (const QModelIndex &index) const const |
QAbstractItemModel * | model () |
const QAbstractItemModel * | model () const const |
void | modelChanged (QAbstractItemModel *model) |
virtual void | reset () |
bool | rowIntersectsSelection (int row, const QModelIndex &parent) const const |
QModelIndexList | selectedColumns (int row) const const |
QModelIndexList | selectedIndexes () const const |
QModelIndexList | selectedRows (int column) const const |
const QItemSelection | selection () const const |
void | selectionChanged (const QItemSelection &selected, const QItemSelection &deselected) |
virtual void | setCurrentIndex (const QModelIndex &index, QItemSelectionModel::SelectionFlags command) |
void | setModel (QAbstractItemModel *model) |
![]() | |
QObject (QObject *parent) | |
bool | blockSignals (bool block) |
const QObjectList & | children () const const |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
void | deleteLater () |
void | destroyed (QObject *obj) |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
bool | disconnect (const QObject *receiver, const char *method) const const |
void | dumpObjectInfo () |
void | dumpObjectInfo () const const |
void | dumpObjectTree () |
void | dumpObjectTree () const const |
QList< QByteArray > | dynamicPropertyNames () const const |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
bool | inherits (const char *className) const const |
void | installEventFilter (QObject *filterObj) |
bool | isWidgetType () const const |
bool | isWindowType () const const |
void | killTimer (int id) |
virtual const QMetaObject * | metaObject () const const |
void | moveToThread (QThread *targetThread) |
QString | objectName () const const |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
QVariant | property (const char *name) const const |
Q_CLASSINFO (Name, Value) | |
Q_DISABLE_COPY (Class) | |
Q_DISABLE_COPY_MOVE (Class) | |
Q_DISABLE_MOVE (Class) | |
Q_EMIT Q_EMIT | |
Q_ENUM (...) | |
Q_ENUM_NS (...) | |
Q_ENUMS (...) | |
Q_FLAG (...) | |
Q_FLAG_NS (...) | |
Q_FLAGS (...) | |
Q_GADGET Q_GADGET | |
Q_INTERFACES (...) | |
Q_INVOKABLE Q_INVOKABLE | |
Q_NAMESPACE Q_NAMESPACE | |
Q_NAMESPACE_EXPORT (EXPORT_MACRO) | |
Q_OBJECT Q_OBJECT | |
Q_PROPERTY (...) | |
Q_REVISION Q_REVISION | |
Q_SET_OBJECT_NAME (Object) | |
Q_SIGNAL Q_SIGNAL | |
Q_SIGNALS Q_SIGNALS | |
Q_SLOT Q_SLOT | |
Q_SLOTS Q_SLOTS | |
T | qFindChild (const QObject *obj, const QString &name) |
QList< T > | qFindChildren (const QObject *obj, const QRegExp ®Exp) |
QList< T > | qFindChildren (const QObject *obj, const QString &name) |
T | qobject_cast (const QObject *object) |
T | qobject_cast (QObject *object) |
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT | |
void | removeEventFilter (QObject *obj) |
void | setObjectName (const QString &name) |
void | setParent (QObject *parent) |
bool | setProperty (const char *name, const QVariant &value) |
bool | signalsBlocked () const const |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
QThread * | thread () const const |
Protected Attributes | |
const std::unique_ptr< KLinkItemSelectionModelPrivate > | d_ptr |
Additional Inherited Members | |
![]() | |
enum | SelectionFlag |
![]() | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
bool | disconnect (const QMetaObject::Connection &connection) |
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) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
![]() | |
Clear | |
ClearAndSelect | |
Columns | |
Current | |
Deselect | |
NoUpdate | |
Rows | |
Select | |
SelectCurrent | |
typedef | SelectionFlags |
Toggle | |
ToggleCurrent | |
![]() | |
typedef | QObjectList |
![]() | |
void | emitSelectionChanged (const QItemSelection &newSelection, const QItemSelection &oldSelection) |
![]() | |
virtual void | childEvent (QChildEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | customEvent (QEvent *event) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
bool | isSignalConnected (const QMetaMethod &signal) const const |
int | receivers (const char *signal) const const |
QObject * | sender () const const |
int | senderSignalIndex () const const |
virtual void | timerEvent (QTimerEvent *event) |
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.

Sharing a QItemSelectionModel between views on the same model is trivial

If a proxy model is used, it is no longer possible to share the QItemSelectionModel directly

A KLinkItemSelectionModel can be used to map the selection through the proxy model
QAbstractItemModel *model = getModel();
proxy->setSourceModel(model);
KLinkItemSelectionModel *view2SelectionModel = new KLinkItemSelectionModel( proxy, view1->selectionModel());
// Note that the QAbstractItemModel passed to KLinkItemSelectionModel must be the same as what is used in the view
view2->setModel(proxy);
view2->setSelectionModel( view2SelectionModel );

Arbitrarily complex proxy configurations on the same root model can be used
QAbstractItemModel *model = getModel();
proxy1->setSourceModel(model);
proxy2->setSourceModel(proxy1);
proxy3->setSourceModel(proxy2);
view1->setModel(proxy3);
proxy4->setSourceModel(model);
proxy5->setSourceModel(proxy4);
KLinkItemSelectionModel *view2SelectionModel = new KLinkItemSelectionModel( proxy5, view1->selectionModel());
// 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 kitemmodels: tests/proxymodeltestapp/proxyitemselectionwidget.cpp.
- Since
- 4.5
Definition at line 88 of file klinkitemselectionmodel.h.
Constructor & Destructor Documentation
◆ KLinkItemSelectionModel()
KLinkItemSelectionModel::KLinkItemSelectionModel | ( | QAbstractItemModel * | targetModel, |
QItemSelectionModel * | linkedItemSelectionModel, | ||
QObject * | parent = nullptr |
||
) |
Constructor.
Definition at line 66 of file klinkitemselectionmodel.cpp.
The documentation for this class was generated from the following files:
const QAbstractItemModel * model() const const
virtual void setModel(QAbstractItemModel *model) override
QItemSelectionModel * selectionModel() const const
virtual void setSourceModel(QAbstractItemModel *sourceModel) override
virtual void setSelectionModel(QItemSelectionModel *selectionModel) override
Makes it possible to share a selection in multiple views which do not have the same source model.
Definition: klinkitemselectionmodel.h:88
KLinkItemSelectionModel(QAbstractItemModel *targetModel, QItemSelectionModel *linkedItemSelectionModel, QObject *parent=nullptr)
Constructor.
Definition: klinkitemselectionmodel.cpp:66
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Feb 7 2023 04:08:36 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Feb 7 2023 04:08:36 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.