summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp')
-rw-r--r--tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp b/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp
index 7da56ab797..b129868bbd 100644
--- a/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp
+++ b/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp
@@ -151,6 +151,7 @@ private slots:
void getMimeDataWithInvalidItem();
void testVisualItemRect();
void reparentHiddenItem();
+ void persistentChildIndex();
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
void clearItemData();
#endif
@@ -3597,6 +3598,21 @@ void tst_QTreeWidget::reparentHiddenItem()
QVERIFY(grandChild->isHidden());
}
+void tst_QTreeWidget::persistentChildIndex() // QTBUG-90030
+{
+ QTreeWidget tree;
+ QTreeWidgetItem *toplevel = new QTreeWidgetItem(QStringList{QStringLiteral("toplevel")});
+ tree.addTopLevelItem(toplevel);
+ QModelIndex firstIndex = tree.model()->index(0, 0);
+ QTreeWidgetItem *child1 = new QTreeWidgetItem(QStringList{QStringLiteral("child1")});
+ QTreeWidgetItem *child2 = new QTreeWidgetItem(QStringList{QStringLiteral("child2")});
+ toplevel->addChildren({child1, child2});
+ QPersistentModelIndex persistentIdx = tree.model()->index(1, 0, firstIndex);
+ QCOMPARE(persistentIdx.data().toString(), QStringLiteral("child2"));
+ tree.model()->removeRows(0, 1, firstIndex);
+ QCOMPARE(persistentIdx.data().toString(), QStringLiteral("child2"));
+}
+
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
void tst_QTreeWidget::clearItemData()
{