Deprecate Q(Persistent)ModelIndex::child
Due to how invalid model indices are handled in Qt, child() is unsuitable for general purpose usage. In particular you can never get a top level item in the model because the root model index by definition hasn't got a pointer to the model it belongs. That makes child() useless for anything but tree models (and even there you'd need to special case your code anyhow). [ChangeLog][QtCore][QModelIndex] QModelIndex::child has been deprecated due to its lack of generality. Use model->index(row, column, index) instead. [ChangeLog][QtCore][QPersistentModelIndex] QPersistentModelIndex::child has been deprecated due to its lack of generality. Use model->index(row, column, index) instead. Change-Id: Ice73c17133aaf71355fa2af1eacfe64da01bd456 Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: David Faure <david.faure@kdab.com>
This commit is contained in:
parent
17198e03ab
commit
8dc45d5b7c
@ -364,7 +364,7 @@ quintptr QPersistentModelIndex::internalId() const
|
||||
Returns the parent QModelIndex for this persistent index, or an invalid
|
||||
QModelIndex if it has no parent.
|
||||
|
||||
\sa child(), sibling(), model()
|
||||
\sa sibling(), model()
|
||||
*/
|
||||
QModelIndex QPersistentModelIndex::parent() const
|
||||
{
|
||||
@ -377,7 +377,7 @@ QModelIndex QPersistentModelIndex::parent() const
|
||||
Returns the sibling at \a row and \a column or an invalid QModelIndex if
|
||||
there is no sibling at this position.
|
||||
|
||||
\sa parent(), child()
|
||||
\sa parent()
|
||||
*/
|
||||
|
||||
QModelIndex QPersistentModelIndex::sibling(int row, int column) const
|
||||
@ -387,7 +387,12 @@ QModelIndex QPersistentModelIndex::sibling(int row, int column) const
|
||||
return QModelIndex();
|
||||
}
|
||||
|
||||
#if QT_DEPRECATED_SINCE(5, 8)
|
||||
/*!
|
||||
\obsolete
|
||||
|
||||
Use QAbstractItemModel::index() instead.
|
||||
|
||||
Returns the child of the model index that is stored in the given \a row
|
||||
and \a column.
|
||||
|
||||
@ -397,9 +402,10 @@ QModelIndex QPersistentModelIndex::sibling(int row, int column) const
|
||||
QModelIndex QPersistentModelIndex::child(int row, int column) const
|
||||
{
|
||||
if (d)
|
||||
return d->index.child(row, column);
|
||||
return d->index.model()->index(row, column, d->index);
|
||||
return QModelIndex();
|
||||
}
|
||||
#endif
|
||||
|
||||
/*!
|
||||
Returns the data for the given \a role for the item referred to by the
|
||||
@ -1099,12 +1105,16 @@ void QAbstractItemModel::resetInternalData()
|
||||
Returns the sibling at \a row and \a column. If there is no sibling at this
|
||||
position, an invalid QModelIndex is returned.
|
||||
|
||||
\sa parent(), child()
|
||||
\sa parent()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QModelIndex QModelIndex::child(int row, int column) const
|
||||
|
||||
\obsolete
|
||||
|
||||
Use QAbstractItemModel::index() instead.
|
||||
|
||||
Returns the child of the model index that is stored in the given \a row and
|
||||
\a column.
|
||||
|
||||
@ -1153,7 +1163,7 @@ void QAbstractItemModel::resetInternalData()
|
||||
Returns the parent of the model index, or QModelIndex() if it has no
|
||||
parent.
|
||||
|
||||
\sa child(), sibling(), model()
|
||||
\sa sibling(), model()
|
||||
*/
|
||||
|
||||
/*!
|
||||
|
@ -63,7 +63,9 @@ 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 child(int row, int column) const;
|
||||
#if QT_DEPRECATED_SINCE(5, 8)
|
||||
QT_DEPRECATED_X("Use QAbstractItemModel::index") inline QModelIndex child(int row, int column) const;
|
||||
#endif
|
||||
inline QVariant data(int role = Qt::DisplayRole) const;
|
||||
inline Qt::ItemFlags flags() const;
|
||||
Q_DECL_CONSTEXPR inline const QAbstractItemModel *model() const Q_DECL_NOTHROW { return m; }
|
||||
@ -128,7 +130,9 @@ public:
|
||||
quintptr internalId() const;
|
||||
QModelIndex parent() const;
|
||||
QModelIndex sibling(int row, int column) const;
|
||||
QModelIndex child(int row, int column) const;
|
||||
#if QT_DEPRECATED_SINCE(5, 8)
|
||||
QT_DEPRECATED_X("Use QAbstractItemModel::index") QModelIndex child(int row, int column) const;
|
||||
#endif
|
||||
QVariant data(int role = Qt::DisplayRole) const;
|
||||
Qt::ItemFlags flags() const;
|
||||
const QAbstractItemModel *model() const;
|
||||
@ -419,8 +423,10 @@ 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(); }
|
||||
|
||||
#if QT_DEPRECATED_SINCE(5, 8)
|
||||
inline QModelIndex QModelIndex::child(int arow, int acolumn) const
|
||||
{ return m ? m->index(arow, acolumn, *this) : QModelIndex(); }
|
||||
#endif
|
||||
|
||||
inline QVariant QModelIndex::data(int arole) const
|
||||
{ return m ? m->data(*this, arole) : QVariant(); }
|
||||
|
Loading…
Reference in New Issue
Block a user