Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QSortFilterProxyModel Class Reference

The QSortFilterProxyModel class provides support for sorting and filtering data passed between another model and a view. More...

#include <qsortfilterproxymodel.h>

+ Inheritance diagram for QSortFilterProxyModel:
+ Collaboration diagram for QSortFilterProxyModel:

Public Slots

void setFilterRegularExpression (const QString &pattern)
 
void setFilterRegularExpression (const QRegularExpression &regularExpression)
 
void setFilterWildcard (const QString &pattern)
 Sets the wildcard expression used to filter the contents of the source model to the given pattern.
 
void setFilterFixedString (const QString &pattern)
 Sets the fixed string used to filter the contents of the source model to the given pattern.
 
void invalidate ()
 
- Public Slots inherited from QAbstractItemModel
virtual bool submit ()
 Lets the model know that it should submit cached information to permanent storage.
 
virtual void revert ()
 Lets the model know that it should discard cached information.
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 

Signals

void dynamicSortFilterChanged (bool dynamicSortFilter)
 
void filterCaseSensitivityChanged (Qt::CaseSensitivity filterCaseSensitivity)
 This signal is emitted when the case sensitivity of the filter changes to filterCaseSensitivity.
 
void sortCaseSensitivityChanged (Qt::CaseSensitivity sortCaseSensitivity)
 This signal is emitted when the case sensitivity for sorting changes to sortCaseSensitivity.
 
void sortLocaleAwareChanged (bool sortLocaleAware)
 This signal is emitted when the locale aware setting changes to sortLocaleAware.
 
void sortRoleChanged (int sortRole)
 This signal is emitted when the sort role changes to sortRole.
 
void filterRoleChanged (int filterRole)
 This signal is emitted when the filter role changes to filterRole.
 
void recursiveFilteringEnabledChanged (bool recursiveFilteringEnabled)
 This signal is emitted when the recursive filter setting is changed to recursiveFilteringEnabled.
 
void autoAcceptChildRowsChanged (bool autoAcceptChildRows)
 This signals is emitted when the value of the autoAcceptChildRows property is changed.
 
- Signals inherited from QAbstractProxyModel
void sourceModelChanged (QPrivateSignal)
 
- Signals inherited from QAbstractItemModel
void dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList< int > &roles=QList< int >())
 This signal is emitted whenever the data in an existing item changes.
 
void headerDataChanged (Qt::Orientation orientation, int first, int last)
 This signal is emitted whenever a header is changed.
 
void layoutChanged (const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint)
 
void layoutAboutToBeChanged (const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint)
 
void rowsAboutToBeInserted (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted just before rows are inserted into the model.
 
void rowsInserted (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted after rows have been inserted into the model.
 
void rowsAboutToBeRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted just before rows are removed from the model.
 
void rowsRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted after rows have been removed from the model.
 
void columnsAboutToBeInserted (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted just before columns are inserted into the model.
 
void columnsInserted (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted after columns have been inserted into the model.
 
void columnsAboutToBeRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted just before columns are removed from the model.
 
void columnsRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted after columns have been removed from the model.
 
void modelAboutToBeReset (QPrivateSignal)
 
void modelReset (QPrivateSignal)
 
void rowsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow, QPrivateSignal)
 
void rowsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow, QPrivateSignal)
 
void columnsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn, QPrivateSignal)
 
void columnsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn, QPrivateSignal)
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

 QSortFilterProxyModel (QObject *parent=nullptr)
 Constructs a sorting filter model with the given parent.
 
 ~QSortFilterProxyModel ()
 Destroys this sorting filter model.
 
void setSourceModel (QAbstractItemModel *sourceModel) override
 \reimp
 
QModelIndex mapToSource (const QModelIndex &proxyIndex) const override
 Returns the source model index corresponding to the given proxyIndex from the sorting filter model.
 
QModelIndex mapFromSource (const QModelIndex &sourceIndex) const override
 Returns the model index in the QSortFilterProxyModel given the sourceIndex from the source model.
 
QItemSelection mapSelectionToSource (const QItemSelection &proxySelection) const override
 \reimp
 
QItemSelection mapSelectionFromSource (const QItemSelection &sourceSelection) const override
 \reimp
 
QRegularExpression filterRegularExpression () const
 
QBindable< QRegularExpressionbindableFilterRegularExpression ()
 
int filterKeyColumn () const
 
void setFilterKeyColumn (int column)
 
QBindable< int > bindableFilterKeyColumn ()
 
Qt::CaseSensitivity filterCaseSensitivity () const
 
void setFilterCaseSensitivity (Qt::CaseSensitivity cs)
 
QBindable< Qt::CaseSensitivitybindableFilterCaseSensitivity ()
 
Qt::CaseSensitivity sortCaseSensitivity () const
 
void setSortCaseSensitivity (Qt::CaseSensitivity cs)
 
QBindable< Qt::CaseSensitivitybindableSortCaseSensitivity ()
 
bool isSortLocaleAware () const
 
void setSortLocaleAware (bool on)
 
QBindable< bool > bindableIsSortLocaleAware ()
 
int sortColumn () const
 
Qt::SortOrder sortOrder () const
 
bool dynamicSortFilter () const
 
void setDynamicSortFilter (bool enable)
 
QBindable< bool > bindableDynamicSortFilter ()
 
int sortRole () const
 
void setSortRole (int role)
 
QBindable< int > bindableSortRole ()
 
int filterRole () const
 
void setFilterRole (int role)
 
QBindable< int > bindableFilterRole ()
 
bool isRecursiveFilteringEnabled () const
 
void setRecursiveFilteringEnabled (bool recursive)
 
QBindable< bool > bindableRecursiveFilteringEnabled ()
 
bool autoAcceptChildRows () const
 
void setAutoAcceptChildRows (bool accept)
 
QBindable< bool > bindableAutoAcceptChildRows ()
 
QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override
 \reimp
 
QModelIndex parent (const QModelIndex &child) const override
 \reimp
 
QModelIndex sibling (int row, int column, const QModelIndex &idx) const override
 \reimp
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 \reimp
 
int columnCount (const QModelIndex &parent=QModelIndex()) const override
 \reimp
 
bool hasChildren (const QModelIndex &parent=QModelIndex()) const override
 \reimp
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 \reimp
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 \reimp
 
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 \reimp
 
bool setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole) override
 \reimp
 
QMimeDatamimeData (const QModelIndexList &indexes) const override
 \reimp
 
bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
 \reimp
 
bool insertRows (int row, int count, const QModelIndex &parent=QModelIndex()) override
 \reimp
 
bool insertColumns (int column, int count, const QModelIndex &parent=QModelIndex()) override
 \reimp
 
bool removeRows (int row, int count, const QModelIndex &parent=QModelIndex()) override
 \reimp
 
bool removeColumns (int column, int count, const QModelIndex &parent=QModelIndex()) override
 \reimp
 
void fetchMore (const QModelIndex &parent) override
 \reimp
 
