summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/itemmodels
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/itemmodels')
-rw-r--r--tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp b/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp
index bc8bc38da6..032f17c0a7 100644
--- a/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp
+++ b/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp
@@ -131,6 +131,7 @@ private slots:
void supportedDragDropActions();
void taskQTBUG_45114_setItemData();
+ void setItemPersistentIndex();
private:
QStandardItemModel *m_model;
@@ -1811,5 +1812,26 @@ void tst_QStandardItemModel::taskQTBUG_45114_setItemData()
QVERIFY(!itemRoles.keys().contains(Qt::UserRole + 3));
}
+void tst_QStandardItemModel::setItemPersistentIndex()
+{
+ QPersistentModelIndex persistentIndex;
+ // setItem on an already existing item should not destroy the persistent index
+ QStandardItemModel m;
+ persistentIndex = m.index(0, 0);
+ QVERIFY(!persistentIndex.isValid());
+
+ m.setItem(0, 0, new QStandardItem);
+ persistentIndex = m.index(0, 0);
+ QVERIFY(persistentIndex.isValid());
+ QCOMPARE(persistentIndex.row(), 0);
+ QCOMPARE(persistentIndex.column(), 0);
+
+ m.setItem(0, 0, new QStandardItem);
+ QVERIFY(persistentIndex.isValid());
+
+ m.setItem(0, 0, nullptr);
+ QVERIFY(!persistentIndex.isValid());
+}
+
QTEST_MAIN(tst_QStandardItemModel)
#include "tst_qstandarditemmodel.moc"