SearchModel Class Reference
Customize the proxy model to display search results. More...
#include <SearchModel.hh>
Public Member Functions | |
| bool | filterAcceptsRow (const int _srcRow, const QModelIndex &_srcParent) const |
| Overloaded Qt method. Customize so we accept rows where: More... | |
| bool | FilterAcceptsRowItself (const int _srcRow, const QModelIndex &_srcParent, const QString &_word) const |
| Check if row contains the word on itself. More... | |
| bool | HasAcceptedChildren (const int _srcRow, const QModelIndex &_srcParent) const |
| Check if any of the children is fully accepted. More... | |
| bool | HasChildAcceptsItself (const QModelIndex &_srcParent, const QString &_word) const |
| Check if any of the children accepts a specific word. More... | |
| void | SetSearch (const QString &_search) |
| Set a new search value. More... | |
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 | setSourceModel (QAbstractItemModel *sourceModel) |
| 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 char *signal, const QObject *receiver, const char *method) |
| bool | disconnect (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 |
Public Attributes | |
| QString | search |
| Full search string. More... | |
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) |
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, int id) const |
| QModelIndex | createIndex (int row, int column, quint32 id) const |
| QModelIndex | createIndex (int row, int column, void *ptr) 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) |
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
Customize the proxy model to display search results.
Features:
- This has been tested with QTreeView and QTableView.
- Manages expansion of nested items through DataRole::TO_EXPAND when applicable
- Items with DataRole::TYPE == "title" are ignored
Member Function Documentation
◆ filterAcceptsRow()
|
virtual |
Overloaded Qt method. Customize so we accept rows where:
- Each of the words can be found in its ancestors or itself, but not necessarily all words on the same row, or
- One of its descendants matches rule 1, or
- One of its ancestors matches rule 1.
For example this structure:
- a – b – c — d
- A search of "a" will display all rows.
- A search of "b" or "a b" will display "a" and "b".
- A search of "c", "d", "a c", "a d", "a c d" or "c d" will display "a", "c" and "d".
- A search of "a b c d", "b c" or "b d" will display nothing.
- Parameters
-
[in] _srcRow Row on the source model. [in] _srcParent Parent on the source model.
- Returns
- True if row is accepted.
Reimplemented from QSortFilterProxyModel.
◆ FilterAcceptsRowItself()
| bool FilterAcceptsRowItself | ( | const int | _srcRow, |
| const QModelIndex & | _srcParent, | ||
| const QString & | _word | ||
| ) | const |
Check if row contains the word on itself.
- Parameters
-
[in] _srcRow Row on the source model. [in] _srcParent Parent on the source model. [in] _word Word to be checked.
- Returns
- True if row matches.
◆ HasAcceptedChildren()
| bool HasAcceptedChildren | ( | const int | _srcRow, |
| const QModelIndex & | _srcParent | ||
| ) | const |
Check if any of the children is fully accepted.
- Parameters
-
[in] _srcRow Row on the source model. [in] _srcParent Parent on the source model.
- Returns
- True if any of the children match.
◆ HasChildAcceptsItself()
| bool HasChildAcceptsItself | ( | const QModelIndex & | _srcParent, |
| const QString & | _word | ||
| ) | const |
Check if any of the children accepts a specific word.
- Parameters
-
[in] _srcParent Parent on the source model. [in] _word Word to be checked.
- Returns
- True if any of the children match.
◆ SetSearch()
| void SetSearch | ( | const QString & | _search | ) |
Set a new search value.
- Parameters
-
[in] _search Full search string.
Member Data Documentation
◆ search
| QString search |
Full search string.
The documentation for this class was generated from the following file:
Public Member Functions inherited from