[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
|
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()
|
\sa Qt::ItemDataRole, QAbstractItemModel::setData()
|
||||||
*/
|
*/
|
||||||
@ -1315,7 +1316,8 @@ void QAbstractItemModel::resetInternalData()
|
|||||||
\fn QVariant QModelIndex::data(int role) const
|
\fn QVariant QModelIndex::data(int role) const
|
||||||
|
|
||||||
Returns the data for the given \a role for the item referred to by the
|
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 parent();
|
||||||
void hasChildren();
|
void hasChildren();
|
||||||
void data();
|
void data();
|
||||||
|
void invalidModelIndexDataReturnsInvalidQVariant();
|
||||||
|
void invalidPersistentModelIndexDataReturnsInvalidQVariant();
|
||||||
void headerData();
|
void headerData();
|
||||||
void itemData();
|
void itemData();
|
||||||
void itemFlags();
|
void itemFlags();
|
||||||
@ -390,6 +392,33 @@ void tst_QAbstractItemModel::data()
|
|||||||
QCOMPARE(model.setHeaderData(0, Qt::Horizontal, QVariant(0), 0), false);
|
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()
|
void tst_QAbstractItemModel::headerData()
|
||||||
{
|
{
|
||||||
QtTestModel model(1, 1);
|
QtTestModel model(1, 1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user