bool canFetchMore (const QModelIndex &parent) const override
 \reimp
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 \reimp
 
QModelIndex buddy (const QModelIndex &index) const override
 \reimp
 
QModelIndexList match (const QModelIndex &start, int role, const QVariant &value, int hits=1, Qt::MatchFlags flags=Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const override
 \reimp
 
QSize span (const QModelIndex &index) const override
 \reimp
 
void sort (int column, Qt::SortOrder order=Qt::AscendingOrder) override
 \reimp
 
QStringList mimeTypes () const override
 \reimp
 
Qt::DropActions supportedDropActions () const override
 \reimp
 
QObjectparent () const
 Returns a pointer to the parent object.
 
- Public Member Functions inherited from QAbstractProxyModel
 QAbstractProxyModel (QObject *parent=nullptr)
 Constructs a proxy model with the given parent.
 
 ~QAbstractProxyModel ()
 Destroys the proxy model.
 
virtual void setSourceModel (QAbstractItemModel *sourceModel)
 Sets the given sourceModel to be processed by the proxy model.
 
QAbstractItemModelsourceModel () const
 Returns the model that contains the data that is available through the proxy model.
 
QBindable< QAbstractItemModel * > bindableSourceModel ()
 
virtual Q_INVOKABLE QModelIndex mapToSource (const QModelIndex &proxyIndex) const =0
 Reimplement this function to return the model index in the source model that corresponds to the proxyIndex in the proxy model.
 
virtual Q_INVOKABLE QModelIndex mapFromSource (const QModelIndex &sourceIndex) const =0
 Reimplement this function to return the model index in the proxy model that corresponds to the sourceIndex from the source model.
 
virtual Q_INVOKABLE QItemSelection mapSelectionToSource (const QItemSelection &selection) const
 Returns a source selection mapped from the specified proxySelection.
 
virtual Q_INVOKABLE QItemSelection mapSelectionFromSource (const QItemSelection &selection) const
 Returns a proxy selection mapped from the specified sourceSelection.
 
bool submit () override
 \reimp
 
void revert () override
 \reimp
 
QVariant data (const QModelIndex &proxyIndex, int role=Qt::DisplayRole) const override
 \reimp
 
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 \reimp
 
QMap< int, QVariantitemData (const QModelIndex &index) const override
 \reimp
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 \reimp
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 \reimp
 
bool setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles) override
 \reimp
 
bool setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole) override
 \reimp
 
bool clearItemData (const QModelIndex &index) override
 \reimp
 
QModelIndex buddy (const QModelIndex &index) const override
 \reimp
 
bool canFetchMore (const QModelIndex &parent) const override
 \reimp
 
void fetchMore (const QModelIndex &parent) override
 \reimp
 
void sort (int column, Qt::SortOrder order=Qt::AscendingOrder) override
 \reimp
 
QSize span (const QModelIndex &index) const override
 \reimp
 
bool hasChildren (const QModelIndex &parent=QModelIndex()) const override
 \reimp
 
QModelIndex sibling (int row, int column, const QModelIndex &idx) const override
 \reimp
 
QMimeDatamimeData (const QModelIndexList &indexes) const override
 \reimp
 
bool canDropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override
 \reimp
 
bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
 \reimp
 
QStringList mimeTypes () const override
 \reimp
 
Qt::DropActions supportedDragActions () const override
 \reimp
 
Qt::DropActions supportedDropActions () const override
 \reimp
 
QHash< int, QByteArrayroleNames () const override
 \reimp
 
- Public Member Functions inherited from QAbstractItemModel
 QAbstractItemModel (QObject *parent=nullptr)
 Constructs an abstract item model with the given parent.
 
virtual ~QAbstractItemModel ()
 Destroys the abstract item model.
 
Q_INVOKABLE bool hasIndex (int row, int column, const QModelIndex &parent=QModelIndex()) const
 Returns {true} if the model returns a valid QModelIndex for row and column with parent, otherwise returns {false}.
 
virtual Q_INVOKABLE QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const =0
 Returns the index of the item in the model specified by the given row, column and parent index.
 
virtual Q_INVOKABLE QModelIndex parent (const QModelIndex &child) const =0
 
virtual Q_INVOKABLE QModelIndex sibling (int row, int column, const QModelIndex &idx) const
 Returns the sibling at row and column for the item at index, or an invalid QModelIndex if there is no sibling at that location.
 
virtual Q_INVOKABLE int rowCount (const QModelIndex &parent=QModelIndex()) const =0
 Returns the number of rows under the given parent.
 
virtual Q_INVOKABLE int columnCount (const QModelIndex &parent=QModelIndex()) const =0
 Returns the number of columns for the children of the given parent.
 
virtual Q_INVOKABLE bool hasChildren (const QModelIndex &parent=QModelIndex()) const
 Returns {true} if parent has any children; otherwise returns {false}.
 
virtual Q_INVOKABLE QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const =0
 Returns the data stored under the given role for the item referred to by the index.
 
virtual Q_INVOKABLE bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
 Sets the role data for the item at index to value.
 
virtual Q_INVOKABLE QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
 Returns the data for the given role and section in the header with the specified orientation.
 
virtual bool setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole)
 Sets the data for the given role and section in the header with the specified orientation to the value supplied.
 
virtual QMap< int, QVariantitemData (const QModelIndex &index) const
 Returns a map with values for all predefined roles in the model for the item at the given index.
 
virtual bool setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles)
 Sets the role data for the item at index to the associated value in roles, for every Qt::ItemDataRole.
 
virtual bool clearItemData (const QModelIndex &index)
 
virtual QStringList mimeTypes () const
 Returns the list of allowed MIME types.
 
virtual QMimeDatamimeData (const QModelIndexList &indexes) const
 Returns an object that contains serialized items of data corresponding to the list of indexes specified.
 
virtual bool canDropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const
 Returns {true} if a model can accept a drop of the data.
 
virtual bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
 Handles the data supplied by a drag and drop operation that ended with the given action.
 
virtual Qt::DropActions supportedDropActions () const
 
