Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QSortFilterProxyModelHelper Class Referenceabstract

#include <qsortfilterproxymodelhelper_p.h>

Inheritance diagram for QSortFilterProxyModelHelper:
Collaboration diagram for QSortFilterProxyModelHelper:

Classes

struct  Mapping

Public Types

enum  Direction { Rows = 0x01 , Columns = 0x02 , Both = Rows | Columns }
using IndexMap = QHash<QtPrivate::QModelIndexWrapper, Mapping *>

Public Member Functions

 QSortFilterProxyModelHelper ()
virtual ~QSortFilterProxyModelHelper ()
IndexMap::const_iterator index_to_iterator (const QModelIndex &proxy_index) const
IndexMap::const_iterator create_mapping (const QModelIndex &source_parent) const
IndexMap::const_iterator create_mapping_recursive (const QModelIndex &source_parent) const
bool can_create_mapping (const QModelIndex &source_parent) const
void remove_from_mapping (const QModelIndex &source_parent)
void clearSourceIndexMapping ()
QModelIndex source_to_proxy (const QModelIndex &source_index) const
void build_source_to_proxy_mapping (QList< int > &proxy_to_source, QList< int > &source_to_proxy, int start=0) const
QModelIndex proxy_to_source (const QModelIndex &proxy_index) const
void updateChildrenMapping (const QModelIndex &source_parent, Mapping *parent_mapping, Direction direction, int start, int end, int delta_item_count, bool remove)
void proxy_item_range (const QList< int > &source_to_proxy, const QList< int > &source_items, int &proxy_low, int &proxy_high) const
QModelIndexPairList store_persistent_indexes () const
void update_persistent_indexes (const QModelIndexPairList &source_indexes)
virtual void filter_changed (Direction dir=Direction::Both, const QModelIndex &source_parent=QModelIndex())
virtual QSet< int > handle_filter_changed (QList< int > &source_to_proxy, QList< int > &proxy_to_source, const QModelIndex &source_parent, Direction direction)
virtual void insert_source_items (QList< int > &source_to_proxy, QList< int > &proxy_to_source, const QList< int > &source_items, const QModelIndex &source_parent, Direction direction, bool emit_signal=true)
virtual void source_items_inserted (const QModelIndex &source_parent, int start, int end, Direction direction)
virtual void source_items_about_to_be_removed (const QModelIndex &source_parent, int start, int end, Direction direction)
virtual void source_items_removed (const QModelIndex &source_parent, int start, int end, Direction direction)
virtual void remove_source_items (QList< int > &source_to_proxy, QList< int > &proxy_to_source, const QList< int > &source_items, const QModelIndex &source_parent, Direction direction, bool emit_signal=true)
virtual void remove_proxy_interval (QList< int > &source_to_proxy, QList< int > &proxy_to_source, int proxy_start, int proxy_end, const QModelIndex &proxy_parent, Direction direction, bool emit_signal=true)
virtual QList< std::pair< int, int > > proxy_intervals_for_source_items (const QList< int > &source_to_proxy, const QList< int > &source_items) const
virtual QList< std::pair< int, QList< int > > > proxy_intervals_for_source_items_to_add (const QList< int > &, const QList< int > &, const QModelIndex &, Direction) const
virtual void sort ()

Static Public Member Functions

static void setProperties (QVariant *target, const QQmlSortFilterProxyModel *proxyModel, const QModelIndex &sourceIndex)
static QSet< int > qListToSet (const QList< int > &vector)

Public Attributes

IndexMap source_index_mapping

Protected Member Functions

virtual const QAbstractProxyModelproxyModel () const =0
virtual void beginInsertRows (const QModelIndex &, int, int)
virtual void beginInsertColumns (const QModelIndex &, int, int)
virtual void endInsertRows ()
virtual void endInsertColumns ()
virtual void beginRemoveRows (const QModelIndex &, int, int)
virtual void beginRemoveColumns (const QModelIndex &, int, int)
virtual void endRemoveRows ()
virtual void endRemoveColumns ()
virtual void beginResetModel ()
virtual void endResetModel ()
virtual QModelIndex createIndex (int, int, IndexMap::const_iterator) const
virtual void changePersistentIndexList (const QModelIndexList &, const QModelIndexList &)
virtual bool filterAcceptsRowInternal (int, const QModelIndex &) const
virtual bool filterAcceptsRow (int, const QModelIndex &) const
virtual bool filterAcceptsColumnInternal (int, const QModelIndex &) const
virtual bool filterAcceptsColumn (int, const QModelIndex &) const
virtual void sort_source_rows (QList< int > &, const QModelIndex &) const
virtual bool lessThan (const QModelIndex &, const QModelIndex &) const

Friends

class QSortFilterProxyModelGreaterThan
class QSortFilterProxyModelLessThan

Detailed Description

Definition at line 31 of file qsortfilterproxymodelhelper_p.h.

Member Typedef Documentation

◆ IndexMap

Member Enumeration Documentation

◆ Direction

Enumerator
Rows 
Columns 
Both 

Definition at line 44 of file qsortfilterproxymodelhelper_p.h.

Constructor & Destructor Documentation

◆ QSortFilterProxyModelHelper()

QSortFilterProxyModelHelper::QSortFilterProxyModelHelper ( )

Definition at line 12 of file qsortfilterproxymodelhelper.cpp.

◆ ~QSortFilterProxyModelHelper()

QSortFilterProxyModelHelper::~QSortFilterProxyModelHelper ( )
virtual

Definition at line 17 of file qsortfilterproxymodelhelper.cpp.

Member Function Documentation

◆ beginInsertColumns()

virtual void QSortFilterProxyModelHelper::beginInsertColumns ( const QModelIndex & ,
int ,
int  )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 128 of file qsortfilterproxymodelhelper_p.h.

◆ beginInsertRows()

virtual void QSortFilterProxyModelHelper::beginInsertRows ( const QModelIndex & ,
int ,
int  )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 127 of file qsortfilterproxymodelhelper_p.h.

◆ beginRemoveColumns()

virtual void QSortFilterProxyModelHelper::beginRemoveColumns ( const QModelIndex & ,
int ,
int  )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 132 of file qsortfilterproxymodelhelper_p.h.

◆ beginRemoveRows()

virtual void QSortFilterProxyModelHelper::beginRemoveRows ( const QModelIndex & ,
int ,
int  )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 131 of file qsortfilterproxymodelhelper_p.h.

◆ beginResetModel()

virtual void QSortFilterProxyModelHelper::beginResetModel ( )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 135 of file qsortfilterproxymodelhelper_p.h.

◆ build_source_to_proxy_mapping()

void QSortFilterProxyModelHelper::build_source_to_proxy_mapping ( QList< int > & proxy_to_source,
QList< int > & source_to_proxy,
int start = 0 ) const

Definition at line 234 of file qsortfilterproxymodelhelper.cpp.

◆ can_create_mapping()

bool QSortFilterProxyModelHelper::can_create_mapping ( const QModelIndex & source_parent) const

Definition at line 244 of file qsortfilterproxymodelhelper.cpp.

◆ changePersistentIndexList()

virtual void QSortFilterProxyModelHelper::changePersistentIndexList ( const QModelIndexList & ,
const QModelIndexList &  )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 139 of file qsortfilterproxymodelhelper_p.h.

◆ clearSourceIndexMapping()

void QSortFilterProxyModelHelper::clearSourceIndexMapping ( )

Definition at line 64 of file qsortfilterproxymodelhelper.cpp.

◆ create_mapping()

IndexMap::const_iterator QSortFilterProxyModelHelper::create_mapping ( const QModelIndex & source_parent) const

Definition at line 70 of file qsortfilterproxymodelhelper.cpp.

◆ create_mapping_recursive()

QSortFilterProxyModelHelper::IndexMap::const_iterator QSortFilterProxyModelHelper::create_mapping_recursive ( const QModelIndex & source_parent) const

Definition at line 117 of file qsortfilterproxymodelhelper.cpp.

◆ createIndex()

virtual QModelIndex QSortFilterProxyModelHelper::createIndex ( int ,
int ,
IndexMap::const_iterator  ) const
inlineprotectedvirtual

Definition at line 138 of file qsortfilterproxymodelhelper_p.h.

◆ endInsertColumns()

virtual void QSortFilterProxyModelHelper::endInsertColumns ( )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 130 of file qsortfilterproxymodelhelper_p.h.

◆ endInsertRows()

virtual void QSortFilterProxyModelHelper::endInsertRows ( )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 129 of file qsortfilterproxymodelhelper_p.h.

◆ endRemoveColumns()

virtual void QSortFilterProxyModelHelper::endRemoveColumns ( )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 134 of file qsortfilterproxymodelhelper_p.h.

◆ endRemoveRows()

virtual void QSortFilterProxyModelHelper::endRemoveRows ( )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 133 of file qsortfilterproxymodelhelper_p.h.

◆ endResetModel()

virtual void QSortFilterProxyModelHelper::endResetModel ( )
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 136 of file qsortfilterproxymodelhelper_p.h.

◆ filter_changed()

void QSortFilterProxyModelHelper::filter_changed ( Direction dir = Direction::Both,
const QModelIndex & source_parent = QModelIndex() )
virtual

Definition at line 701 of file qsortfilterproxymodelhelper.cpp.

◆ filterAcceptsColumn()

virtual bool QSortFilterProxyModelHelper::filterAcceptsColumn ( int ,
const QModelIndex &  ) const
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 143 of file qsortfilterproxymodelhelper_p.h.

◆ filterAcceptsColumnInternal()

virtual bool QSortFilterProxyModelHelper::filterAcceptsColumnInternal ( int ,
const QModelIndex &  ) const
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 142 of file qsortfilterproxymodelhelper_p.h.

◆ filterAcceptsRow()

virtual bool QSortFilterProxyModelHelper::filterAcceptsRow ( int ,
const QModelIndex &  ) const
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 141 of file qsortfilterproxymodelhelper_p.h.

◆ filterAcceptsRowInternal()

virtual bool QSortFilterProxyModelHelper::filterAcceptsRowInternal ( int ,
const QModelIndex &  ) const
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 140 of file qsortfilterproxymodelhelper_p.h.

◆ handle_filter_changed()

QSet< int > QSortFilterProxyModelHelper::handle_filter_changed ( QList< int > & source_to_proxy,
QList< int > & proxy_to_source,
const QModelIndex & source_parent,
Direction direction )
virtual

Definition at line 660 of file qsortfilterproxymodelhelper.cpp.

◆ index_to_iterator()

IndexMap::const_iterator QSortFilterProxyModelHelper::index_to_iterator ( const QModelIndex & proxy_index) const
inline

Definition at line 64 of file qsortfilterproxymodelhelper_p.h.

◆ insert_source_items()

void QSortFilterProxyModelHelper::insert_source_items ( QList< int > & source_to_proxy,
QList< int > & proxy_to_source,
const QList< int > & source_items,
const QModelIndex & source_parent,
Direction direction,
bool emit_signal = true )
virtual

Given source-to-proxy mapping source_to_proxy and proxy-to-source mapping proxy_to_source, inserts the given source_items into this proxy model. The source items are inserted in intervals (based on some sorted order), so that the proper rows/columnsInserted(start, end) signals will be generated.

Definition at line 590 of file qsortfilterproxymodelhelper.cpp.

◆ lessThan()

virtual bool QSortFilterProxyModelHelper::lessThan ( const QModelIndex & ,
const QModelIndex &  ) const
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 145 of file qsortfilterproxymodelhelper_p.h.

◆ proxy_intervals_for_source_items()

QList< std::pair< int, int > > QSortFilterProxyModelHelper::proxy_intervals_for_source_items ( const QList< int > & source_to_proxy,
const QList< int > & source_items ) const
virtual

Given source-to-proxy mapping source_to_proxy and the set of source items source_items (which are part of that mapping), determines the corresponding proxy item intervals that should be removed from the proxy model.

The result is a vector of pairs, where each pair represents a (start, end) tuple, sorted in ascending order.

Definition at line 329 of file qsortfilterproxymodelhelper.cpp.

◆ proxy_intervals_for_source_items_to_add()

virtual QList< std::pair< int, QList< int > > > QSortFilterProxyModelHelper::proxy_intervals_for_source_items_to_add ( const QList< int > & ,
const QList< int > & ,
const QModelIndex & ,
Direction  ) const
inlinevirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 119 of file qsortfilterproxymodelhelper_p.h.

◆ proxy_item_range()

void QSortFilterProxyModelHelper::proxy_item_range ( const QList< int > & source_to_proxy,
const QList< int > & source_items,
int & proxy_low,
int & proxy_high ) const

Definition at line 272 of file qsortfilterproxymodelhelper.cpp.

◆ proxy_to_source()

QModelIndex QSortFilterProxyModelHelper::proxy_to_source ( const QModelIndex & proxy_index) const

Definition at line 215 of file qsortfilterproxymodelhelper.cpp.

◆ proxyModel()

virtual const QAbstractProxyModel * QSortFilterProxyModelHelper::proxyModel ( ) const
protectedpure virtual

◆ qListToSet()

QSet< int > QSortFilterProxyModelHelper::qListToSet ( const QList< int > & vector)
inlinestatic

Definition at line 62 of file qsortfilterproxymodelhelper_p.h.

◆ remove_from_mapping()

void QSortFilterProxyModelHelper::remove_from_mapping ( const QModelIndex & source_parent)

Definition at line 263 of file qsortfilterproxymodelhelper.cpp.

◆ remove_proxy_interval()

