diff options
author | Paolo Angelelli <paolo.angelelli@qt.io> | 2019-01-11 15:33:58 +0100 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2019-01-17 14:53:31 +0000 |
commit | 6536076b1f1368d3c21b286a065915663d8a1946 (patch) | |
tree | e3549ee3293d61c901fc29807172ab30840e5087 /tests/auto/quick/qquicklistview | |
parent | 77e275a6f88956a95922b4c746e4235c5a62c47c (diff) |
Add itemAtIndex to quick views
This patch adds itemAtIndex method to ItemView-derived views and
to PathView.
[ChangeLog][QtQuick][QQuickItemView] Added itemAtIndex() to
GridView, ListView and PathView to fetch a visible delegate by index.
Change-Id: Id8475d06c1481036984fe5109bb52cf2729b1c21
Fixes: QTBUG-72961
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'tests/auto/quick/qquicklistview')
3 files changed, 40 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicklistview/data/listview-itematindex.qml b/tests/auto/quick/qquicklistview/data/listview-itematindex.qml new file mode 100644 index 0000000000..fba8b11933 --- /dev/null +++ b/tests/auto/quick/qquicklistview/data/listview-itematindex.qml @@ -0,0 +1,15 @@ +import QtQuick 2.0 + +ListView { + width: 400 + height: 400 + focus: true + model: 3 + + delegate: Text { + width: parent.width + height: 10 + property int idx: index + text: index + } +} diff --git a/tests/auto/quick/qquicklistview/qquicklistview.pro b/tests/auto/quick/qquicklistview/qquicklistview.pro index b1031e3bb7..fd96c269a2 100644 --- a/tests/auto/quick/qquicklistview/qquicklistview.pro +++ b/tests/auto/quick/qquicklistview/qquicklistview.pro @@ -16,6 +16,7 @@ include (../../shared/util.pri) include (../shared/util.pri) TESTDATA = data/* +DISTFILES += data/* QT += core-private gui-private qml-private quick-private testlib qmltest diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp index 03422c5b14..d96590bdae 100644 --- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp +++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp @@ -166,6 +166,7 @@ private slots: void QTBUG_16037(); void indexAt_itemAt_data(); void indexAt_itemAt(); + void itemAtIndex(); void incrementalModel(); void onAdd(); void onAdd_data(); @@ -4782,6 +4783,29 @@ void tst_QQuickListView::indexAt_itemAt() delete testObject; } +void tst_QQuickListView::itemAtIndex() +{ + QScopedPointer<QQuickView> window(createView()); + window->setSource(testFileUrl("listview-itematindex.qml")); + window->show(); + QVERIFY(QTest::qWaitForWindowExposed(window.data())); + + QQuickListView *listview = qobject_cast<QQuickListView*>(window->rootObject()); + QVERIFY(listview != nullptr); + + QCOMPARE(listview->itemAtIndex(-1), nullptr); + QCOMPARE(listview->itemAtIndex(3), nullptr); + QQuickItem *item = listview->itemAtIndex(0); + QVERIFY(item); + QCOMPARE(item->property("idx"), 0); + item = listview->itemAtIndex(1); + QVERIFY(item); + QCOMPARE(item->property("idx"), 1); + item = listview->itemAtIndex(2); + QVERIFY(item); + QCOMPARE(item->property("idx"), 2); +} + void tst_QQuickListView::incrementalModel() { QScopedPointer<QQuickView> window(createView()); |