virtual Qt::DropActions supportedDragActions () const
 Returns the actions supported by the data in this model.
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool insertRows(int row
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool insertColumns(int column
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool removeRows(int row
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool removeColumns(int column
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool moveRows(const QModelIndex &sourceParent
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool moveColumns(const QModelIndex &sourceParent
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool insertRow(int row
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool insertColumn(int column
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool removeRow(int row
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool removeColumn(int column
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool moveRow(const QModelIndex &sourceParent
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool moveColumn(const QModelIndex &sourceParent
 
virtual Q_INVOKABLE void fetchMore (const QModelIndex &parent)
 Fetches any available data for the items with the parent specified by the parent index.
 
virtual Q_INVOKABLE bool canFetchMore (const QModelIndex &parent) const
 Returns {true} if there is more data available for parent; otherwise returns {false}.
 
virtual Q_INVOKABLE Qt::ItemFlags flags (const QModelIndex &index) const
 Returns the item flags for the given index.
 
Q_INVOKABLE Q_REVISION (6, 4) virtual void sort(int column
 
virtual QModelIndex buddy (const QModelIndex &index) const
 Returns a model index for the buddy of the item represented by index.
 
virtual Q_INVOKABLE QModelIndexList match (const QModelIndex &start, int role, const QVariant &value, int hits=1, Qt::MatchFlags flags=Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const
 Returns a list of indexes for the items in the column of the start index where data stored under the given role matches the specified value.
 
virtual QSize span (const QModelIndex &index) const
 Returns the row and column span of the item represented by index.
 
virtual QHash< int, QByteArrayroleNames () const
 
bool checkIndex (const QModelIndex &index, CheckIndexOptions options=CheckIndexOption::NoOption) const
 
virtual void multiData (const QModelIndex &index, QModelRoleDataSpan roleDataSpan) const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
template<typename T >
findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Protected Member Functions

virtual bool filterAcceptsRow (int source_row, const QModelIndex &source_parent) const
 Returns true if the item in the row indicated by the given source_row and source_parent should be included in the model; otherwise returns false.
 
virtual bool filterAcceptsColumn (int source_column, const QModelIndex &source_parent) const
 Returns true if the item in the column indicated by the given source_column and source_parent should be included in the model; otherwise returns false.
 
virtual bool lessThan (const QModelIndex &source_left, const QModelIndex &source_right) const
 Returns true if the value of the item referred to by the given index source_left is less than the value of the item referred to by the given index source_right, otherwise returns false.
 
void invalidateFilter ()
 
void invalidateRowsFilter ()
 
void invalidateColumnsFilter ()
 
- Protected Member Functions inherited from QAbstractProxyModel
QModelIndex createSourceIndex (int row, int col, void *internalPtr) const
 Equivalent to calling createIndex on the source model.
 
 QAbstractProxyModel (QAbstractProxyModelPrivate &, QObject *parent)
 
- Protected Member Functions inherited from QAbstractItemModel
 QAbstractItemModel (QAbstractItemModelPrivate &dd, QObject *parent=nullptr)
 
QModelIndex createIndex (int row, int column, const void *data=nullptr) const
 Creates a model index for the given row and column with the internal pointer ptr.
 
QModelIndex createIndex (int row, int column, quintptr id) const
 Creates a model index for the given row and column with the internal identifier, id.
 
void encodeData (const QModelIndexList &indexes, QDataStream &stream) const
 
bool decodeData (int row, int column, const QModelIndex &parent, QDataStream &stream)
 
void beginInsertRows (const QModelIndex &parent, int first, int last)
 Begins a row insertion operation.
 
void endInsertRows ()
 Ends a row insertion operation.
 
void beginRemoveRows (const QModelIndex &parent, int first, int last)
 Begins a row removal operation.
 
void endRemoveRows ()
 Ends a row removal operation.
 
bool beginMoveRows (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationRow)
 
void endMoveRows ()
 Ends a row move operation.
 
void beginInsertColumns (const QModelIndex &parent, int first, int last)
 Begins a column insertion operation.
 
void endInsertColumns ()
 Ends a column insertion operation.
 
void beginRemoveColumns (const QModelIndex &parent, int first, int last)
 Begins a column removal operation.
 
void endRemoveColumns ()
 Ends a column removal operation.
 
bool beginMoveColumns (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationColumn)
 Begins a column move operation.
 
void endMoveColumns ()
 Ends a column move operation.
 
void beginResetModel ()
 Begins a model reset operation.
 
void endResetModel ()
 Completes a model reset operation.
 
void changePersistentIndex (const QModelIndex &from, const QModelIndex &to)
 Changes the QPersistentModelIndex that is equal to the given from model index to the given to model index.
 
void changePersistentIndexList (const QModelIndexList &from, const QModelIndexList &to)
 
QModelIndexList persistentIndexList () const
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 

Properties

QRegularExpression filterRegularExpression
 the QRegularExpression used to filter the contents of the source model
 
int filterKeyColumn
 the column where the key used to filter the contents of the source model is read from.
 
bool dynamicSortFilter
 whether the proxy model is dynamically sorted and filtered whenever the contents of the source model change
 
Qt::CaseSensitivity filterCaseSensitivity
 the case sensitivity of the QRegularExpression pattern used to filter the contents of the source model.
 
Qt::CaseSensitivity sortCaseSensitivity
 the case sensitivity setting used for comparing strings when sorting
 
bool isSortLocaleAware
 the local aware setting used for comparing strings when sorting
 
int sortRole
 the item role that is used to query the source model's data when sorting items.
 
int filterRole
 the item role that is used to query the source model's data when filtering items.
 
bool recursiveFilteringEnabled
 whether the filter to be applied recursively on children, and for any matching child, its parents will be visible as well.
 
bool autoAcceptChildRows
 if true the proxy model will not filter out children of accepted rows, even if they themselves would be filtered out otherwise.
 
- Properties inherited from QAbstractProxyModel
QAbstractItemModelsourceModel
 the source model of this proxy model.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Friends

class QSortFilterProxyModelLessThan
 
class QSortFilterProxyModelGreaterThan
 

Additional Inherited Members

- Public Types inherited from QAbstractItemModel
enum  LayoutChangeHint { NoLayoutChangeHint , VerticalSortHint , HorizontalSortHint }
 This enum describes the way the model changes layout. More...
 
enum class  CheckIndexOption { NoOption = 0x0000 , IndexIsValid = 0x0001 , DoNotUseParent = 0x0002 , ParentIsInvalid = 0x0004 }
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Public Attributes inherited from QAbstractItemModel
Q_INVOKABLE int count
 
Q_INVOKABLE int const QModelIndexparent = QModelIndex())
 Returns the parent of the model item with the given index.
 
Q_INVOKABLE int sourceRow
 
Q_INVOKABLE int int count
 
Q_INVOKABLE int int const QModelIndexdestinationParent
 
Q_INVOKABLE int int const QModelIndex int destinationChild
 
Q_INVOKABLE int sourceColumn
 
Q_INVOKABLE const QModelIndexparent = QModelIndex())
 
Q_INVOKABLE int const QModelIndexdestinationParent
 
Q_INVOKABLE int const QModelIndex int destinationChild
 
Q_INVOKABLE Qt::SortOrder order = Qt::AscendingOrder)
 
- Protected Slots inherited from QAbstractItemModel
virtual void resetInternalData ()
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

The QSortFilterProxyModel class provides support for sorting and filtering data passed between another model and a view.

Since
4.1

\inmodule QtCore

QSortFilterProxyModel can be used for sorting items, filtering out items, or both. The model transforms the structure of a source model by mapping the model indexes it supplies to new indexes, corresponding to different locations, for views to use. This approach allows a given source model to be restructured as far as views are concerned without requiring any transformations on the underlying data, and without duplicating the data in memory.

Let's assume that we want to sort and filter the items provided by a custom model. The code to set up the model and the view, without sorting and filtering, would look like this:

QTreeView *treeView = new QTreeView;
treeView->setModel(model);
The QTreeView class provides a default model/view implementation of a tree view.
Definition qtreeview.h:20
void setModel(QAbstractItemModel *model) override
\reimp
QSqlQueryModel * model
[16]

To add sorting and filtering support to MyItemModel, we need to create a QSortFilterProxyModel, call setSourceModel() with the MyItemModel as argument, and install the QSortFilterProxyModel on the view:

QTreeView *treeView = new QTreeView;
treeView->setModel(proxyModel);
QAbstractItemModel * sourceModel
the source model of this proxy model.
The QSortFilterProxyModel class provides support for sorting and filtering data passed between anothe...
void setSourceModel(QAbstractItemModel *sourceModel) override
\reimp

At this point, neither sorting nor filtering is enabled; the original data is displayed in the view. Any changes made through the QSortFilterProxyModel are applied to the original model.

The QSortFilterProxyModel acts as a wrapper for the original model. If you need to convert source \l{QModelIndex}es to sorted/filtered model indexes or vice versa, use mapToSource(), mapFromSource(), mapSelectionToSource(), and mapSelectionFromSource().

Note
By default, the model dynamically re-sorts and re-filters data whenever the original model changes. This behavior can be changed by setting the \l{QSortFilterProxyModel::dynamicSortFilter}{dynamicSortFilter} property.

The \l{itemviews/basicsortfiltermodel}{Basic Sort/Filter Model} and \l{itemviews/customsortfiltermodel}{Custom Sort/Filter Model} examples illustrate how to use QSortFilterProxyModel to perform basic sorting and filtering and how to subclass it to implement custom behavior.

Definition at line 20 of file qsortfilterproxymodel.h.

Constructor & Destructor Documentation

◆ QSortFilterProxyModel()

QSortFilterProxyModel::QSortFilterProxyModel ( QObject parent = nullptr)
explicit

Constructs a sorting filter model with the given parent.

Definition at line 2008 of file qsortfilterproxymodel.cpp.

References QSortFilterProxyModelPrivate::_q_clearMapping(), QObjectPrivate::connect(), d, and QAbstractItemModel::modelReset().

+ Here is the call graph for this function:

◆ ~QSortFilterProxyModel()

QSortFilterProxyModel::~QSortFilterProxyModel ( )

Destroys this sorting filter model.

Definition at line 2019 of file qsortfilterproxymodel.cpp.

References d, and qDeleteAll().

+ Here is the call graph for this function:

Member Function Documentation

◆ autoAcceptChildRows()

bool QSortFilterProxyModel::autoAcceptChildRows ( ) const

Definition at line 3043 of file qsortfilterproxymodel.cpp.

References d.

◆ autoAcceptChildRowsChanged

void QSortFilterProxyModel::autoAcceptChildRowsChanged ( bool  autoAcceptChildRows)
signal

This signals is emitted when the value of the autoAcceptChildRows property is changed.

Since
6.0
See also
autoAcceptChildRows

◆ bindableAutoAcceptChildRows()

QBindable< bool > QSortFilterProxyModel::bindableAutoAcceptChildRows ( )

Definition at line 3062 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableDynamicSortFilter()

QBindable< bool > QSortFilterProxyModel::bindableDynamicSortFilter ( )

Definition at line 2896 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableFilterCaseSensitivity()

QBindable< Qt::CaseSensitivity > QSortFilterProxyModel::bindableFilterCaseSensitivity ( )

Definition at line 2694 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableFilterKeyColumn()

QBindable< int > QSortFilterProxyModel::bindableFilterKeyColumn ( )

Definition at line 2637 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableFilterRegularExpression()

QBindable< QRegularExpression > QSortFilterProxyModel::bindableFilterRegularExpression ( )

Definition at line 2576 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableFilterRole()

QBindable< int > QSortFilterProxyModel::bindableFilterRole ( )

Definition at line 2975 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableIsSortLocaleAware()

QBindable< bool > QSortFilterProxyModel::bindableIsSortLocaleAware ( )

Definition at line 2774 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableRecursiveFilteringEnabled()

QBindable< bool > QSortFilterProxyModel::bindableRecursiveFilteringEnabled ( )

Definition at line 3017 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableSortCaseSensitivity()

QBindable< Qt::CaseSensitivity > QSortFilterProxyModel::bindableSortCaseSensitivity ( )

Definition at line 2734 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableSortRole()

QBindable< int > QSortFilterProxyModel::bindableSortRole ( )

Definition at line 2935 of file qsortfilterproxymodel.cpp.

References d.

◆ buddy()

QModelIndex QSortFilterProxyModel::buddy ( const QModelIndex index) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2472 of file qsortfilterproxymodel.cpp.

References d, mapFromSource(), and mapToSource().

+ Here is the call graph for this function:

◆ canFetchMore()

bool QSortFilterProxyModel::canFetchMore ( const QModelIndex parent) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2448 of file qsortfilterproxymodel.cpp.

References d, mapToSource(), and parent().

+ Here is the call graph for this function:

◆ columnCount()

int QSortFilterProxyModel::columnCount ( const QModelIndex parent = QModelIndex()) const
overridevirtual

\reimp

Implements QAbstractItemModel.

Definition at line 2173 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, QModelIndex::isValid(), it, mapToSource(), parent(), and QSet< T >::size().

+ Here is the call graph for this function:

◆ data()

QVariant QSortFilterProxyModel::data ( const QModelIndex index,
int  role = Qt::DisplayRole 
) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2205 of file qsortfilterproxymodel.cpp.

References d, QModelIndex::isValid(), and mapToSource().

Referenced by CustomDataProxy::data().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dropMimeData()

bool QSortFilterProxyModel::dropMimeData ( const QMimeData data,
Qt::DropAction  action,
int  row,
int  column,
const QModelIndex parent 
)
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2306 of file qsortfilterproxymodel.cpp.

References QAbstractProxyModel::dropMimeData(), and parent().

+ Here is the call graph for this function:

◆ dynamicSortFilter()

bool QSortFilterProxyModel::dynamicSortFilter ( ) const

Definition at line 2873 of file qsortfilterproxymodel.cpp.

References d.

◆ dynamicSortFilterChanged

void QSortFilterProxyModel::dynamicSortFilterChanged ( bool  dynamicSortFilter)
signal

◆ fetchMore()

void QSortFilterProxyModel::fetchMore ( const QModelIndex parent)
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2436 of file qsortfilterproxymodel.cpp.

References d, mapToSource(), and parent().

+ Here is the call graph for this function:

◆ filterAcceptsColumn()

bool QSortFilterProxyModel::filterAcceptsColumn ( int  source_column,
const QModelIndex source_parent 
) const
protectedvirtual

Returns true if the item in the column indicated by the given source_column and source_parent should be included in the model; otherwise returns false.

Note
The default implementation always returns true. You must reimplement this method to get the described behavior.
See also
filterAcceptsRow(), setFilterFixedString(), setFilterRegularExpression(), setFilterWildcard()

Definition at line 3238 of file qsortfilterproxymodel.cpp.

References Q_UNUSED.

◆ filterAcceptsRow()

bool QSortFilterProxyModel::filterAcceptsRow ( int  source_row,
const QModelIndex source_parent 
) const
protectedvirtual

Returns true if the item in the row indicated by the given source_row and source_parent should be included in the model; otherwise returns false.

The default implementation returns true if the value held by the relevant item matches the filter string, wildcard string or regular expression.

Note
By default, the Qt::DisplayRole is used to determine if the row should be accepted or not. This can be changed by setting the \l{QSortFilterProxyModel::filterRole}{filterRole} property.
See also
filterAcceptsColumn(), setFilterFixedString(), setFilterRegularExpression(), setFilterWildcard()

Definition at line 3204 of file qsortfilterproxymodel.cpp.

References d.

◆ filterCaseSensitivity()

Qt::CaseSensitivity QSortFilterProxyModel::filterCaseSensitivity ( ) const

Definition at line 2665 of file qsortfilterproxymodel.cpp.

References d.

◆ filterCaseSensitivityChanged

void QSortFilterProxyModel::filterCaseSensitivityChanged ( Qt::CaseSensitivity  filterCaseSensitivity)
signal

This signal is emitted when the case sensitivity of the filter changes to filterCaseSensitivity.

Since
5.15

◆ filterKeyColumn()

int QSortFilterProxyModel::filterKeyColumn ( ) const

Definition at line 2614 of file qsortfilterproxymodel.cpp.

References d.

◆ filterRegularExpression()

QRegularExpression QSortFilterProxyModel::filterRegularExpression ( ) const

Definition at line 2570 of file qsortfilterproxymodel.cpp.

References d.

◆ filterRole()

int QSortFilterProxyModel::filterRole ( ) const

Definition at line 2957 of file qsortfilterproxymodel.cpp.

References d.

◆ filterRoleChanged

void QSortFilterProxyModel::filterRoleChanged ( int  filterRole)
signal

This signal is emitted when the filter role changes to filterRole.

Since
5.15

◆ flags()

Qt::ItemFlags QSortFilterProxyModel::flags ( const QModelIndex index) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2460 of file qsortfilterproxymodel.cpp.

References d, and mapToSource().

+ Here is the call graph for this function:

◆ hasChildren()

bool QSortFilterProxyModel::hasChildren ( const QModelIndex parent = QModelIndex()) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2186 of file qsortfilterproxymodel.cpp.

References d, QModelIndex::isValid(), mapToSource(), and parent().

+ Here is the call graph for this function:

◆ headerData()

QVariant QSortFilterProxyModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2229 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, QAbstractProxyModel::headerData(), it, QSet< T >::size(), and Qt::Vertical.

+ Here is the call graph for this function:

◆ index()

QModelIndex QSortFilterProxyModel::index ( int  row,
int  column,
const QModelIndex parent = QModelIndex() 
) const
overridevirtual

\reimp

Implements QAbstractItemModel.

Definition at line 2112 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, it, mapToSource(), parent(), and QSet< T >::size().

+ Here is the call graph for this function:

◆ insertColumns()

bool QSortFilterProxyModel::insertColumns ( int  column,
int  count,
const QModelIndex parent = QModelIndex() 
)
override

\reimp

Definition at line 2335 of file qsortfilterproxymodel.cpp.

References d, QModelIndex::isValid(), mapToSource(), and parent().

+ Here is the call graph for this function:

◆ insertRows()

bool QSortFilterProxyModel::insertRows ( int  row,
int  count,
const QModelIndex parent = QModelIndex() 
)
override

\reimp

Definition at line 2315 of file qsortfilterproxymodel.cpp.

References d, QModelIndex::isValid(), mapToSource(), and parent().

+ Here is the call graph for this function:

◆ invalidate

void QSortFilterProxyModel::invalidate ( )
slot
Since
4.3

Invalidates the current sorting and filtering.

See also
invalidateFilter()

Definition at line 3075 of file qsortfilterproxymodel.cpp.

References d, emit, QAbstractItemModel::layoutAboutToBeChanged(), and QAbstractItemModel::layoutChanged().

+ Here is the call graph for this function:

◆ invalidateColumnsFilter()

void QSortFilterProxyModel::invalidateColumnsFilter ( )
protected
Since
6.0

Invalidates the current filtering for the columns.

This function should be called if you are implementing custom filtering (by filterAcceptsColumn()), and your filter parameters have changed. This differs from invalidateFilter() in that it will not invoke filterAcceptsRow(), but only filterAcceptsColumn(). You can use this instead of invalidateFilter() if you want to hide or show a column where the rows don't change.

See also
invalidate()
invalidateFilter()
invalidateRowsFilter()

Definition at line 3117 of file qsortfilterproxymodel.cpp.

References QSortFilterProxyModelPrivate::Columns, and d.

◆ invalidateFilter()

void QSortFilterProxyModel::invalidateFilter ( )
protected
Since
4.3

Invalidates the current filtering.

This function should be called if you are implementing custom filtering (e.g. filterAcceptsRow()), and your filter parameters have changed.

See also
invalidate()
invalidateColumnsFilter()
invalidateRowsFilter()

Definition at line 3095 of file qsortfilterproxymodel.cpp.

References QSortFilterProxyModelPrivate::All, and d.

◆ invalidateRowsFilter()

void QSortFilterProxyModel::invalidateRowsFilter ( )
protected
Since
6.0

Invalidates the current filtering for the rows.

This function should be called if you are implementing custom filtering (by filterAcceptsRow()), and your filter parameters have changed. This differs from invalidateFilter() in that it will not invoke filterAcceptsColumn(), but only filterAcceptsRow(). You can use this instead of invalidateFilter() if you want to hide or show a row where the columns don't change.

See also
invalidate()
invalidateFilter()
invalidateColumnsFilter()

Definition at line 3139 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

◆ isRecursiveFilteringEnabled()

bool QSortFilterProxyModel::isRecursiveFilteringEnabled ( ) const

Definition at line 2999 of file qsortfilterproxymodel.cpp.

References d.

◆ isSortLocaleAware()

bool QSortFilterProxyModel::isSortLocaleAware ( ) const

Definition at line 2756 of file qsortfilterproxymodel.cpp.

References d.

◆ lessThan()

bool QSortFilterProxyModel::lessThan ( const QModelIndex source_left,
const QModelIndex source_right 
) const
protectedvirtual

Returns true if the value of the item referred to by the given index source_left is less than the value of the item referred to by the given index source_right, otherwise returns false.

This function is used as the < operator when sorting, and handles the following QVariant types:

\list

  • QMetaType::Int
  • QMetaType::UInt
  • QMetaType::LongLong
  • QMetaType::ULongLong
  • QMetaType::Float
  • QMetaType::Double
  • QMetaType::QChar
  • QMetaType::QDate
  • QMetaType::QTime
  • QMetaType::QDateTime
  • QMetaType::QString \endlist

Any other type will be converted to a QString using QVariant::toString().

Comparison of \l{QString}s is case sensitive by default; this can be changed using the \l {QSortFilterProxyModel::sortCaseSensitivity} {sortCaseSensitivity} property.

By default, the Qt::DisplayRole associated with the \l{QModelIndex}es is used for comparisons. This can be changed by setting the \l {QSortFilterProxyModel::sortRole} {sortRole} property.

Note
The indices passed in correspond to the source model.
See also
sortRole, sortCaseSensitivity, dynamicSortFilter

Definition at line 3182 of file qsortfilterproxymodel.cpp.

References d, QAbstractItemModel::data(), QAbstractItemModelPrivate::isVariantLessThan(), and QModelIndex::model().

Referenced by QSortFilterProxyModelLessThan::operator()(), and QSortFilterProxyModelGreaterThan::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mapFromSource()

QModelIndex QSortFilterProxyModel::mapFromSource ( const QModelIndex sourceIndex) const
overridevirtual

Returns the model index in the QSortFilterProxyModel given the sourceIndex from the source model.

See also
mapToSource()

Implements QAbstractProxyModel.

Definition at line 3263 of file qsortfilterproxymodel.cpp.

References d.

Referenced by buddy(), and parent().

+ Here is the caller graph for this function:

◆ mapSelectionFromSource()

QItemSelection QSortFilterProxyModel::mapSelectionFromSource ( const QItemSelection sourceSelection) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 3280 of file qsortfilterproxymodel.cpp.

References QAbstractProxyModel::mapSelectionFromSource().

+ Here is the call graph for this function:

◆ mapSelectionToSource()

QItemSelection QSortFilterProxyModel::mapSelectionToSource ( const QItemSelection proxySelection) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 3272 of file qsortfilterproxymodel.cpp.

References QAbstractProxyModel::mapSelectionToSource().

+ Here is the call graph for this function:

◆ mapToSource()

QModelIndex QSortFilterProxyModel::mapToSource ( const QModelIndex proxyIndex) const
overridevirtual

Returns the source model index corresponding to the given proxyIndex from the sorting filter model.

See also
mapFromSource()

Implements QAbstractProxyModel.

Definition at line 3251 of file qsortfilterproxymodel.cpp.

References d.

Referenced by buddy(), canFetchMore(), columnCount(), data(), fetchMore(), flags(), hasChildren(), index(), insertColumns(), insertRows(), mimeData(), removeColumns(), removeRows(), rowCount(), setData(), and span().

+ Here is the caller graph for this function:

◆ match()

QModelIndexList QSortFilterProxyModel::match ( const QModelIndex start,
int  role,
const QVariant value,
int  hits = 1,
Qt::MatchFlags  flags = Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap) 
) const
overridevirtual

\reimp

Reimplemented from QAbstractItemModel.

Definition at line 2487 of file qsortfilterproxymodel.cpp.

References QAbstractItemModel::match().

+ Here is the call graph for this function:

◆ mimeData()

QMimeData * QSortFilterProxyModel::mimeData ( const QModelIndexList indexes) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2274 of file qsortfilterproxymodel.cpp.

References d, mapToSource(), QList< T >::reserve(), and QList< T >::size().

+ Here is the call graph for this function:

◆ mimeTypes()

QStringList QSortFilterProxyModel::mimeTypes ( ) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2287 of file qsortfilterproxymodel.cpp.

References d.

◆ parent() [1/2]

QObject * QObject::parent ( ) const
inline

Returns a pointer to the parent object.

See also
children()

Definition at line 311 of file qobject.h.

Referenced by canFetchMore(), columnCount(), dropMimeData(), fetchMore(), hasChildren(), index(), insertColumns(), insertRows(), removeColumns(), removeRows(), and rowCount().

+ Here is the caller graph for this function:

◆ parent() [2/2]

QModelIndex QSortFilterProxyModel::parent ( const QModelIndex child) const
overridevirtual

\reimp

Implements QAbstractItemModel.

Definition at line 2129 of file qsortfilterproxymodel.cpp.

References child, QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, it, mapFromSource(), and Q_ASSERT.

+ Here is the call graph for this function:

◆ recursiveFilteringEnabledChanged

void QSortFilterProxyModel::recursiveFilteringEnabledChanged ( bool  recursiveFilteringEnabled)
signal

This signal is emitted when the recursive filter setting is changed to recursiveFilteringEnabled.

Since
5.15

◆ removeColumns()

bool QSortFilterProxyModel::removeColumns ( int  column,
int  count,
const QModelIndex parent = QModelIndex() 
)
override

\reimp

Definition at line 2397 of file qsortfilterproxymodel.cpp.

References QList< T >::append(), QList< T >::at(), QAbstractItemModel::count, d, i, QModelIndex::isValid(), mapToSource(), ok, parent(), pos, QList< T >::reserve(), and QList< T >::size().

+ Here is the call graph for this function:

◆ removeRows()

bool QSortFilterProxyModel::removeRows ( int  row,
int  count,
const QModelIndex parent = QModelIndex() 
)
override

\reimp

Definition at line 2355 of file qsortfilterproxymodel.cpp.

References QList< T >::append(), QList< T >::at(), QList< T >::begin(), QAbstractItemModel::count, d, QList< T >::end(), i, QModelIndex::isValid(), mapToSource(), ok, parent(), pos, QList< T >::reserve(), and QList< T >::size().

+ Here is the call graph for this function:

◆ rowCount()

int QSortFilterProxyModel::rowCount ( const QModelIndex parent = QModelIndex()) const
overridevirtual

\reimp

Implements QAbstractItemModel.

Definition at line 2160 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, QModelIndex::isValid(), it, mapToSource(), parent(), and QSet< T >::size().

+ Here is the call graph for this function:

◆ setAutoAcceptChildRows()

void QSortFilterProxyModel::setAutoAcceptChildRows ( bool  accept)

Definition at line 3049 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

◆ setData()

bool QSortFilterProxyModel::setData ( const QModelIndex index,
const QVariant value,
int  role = Qt::EditRole 
)
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2217 of file qsortfilterproxymodel.cpp.

References d, QModelIndex::isValid(), and mapToSource().

+ Here is the call graph for this function:

◆ setDynamicSortFilter()

void QSortFilterProxyModel::setDynamicSortFilter ( bool  enable)

Definition at line 2879 of file qsortfilterproxymodel.cpp.

References d.

◆ setFilterCaseSensitivity()

void QSortFilterProxyModel::setFilterCaseSensitivity ( Qt::CaseSensitivity  cs)

Definition at line 2671 of file qsortfilterproxymodel.cpp.

References Qt::CaseInsensitive, QRegularExpression::CaseInsensitiveOption, d, QSortFilterProxyModelPrivate::Rows, and QRegularExpression::setPatternOptions().

+ Here is the call graph for this function:

◆ setFilterFixedString

void QSortFilterProxyModel::setFilterFixedString ( const QString pattern)
slot

Sets the fixed string used to filter the contents of the source model to the given pattern.

This method will reset the regular expression options but respect case sensitivity.

Note
Calling this method updates the regular expression, thereby breaking the binding for \l filterRegularExpression. However it has no effect on the \l filterCaseSensitivity bindings.
See also
setFilterCaseSensitivity(), setFilterRegularExpression(), setFilterWildcard(), filterRegularExpression()

Definition at line 2845 of file qsortfilterproxymodel.cpp.

References d, QRegularExpression::escape(), and QSortFilterProxyModelPrivate::Rows.

+ Here is the call graph for this function:

◆ setFilterKeyColumn()

void QSortFilterProxyModel::setFilterKeyColumn ( int  column)

Definition at line 2620 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

Referenced by Widget::Widget().

+ Here is the caller graph for this function:

◆ setFilterRegularExpression [1/2]

void QSortFilterProxyModel::setFilterRegularExpression ( const QRegularExpression regularExpression)
slot

Definition at line 2582 of file qsortfilterproxymodel.cpp.

References Qt::CaseInsensitive, QRegularExpression::CaseInsensitiveOption, Qt::CaseSensitive, d, filterCaseSensitivity, QRegularExpression::patternOptions(), and QSortFilterProxyModelPrivate::Rows.

+ Here is the call graph for this function:

◆ setFilterRegularExpression [2/2]

void QSortFilterProxyModel::setFilterRegularExpression ( const QString pattern)
slot
Since
5.12

Sets the regular expression used to filter the contents of the source model to pattern.

This method should be preferred for new code as it will use QRegularExpression internally.

This method will reset the regular expression options but respect case sensitivity.

Note
Calling this method updates the regular expression, thereby breaking the binding for \l filterRegularExpression. However it has no effect on the \l filterCaseSensitivity bindings.
See also
setFilterCaseSensitivity(), setFilterWildcard(), setFilterFixedString(), filterRegularExpression()

Definition at line 2798 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

Referenced by Widget::Widget().

+ Here is the caller graph for this function:

◆ setFilterRole()

void QSortFilterProxyModel::setFilterRole ( int  role)

Definition at line 2963 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

◆ setFilterWildcard

void QSortFilterProxyModel::setFilterWildcard ( const QString pattern)
slot

Sets the wildcard expression used to filter the contents of the source model to the given pattern.

This method will reset the regular expression options but respect case sensitivity.

Note
Calling this method updates the regular expression, thereby breaking the binding for \l filterRegularExpression. However it has no effect on the \l filterCaseSensitivity bindings.
See also
setFilterCaseSensitivity(), setFilterRegularExpression(), setFilterFixedString(), filterRegularExpression()

Definition at line 2821 of file qsortfilterproxymodel.cpp.

References d, QSortFilterProxyModelPrivate::Rows, QRegularExpression::UnanchoredWildcardConversion, and QRegularExpression::wildcardToRegularExpression().

Referenced by main().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setHeaderData()

bool QSortFilterProxyModel::setHeaderData ( int  section,
Qt::Orientation  orientation,
const QVariant value,
int  role = Qt::EditRole 
)
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2251 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, it, QAbstractProxyModel::setHeaderData(), QSet< T >::size(), and Qt::Vertical.

+ Here is the call graph for this function:

◆ setRecursiveFilteringEnabled()

void QSortFilterProxyModel::setRecursiveFilteringEnabled ( bool  recursive)

Definition at line 3005 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

◆ setSortCaseSensitivity()

void QSortFilterProxyModel::setSortCaseSensitivity ( Qt::CaseSensitivity  cs)

Definition at line 2722 of file qsortfilterproxymodel.cpp.

References d.

◆ setSortLocaleAware()

void QSortFilterProxyModel::setSortLocaleAware ( bool  on)

Definition at line 2762 of file qsortfilterproxymodel.cpp.

References d.

◆ setSortRole()

void QSortFilterProxyModel::setSortRole ( int  role)

Definition at line 2924 of file qsortfilterproxymodel.cpp.

References d.

◆ setSourceModel()

void QSortFilterProxyModel::setSourceModel ( QAbstractItemModel sourceModel)
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2029 of file qsortfilterproxymodel.cpp.

References QSortFilterProxyModelPrivate::_q_sourceAboutToBeReset(), QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeInserted(), QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeMoved(), QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeRemoved(), QSortFilterProxyModelPrivate::_q_sourceColumnsInserted(), QSortFilterProxyModelPrivate::_q_sourceColumnsMoved(), QSortFilterProxyModelPrivate::_q_sourceColumnsRemoved(), QSortFilterProxyModelPrivate::_q_sourceDataChanged(), QSortFilterProxyModelPrivate::_q_sourceHeaderDataChanged(), QSortFilterProxyModelPrivate::_q_sourceLayoutAboutToBeChanged(), QSortFilterProxyModelPrivate::_q_sourceLayoutChanged(), QSortFilterProxyModelPrivate::_q_sourceReset(), QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted(), QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeMoved(), QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved(), QSortFilterProxyModelPrivate::_q_sourceRowsInserted(), QSortFilterProxyModelPrivate::_q_sourceRowsMoved(), QSortFilterProxyModelPrivate::_q_sourceRowsRemoved(), QAbstractItemModel::beginResetModel(), QAbstractItemModel::columnsAboutToBeInserted(), QAbstractItemModel::columnsAboutToBeMoved(), QAbstractItemModel::columnsAboutToBeRemoved(), QAbstractItemModel::columnsInserted(), QAbstractItemModel::columnsMoved(), QAbstractItemModel::columnsRemoved(), QObjectPrivate::connect(), connection, d, QAbstractItemModel::dataChanged(), disconnect(), QAbstractItemModel::endResetModel(), QAbstractItemModel::headerDataChanged(), QAbstractItemModel::layoutAboutToBeChanged(), QAbstractItemModel::layoutChanged(), QAbstractItemModel::modelAboutToBeReset(), QAbstractItemModel::modelReset(), QAbstractItemModel::rowsAboutToBeInserted(), QAbstractItemModel::rowsAboutToBeMoved(), QAbstractItemModel::rowsAboutToBeRemoved(), QAbstractItemModel::rowsInserted(), QAbstractItemModel::rowsMoved(), QAbstractItemModel::rowsRemoved(), QAbstractProxyModel::setSourceModel(), and QAbstractProxyModel::sourceModel.

Referenced by Widget::Widget(), and main().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sibling()

QModelIndex QSortFilterProxyModel::sibling ( int  row,
int  column,
const QModelIndex idx 
) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2144 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, it, and QSet< T >::size().

+ Here is the call graph for this function:

◆ sort()

void QSortFilterProxyModel::sort ( int  column,
Qt::SortOrder  order = Qt::AscendingOrder 
)
override

\reimp

Definition at line 2509 of file qsortfilterproxymodel.cpp.

References d, and QAbstractItemModel::order.

Referenced by Widget::Widget().

+ Here is the caller graph for this function:

◆ sortCaseSensitivity()

Qt::CaseSensitivity QSortFilterProxyModel::sortCaseSensitivity ( ) const

Definition at line 2716 of file qsortfilterproxymodel.cpp.

References d.

◆ sortCaseSensitivityChanged

void QSortFilterProxyModel::sortCaseSensitivityChanged ( Qt::CaseSensitivity  sortCaseSensitivity)
signal

This signal is emitted when the case sensitivity for sorting changes to sortCaseSensitivity.

Since
5.15

◆ sortColumn()

int QSortFilterProxyModel::sortColumn ( ) const
Since
4.5
Returns
the column currently used for sorting

This returns the most recently used sort column. The default value is -1, which means that this proxy model does not sort.

See also
sort()

Definition at line 2529 of file qsortfilterproxymodel.cpp.

References d.

◆ sortLocaleAwareChanged

void QSortFilterProxyModel::sortLocaleAwareChanged ( bool  sortLocaleAware)
signal

This signal is emitted when the locale aware setting changes to sortLocaleAware.

Since
5.15

◆ sortOrder()

Qt::SortOrder QSortFilterProxyModel::sortOrder ( ) const
Since
4.5
Returns
the order currently used for sorting

This returns the most recently used sort order. The default value is Qt::AscendingOrder.

See also
sort()

Definition at line 2544 of file qsortfilterproxymodel.cpp.

References d.

◆ sortRole()

int QSortFilterProxyModel::sortRole ( ) const

Definition at line 2918 of file qsortfilterproxymodel.cpp.

References d.

◆ sortRoleChanged

void QSortFilterProxyModel::sortRoleChanged ( int  sortRole)
signal

This signal is emitted when the sort role changes to sortRole.

Since
5.15

◆ span()

QSize QSortFilterProxyModel::span ( const QModelIndex index) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2497 of file qsortfilterproxymodel.cpp.

References d, QModelIndex::isValid(), and mapToSource().

+ Here is the call graph for this function:

◆ supportedDropActions()

Qt::DropActions QSortFilterProxyModel::supportedDropActions ( ) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2296 of file qsortfilterproxymodel.cpp.

References d.

Friends And Related Symbol Documentation

◆ QSortFilterProxyModelGreaterThan

friend class QSortFilterProxyModelGreaterThan
friend

Definition at line 23 of file qsortfilterproxymodel.h.

◆ QSortFilterProxyModelLessThan

friend class QSortFilterProxyModelLessThan
friend

Definition at line 22 of file qsortfilterproxymodel.h.

Property Documentation

◆ autoAcceptChildRows

QSortFilterProxyModel::autoAcceptChildRows
readwrite

if true the proxy model will not filter out children of accepted rows, even if they themselves would be filtered out otherwise.

Since
6.0

The default value is false.

See also
recursiveFilteringEnabled
filterAcceptsRow()

Definition at line 23 of file qsortfilterproxymodel.h.

◆ dynamicSortFilter

QSortFilterProxyModel::dynamicSortFilter
readwrite

whether the proxy model is dynamically sorted and filtered whenever the contents of the source model change

Since
4.2

Note that you should not update the source model through the proxy model when dynamicSortFilter is true. For instance, if you set the proxy model on a QComboBox, then using functions that update the model, e.g., \l{QComboBox::}{addItem()}, will not work as expected. An alternative is to set dynamicSortFilter to false and call \l{QSortFilterProxyModel::}{sort()} after adding items to the QComboBox.

The default value is true.

See also
sortColumn()

Definition at line 23 of file qsortfilterproxymodel.h.

◆ filterCaseSensitivity

QSortFilterProxyModel::filterCaseSensitivity
readwrite

the case sensitivity of the QRegularExpression pattern used to filter the contents of the source model.

By default, the filter is case sensitive.

Note
Setting this property propagates the new case sensitivity to the \l filterRegularExpression property, and so breaks its binding. Likewise explicitly setting \l filterRegularExpression changes the current case sensitivity, thereby breaking its binding.
See also
filterRegularExpression, sortCaseSensitivity

Definition at line 23 of file qsortfilterproxymodel.h.

Referenced by setFilterRegularExpression().

◆ filterKeyColumn

QSortFilterProxyModel::filterKeyColumn
readwrite

the column where the key used to filter the contents of the source model is read from.

The default value is 0. If the value is -1, the keys will be read from all columns.

Definition at line 23 of file qsortfilterproxymodel.h.

◆ filterRegularExpression

QSortFilterProxyModel::filterRegularExpression
readwrite

the QRegularExpression used to filter the contents of the source model

Since
5.12

Setting this property through the QRegularExpression overload overwrites the current \l{QSortFilterProxyModel::filterCaseSensitivity}{filterCaseSensitivity}. By default, the QRegularExpression is an empty string matching all contents.

If no QRegularExpression or an empty string is set, everything in the source model will be accepted.

Note
Setting this property propagates the case sensitivity of the new regular expression to the \l filterCaseSensitivity property, and so breaks its binding. Likewise explicitly setting \l filterCaseSensitivity changes the case sensitivity of the current regular expression, thereby breaking its binding.
See also
filterCaseSensitivity, setFilterWildcard(), setFilterFixedString()

Definition at line 23 of file qsortfilterproxymodel.h.

◆ filterRole

QSortFilterProxyModel::filterRole
readwrite

the item role that is used to query the source model's data when filtering items.

Since
4.2

The default value is Qt::DisplayRole.

See also
filterAcceptsRow()

Definition at line 23 of file qsortfilterproxymodel.h.

◆ isSortLocaleAware

QSortFilterProxyModel::isSortLocaleAware
readwrite

the local aware setting used for comparing strings when sorting

Since
4.3

By default, sorting is not local aware.

See also
sortCaseSensitivity, lessThan()

Definition at line 23 of file qsortfilterproxymodel.h.

◆ recursiveFilteringEnabled

QSortFilterProxyModel::recursiveFilteringEnabled
readwrite

whether the filter to be applied recursively on children, and for any matching child, its parents will be visible as well.

Since
5.10

The default value is false.

See also
autoAcceptChildRows
filterAcceptsRow()

Definition at line 23 of file qsortfilterproxymodel.h.

◆ sortCaseSensitivity

QSortFilterProxyModel::sortCaseSensitivity
readwrite

the case sensitivity setting used for comparing strings when sorting

Since
4.2

By default, sorting is case sensitive.

See also
filterCaseSensitivity, lessThan()

Definition at line 23 of file qsortfilterproxymodel.h.

◆ sortRole

QSortFilterProxyModel::sortRole
readwrite

the item role that is used to query the source model's data when sorting items.

Since
4.2

The default value is Qt::DisplayRole.

See also
lessThan()

Definition at line 23 of file qsortfilterproxymodel.h.


The documentation for this class was generated from the following files: