diff options
author | Andre Somers <andre.somers@kdab.com> | 2018-01-03 10:24:06 +0100 |
---|---|---|
committer | Andre Somers <andre.somers@kdab.com> | 2018-01-12 15:12:53 +0000 |
commit | abbd26f553f9c96649a23b71b1580a23933ba5ac (patch) | |
tree | a0e067305c7263d54dc778400e0c864d177a328a /src/corelib/itemmodels/qabstractitemmodel.h | |
parent | 7157d04d6e2ee024519b3bdea1203a26e2cd41b8 (diff) |
Add QModelIndex::siblingAtColumn and ::siblingAtRow
Data in item models is most often organized in rows, where each column
contains an attribute of the item represented by the row. Often when
sibling is used, it is to request another piece of data from the same
row. Having a specialized version makes this easier and less awkward
to do, simplifying
auto sibling = index.sibling(index.row(), columnOfInterest);
to
auto sibling = index.siblingAtColumn(columnOfInterest);
For symmetry reasons, siblingAtRow(rowOfInterest) was also added.
Change-Id: Ib203b2cdb16154cbb2680d16fb5c6a7538f33d07
Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src/corelib/itemmodels/qabstractitemmodel.h')
-rw-r--r-- | src/corelib/itemmodels/qabstractitemmodel.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/corelib/itemmodels/qabstractitemmodel.h b/src/corelib/itemmodels/qabstractitemmodel.h index 621f284c34..fca21b9bbc 100644 --- a/src/corelib/itemmodels/qabstractitemmodel.h +++ b/src/corelib/itemmodels/qabstractitemmodel.h @@ -63,6 +63,8 @@ public: inline void *internalPointer() const Q_DECL_NOTHROW { return reinterpret_cast<void*>(i); } inline QModelIndex parent() const; inline QModelIndex sibling(int row, int column) const; + inline QModelIndex siblingAtColumn(int column) const; + inline QModelIndex siblingAtRow(int row) const; #if QT_DEPRECATED_SINCE(5, 8) QT_DEPRECATED_X("Use QAbstractItemModel::index") inline QModelIndex child(int row, int column) const; #endif @@ -436,6 +438,12 @@ inline QModelIndex QModelIndex::parent() const inline QModelIndex QModelIndex::sibling(int arow, int acolumn) const { return m ? (r == arow && c == acolumn) ? *this : m->sibling(arow, acolumn, *this) : QModelIndex(); } +inline QModelIndex QModelIndex::siblingAtColumn(int acolumn) const +{ return m ? (c == acolumn) ? *this : m->sibling(r, acolumn, *this) : QModelIndex(); } + +inline QModelIndex QModelIndex::siblingAtRow(int arow) const +{ return m ? (r == arow) ? *this : m->sibling(arow, c, *this) : QModelIndex(); } + #if QT_DEPRECATED_SINCE(5, 8) inline QModelIndex QModelIndex::child(int arow, int acolumn) const { return m ? m->index(arow, acolumn, *this) : QModelIndex(); } |