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: | |
bool | FilterAcceptsRowItself (const int _srcRow, const QModelIndex &_srcParent, const QString &_word) const |
Check if row contains the word on itself. | |
bool | HasAcceptedChildren (const int _srcRow, const QModelIndex &_srcParent) const |
Check if any of the children is fully accepted. | |
bool | HasChildAcceptsItself (const QModelIndex &_srcParent, const QString &_word) const |
Check if any of the children accepts a specific word. | |
void | SetSearch (const QString &_search) |
Set a new search value. | |
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. | |
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: