KDEUI
#include <krecursivefilterproxymodel.h>
Public Member Functions | |
KRecursiveFilterProxyModel (QObject *parent=0) | |
virtual | ~KRecursiveFilterProxyModel () |
virtual QModelIndexList | match (const QModelIndex &start, int role, const QVariant &value, int hits=1, Qt::MatchFlags flags=Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const |
void | setSourceModel (QAbstractItemModel *model) |
Public Member Functions inherited from QSortFilterProxyModel | |
QSortFilterProxyModel (QObject *parent) | |
~QSortFilterProxyModel () | |
virtual QModelIndex | buddy (const QModelIndex &index) const |
virtual bool | canFetchMore (const QModelIndex &parent) const |
void | clear () |
virtual int | columnCount (const QModelIndex &parent) const |
virtual QVariant | data (const QModelIndex &index, int role) const |
virtual bool | dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) |
bool | dynamicSortFilter () const |
virtual void | fetchMore (const QModelIndex &parent) |
Qt::CaseSensitivity | filterCaseSensitivity () const |
int | filterKeyColumn () const |
QRegExp | filterRegExp () const |
int | filterRole () const |
virtual Qt::ItemFlags | flags (const QModelIndex &index) const |
virtual bool | hasChildren (const QModelIndex &parent) const |
virtual QVariant | headerData (int section, Qt::Orientation orientation, int role) const |
virtual QModelIndex | index (int row, int column, const QModelIndex &parent) const |
virtual bool | insertColumns (int column, int count, const QModelIndex &parent) |
virtual bool | insertRows (int row, int count, const QModelIndex &parent) |
void | invalidate () |
bool | isSortLocaleAware () const |
virtual QModelIndex | mapFromSource (const QModelIndex &sourceIndex) const |
virtual QItemSelection | mapSelectionFromSource (const QItemSelection &sourceSelection) const |
virtual QItemSelection | mapSelectionToSource (const QItemSelection &proxySelection) const |
virtual QModelIndex | mapToSource (const QModelIndex &proxyIndex) const |
virtual QModelIndexList | match (const QModelIndex &start, int role, const QVariant &value, int hits, QFlags< Qt::MatchFlag > flags) const |
virtual QMimeData * | mimeData (const QModelIndexList &indexes) const |
virtual QStringList | mimeTypes () const |
virtual QModelIndex | parent (const QModelIndex &child) const |
virtual bool | removeColumns (int column, int count, const QModelIndex &parent) |
virtual bool | removeRows (int row, int count, const QModelIndex &parent) |
virtual int | rowCount (const QModelIndex &parent) const |
virtual bool | setData (const QModelIndex &index, const QVariant &value, int role) |
void | setDynamicSortFilter (bool enable) |
void | setFilterCaseSensitivity (Qt::CaseSensitivity cs) |
void | setFilterFixedString (const QString &pattern) |
void | setFilterKeyColumn (int column) |
void | setFilterRegExp (const QRegExp ®Exp) |
void | setFilterRegExp (const QString &pattern) |
void | setFilterRole (int role) |
void | setFilterWildcard (const QString &pattern) |
virtual bool | setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role) |
void | setSortCaseSensitivity (Qt::CaseSensitivity cs) |
void | setSortLocaleAware (bool on) |
void | setSortRole (int role) |
virtual void | sort (int column, Qt::SortOrder order) |
Qt::CaseSensitivity | sortCaseSensitivity () const |
int | sortColumn () const |
Qt::SortOrder | sortOrder () const |
int | sortRole () const |
virtual QSize | span (const QModelIndex &index) const |
virtual Qt::DropActions | supportedDropActions () const |
Public Member Functions inherited from QAbstractProxyModel | |
QAbstractProxyModel (QObject *parent) | |
~QAbstractProxyModel () | |
virtual QMap< int, QVariant > | itemData (const QModelIndex &proxyIndex) const |
virtual QModelIndex | mapFromSource (const QModelIndex &sourceIndex) const =0 |
virtual QModelIndex | mapToSource (const QModelIndex &proxyIndex) const =0 |
virtual void | revert () |
virtual bool | setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles) |
QAbstractItemModel * | sourceModel () const |
virtual bool | submit () |
Public Member Functions inherited from QAbstractItemModel | |
QAbstractItemModel (QObject *parent) | |
virtual | ~QAbstractItemModel () |
virtual int | columnCount (const QModelIndex &parent) const =0 |
void | columnsAboutToBeInserted (const QModelIndex &parent, int start, int end) |
void | columnsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn) |
void | columnsAboutToBeRemoved (const QModelIndex &parent, int start, int end) |
void | columnsInserted (const QModelIndex &parent, int start, int end) |
void | columnsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn) |
void | columnsRemoved (const QModelIndex &parent, int start, int end) |
virtual QVariant | data (const QModelIndex &index, int role) const =0 |
void | dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight) |
bool | hasIndex (int row, int column, const QModelIndex &parent) const |
void | headerDataChanged (Qt::Orientation orientation, int first, int last) |
virtual QModelIndex | index (int row, int column, const QModelIndex &parent) const =0 |
bool | insertColumn (int column, const QModelIndex &parent) |
bool | insertRow (int row, const QModelIndex &parent) |
void | layoutAboutToBeChanged () |
void | layoutChanged () |
void | modelAboutToBeReset () |
void | modelReset () |
virtual QModelIndex | parent (const QModelIndex &index) const =0 |
bool | removeColumn (int column, const QModelIndex &parent) |
bool | removeRow (int row, const QModelIndex &parent) |
const QHash< int, QByteArray > & | roleNames () const |
virtual int | rowCount (const QModelIndex &parent) const =0 |
void | rowsAboutToBeInserted (const QModelIndex &parent, int start, int end) |
void | rowsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow) |
void | rowsAboutToBeRemoved (const QModelIndex &parent, int start, int end) |
void | rowsInserted (const QModelIndex &parent, int start, int end) |
void | rowsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow) |
void | rowsRemoved (const QModelIndex &parent, int start, int end) |
void | setSupportedDragActions (QFlags< Qt::DropAction > actions) |
QModelIndex | sibling (int row, int column, const QModelIndex &index) const |
Qt::DropActions | supportedDragActions () const |
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 ®Exp) 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 Member Functions | |
virtual bool | acceptRow (int sourceRow, const QModelIndex &sourceParent) const |
Protected Member Functions inherited from QSortFilterProxyModel | |
virtual bool | filterAcceptsColumn (int source_column, const QModelIndex &source_parent) const |
void | filterChanged () |
void | invalidateFilter () |
virtual bool | lessThan (const QModelIndex &left, const QModelIndex &right) const |
Protected Member Functions inherited from QAbstractItemModel | |
void | beginInsertColumns (const QModelIndex &parent, int first, int last) |
void | beginInsertRows (const QModelIndex &parent, int first, int last) |
bool | beginMoveColumns (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild) |
bool | beginMoveRows (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild) |
void | beginRemoveColumns (const QModelIndex &parent, int first, int last) |
void | beginRemoveRows (const QModelIndex &parent, int first, int last) |
void | beginResetModel () |
void | changePersistentIndex (const QModelIndex &from, const QModelIndex &to) |
void | changePersistentIndexList (const QModelIndexList &from, const QModelIndexList &to) |
QModelIndex | createIndex (int row, int column, void *ptr) const |
QModelIndex | createIndex (int row, int column, int id) const |
QModelIndex | createIndex (int row, int column, quint32 id) const |
void | endInsertColumns () |
void | endInsertRows () |
void | endMoveColumns () |
void | endMoveRows () |
void | endRemoveColumns () |
void | endRemoveRows () |
void | endResetModel () |
QModelIndexList | persistentIndexList () const |
void | reset () |
void | resetInternalData () |
void | setRoleNames (const QHash< int, QByteArray > &roleNames) |
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) |
Protected Attributes | |
KRecursiveFilterProxyModelPrivate *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) |
Static Protected Member Functions inherited from QObject | |
QByteArray | normalizeSignalSlot (const char *signalSlot) |
Properties inherited from QSortFilterProxyModel | |
dynamicSortFilter | |
filterCaseSensitivity | |
filterKeyColumn | |
filterRegExp | |
filterRole | |
isSortLocaleAware | |
sortCaseSensitivity | |
sortRole | |
Properties inherited from QObject | |
objectName | |
Detailed Description
Implements recursive filtering of models.
QSortFilterProxyModel does not recurse when invoking a filtering stage, so that if a particular row is filtered out, its children are not even checked to see if they match the filter.
For example, given a source model:
- A - B - - C - - - D - - - - E - - - F - - G - - H - I
If a QSortFilterProxyModel is used with a filter matching A, D, G and I, the QSortFilterProxyModel will contain
- A - I
That is, even though D and E match the filter, they are not represented in the proxy model because B does not match the filter and is filtered out.
The KRecursiveFilterProxyModel checks child indexes for filter matching and ensures that all matching indexes are represented in the model.
In the above example, the KRecursiveFilterProxyModel will contain
- A - B - - C - - - D - - G - I
That is, the leaves in the model match the filter, but not necessarily the inner branches.
QSortFilterProxyModel provides the virtual method filterAcceptsRow to allow custom filter implementations. Custom filter implementations can be written for KRecuriveFilterProxyModel using the acceptRow virtual method.
Note that using this proxy model is additional overhead compared to QSortFilterProxyModel as every index in the model must be visited and queried.
- Since
- 4.5
Definition at line 87 of file krecursivefilterproxymodel.h.
Constructor & Destructor Documentation
|
explicit |
Constructor.
Definition at line 234 of file krecursivefilterproxymodel.cpp.
|
virtual |
Destructor.
Definition at line 240 of file krecursivefilterproxymodel.cpp.
Member Function Documentation
|
protectedvirtual |
Reimplement this method for custom filtering strategies.
Definition at line 282 of file krecursivefilterproxymodel.cpp.
|
virtual |
Definition at line 266 of file krecursivefilterproxymodel.cpp.
|
virtual |
- Reimplemented from superclass.
Reimplemented from QSortFilterProxyModel.
Definition at line 287 of file krecursivefilterproxymodel.cpp.
Member Data Documentation
|
protected |
Definition at line 121 of file krecursivefilterproxymodel.h.
The documentation for this class was generated from the following files:
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:24:03 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.