diff options
Diffstat (limited to 'src/corelib/itemmodels/qsortfilterproxymodel.cpp')
-rw-r--r-- | src/corelib/itemmodels/qsortfilterproxymodel.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp b/src/corelib/itemmodels/qsortfilterproxymodel.cpp index 8551db0c28..80961e8eb3 100644 --- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp +++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp @@ -1871,6 +1871,22 @@ QModelIndex QSortFilterProxyModel::parent(const QModelIndex &child) const /*! \reimp */ +QModelIndex QSortFilterProxyModel::sibling(int row, int column, const QModelIndex &idx) const +{ + Q_D(const QSortFilterProxyModel); + if (!d->indexValid(idx)) + return QModelIndex(); + + const IndexMap::const_iterator it = d->index_to_iterator(idx); + if (it.value()->source_rows.count() <= row || it.value()->source_columns.count() <= column) + return QModelIndex(); + + return d->create_index(row, column, it); +} + +/*! + \reimp +*/ int QSortFilterProxyModel::rowCount(const QModelIndex &parent) const { Q_D(const QSortFilterProxyModel); |