void QSortFilterProxyModelHelper::remove_proxy_interval ( QList< int > & source_to_proxy,
QList< int > & proxy_to_source,
int proxy_start,
int proxy_end,
const QModelIndex & proxy_parent,
Direction direction,
bool emit_signal = true )
virtual

Given source-to-proxy mapping source_to_proxy and proxy-to-source mapping proxy_to_source, removes items from proxy_start to proxy_end (inclusive) from this proxy model.

Definition at line 372 of file qsortfilterproxymodelhelper.cpp.

◆ remove_source_items()

void QSortFilterProxyModelHelper::remove_source_items ( QList< int > & source_to_proxy,
QList< int > & proxy_to_source,
const QList< int > & source_items,
const QModelIndex & source_parent,
Direction direction,
bool emit_signal = true )
virtual

Given source-to-proxy mapping src_to_proxy and proxy-to-source mapping proxy_to_source, removes source_items from this proxy model. The corresponding proxy items are removed in intervals, so that the proper rows/columnsRemoved(start, end) signals will be generated.

Definition at line 638 of file qsortfilterproxymodelhelper.cpp.

◆ setProperties()

void QSortFilterProxyModelHelper::setProperties ( QVariant * target,
const QQmlSortFilterProxyModel * proxyModel,
const QModelIndex & sourceIndex )
static

Definition at line 37 of file qsortfilterproxymodelhelper.cpp.

◆ sort()

void QSortFilterProxyModelHelper::sort ( )
virtual

Sorts the existing mappings.

Definition at line 744 of file qsortfilterproxymodelhelper.cpp.

◆ sort_source_rows()

virtual void QSortFilterProxyModelHelper::sort_source_rows ( QList< int > & ,
const QModelIndex &  ) const
inlineprotectedvirtual

Reimplemented in QQmlSortFilterProxyModelPrivate.

Definition at line 144 of file qsortfilterproxymodelhelper_p.h.

◆ source_items_about_to_be_removed()

void QSortFilterProxyModelHelper::source_items_about_to_be_removed ( const QModelIndex & source_parent,
int start,
int end,
Direction direction )
virtual

Handles source model items removal (columnsAboutToBeRemoved(), rowsAboutToBeRemoved()).

Definition at line 504 of file qsortfilterproxymodelhelper.cpp.

◆ source_items_inserted()

void QSortFilterProxyModelHelper::source_items_inserted ( const QModelIndex & source_parent,
int start,
int end,
Direction direction )
virtual

Handles source model items insertion (columnsInserted(), rowsInserted()). Determines 1) which of the inserted items to also insert into proxy model (filtering), 2) where to insert the items into the proxy model (sorting), then inserts those items. The items are inserted into the proxy model in intervals (based on sorted order), so that the proper rows/columnsInserted(start, end) signals will be generated.

Definition at line 407 of file qsortfilterproxymodelhelper.cpp.

◆ source_items_removed()

void QSortFilterProxyModelHelper::source_items_removed ( const QModelIndex & source_parent,
int start,
int end,
Direction direction )
virtual

Handles source model items removal (columnsRemoved(), rowsRemoved()).

Definition at line 537 of file qsortfilterproxymodelhelper.cpp.

◆ source_to_proxy()

QModelIndex QSortFilterProxyModelHelper::source_to_proxy ( const QModelIndex & source_index) const

Definition at line 194 of file qsortfilterproxymodelhelper.cpp.

◆ store_persistent_indexes()

QModelIndexPairList QSortFilterProxyModelHelper::store_persistent_indexes ( ) const

Definition at line 288 of file qsortfilterproxymodelhelper.cpp.

◆ update_persistent_indexes()

void QSortFilterProxyModelHelper::update_persistent_indexes ( const QModelIndexPairList & source_indexes)

Definition at line 301 of file qsortfilterproxymodelhelper.cpp.

◆ updateChildrenMapping()

void QSortFilterProxyModelHelper::updateChildrenMapping ( const QModelIndex & source_parent,
Mapping * parent_mapping,
Direction direction,
int start,
int end,
int delta_item_count,
bool remove )

updates the mapping of the children when inserting or removing items

Definition at line 145 of file qsortfilterproxymodelhelper.cpp.

◆ QSortFilterProxyModelGreaterThan

friend class QSortFilterProxyModelGreaterThan
friend

Definition at line 33 of file qsortfilterproxymodelhelper_p.h.

◆ QSortFilterProxyModelLessThan

friend class QSortFilterProxyModelLessThan
friend

Definition at line 34 of file qsortfilterproxymodelhelper_p.h.

Member Data Documentation

◆ source_index_mapping

IndexMap QSortFilterProxyModelHelper::source_index_mapping
mutable

Definition at line 60 of file qsortfilterproxymodelhelper_p.h.


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