[doc] Q(Persistent)ModelIndex: document behavior of data() on invalid Q(P)MIs
We return a default-constructed QVariant. What else could we possibly return? Right: nothing else. So document it and add a test. Pick-to: 6.7 6.5 6.2 5.15 Change-Id: If9808703b8ddfd15ceb013996741af8cd4efea12 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit d1a5e602df5978cee6bd263db77745f8047e508e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
072316ccc4
commit
377b4df13b
@ -606,7 +606,8 @@ QModelIndex QPersistentModelIndex::sibling(int row, int column) const
|
||||
|
||||
/*!
|
||||
Returns the data for the given \a role for the item referred to by the
|
||||
index.
|
||||
index, or a default-constructed QVariant if this persistent model index
|
||||
is \l{isValid()}{invalid}.
|
||||
|
||||
\sa Qt::ItemDataRole, QAbstractItemModel::setData()
|
||||
*/
|
||||
@ -1315,7 +1316,8 @@ void QAbstractItemModel::resetInternalData()
|
||||
\fn QVariant QModelIndex::data(int role) const
|
||||
|
||||
Returns the data for the given \a role for the item referred to by the
|
||||
index.
|
||||
index, or a default-constructed QVariant if this model index is
|
||||
\l{isValid()}{invalid}.
|
||||
*/
|
||||
|
||||
/*!
|
||||
|
@ -40,6 +40,8 @@ private slots:
|
||||
void parent();
|
||||
void hasChildren();
|
||||
void data();
|
||||
void invalidModelIndexDataReturnsInvalidQVariant();
|
||||
void invalidPersistentModelIndexDataReturnsInvalidQVariant();
|
||||
void headerData();
|
||||
void itemData();
|
||||
void itemFlags();
|
||||
@ -390,6 +392,33 @@ void tst_QAbstractItemModel::data()
|
||||
QCOMPARE(model.setHeaderData(0, Qt::Horizontal, QVariant(0), 0), false);
|
||||
}
|
||||
|
||||
void tst_QAbstractItemModel::invalidModelIndexDataReturnsInvalidQVariant()
|
||||
{
|
||||
const QModelIndex invalid;
|
||||
QVERIFY(!invalid.isValid());
|
||||
QVERIFY(!invalid.data(Qt::ItemDataRole::DisplayRole).isValid());
|
||||
|
||||
QtTestModel model(1, 1);
|
||||
const QModelIndex mi = model.index(0, 1);
|
||||
QVERIFY(!mi.isValid());
|
||||
QVERIFY(!mi.data(Qt::ItemDataRole::DisplayRole).isValid());
|
||||
}
|
||||
|
||||
void tst_QAbstractItemModel::invalidPersistentModelIndexDataReturnsInvalidQVariant()
|
||||
{
|
||||
const QPersistentModelIndex invalid;
|
||||
QVERIFY(!invalid.isValid());
|
||||
QVERIFY(!invalid.data(Qt::ItemDataRole::DisplayRole).isValid());
|
||||
|
||||
QtTestModel model(1, 1);
|
||||
const QPersistentModelIndex pmi = model.index(0, 0);
|
||||
QVERIFY(pmi.isValid());
|
||||
QVERIFY(pmi.data(Qt::ItemDataRole::DisplayRole).isValid());
|
||||
model.removeRows(0, 1);
|
||||
QVERIFY(!pmi.isValid());
|
||||
QVERIFY(!pmi.data(Qt::ItemDataRole::DisplayRole).isValid());
|
||||
}
|
||||
|
||||
void tst_QAbstractItemModel::headerData()
|
||||
{
|
||||
QtTestModel model(1, 1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user