diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-08-01 13:09:10 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-08-02 10:46:54 +0200 |
commit | 6494f5c5aaec82cc5bcfd42de559d723edef57b1 (patch) | |
tree | 40e0cf580cfd842a40b9a83d03f09cf8b30e3b78 /tests | |
parent | 09f4bd20d7514f229338667effdf8519f1722b3f (diff) |
Add a currentItem property to PathView.
Task-number: QTBUG-16347
Change-Id: I6df4b2d7c5f325e84d54ed5befd66e20b64cc7e0
Reviewed-on: http://codereview.qt.nokia.com/2421
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/declarative/qsgpathview/data/pathview0.qml | 1 | ||||
-rw-r--r-- | tests/auto/declarative/qsgpathview/tst_qsgpathview.cpp | 58 |
2 files changed, 59 insertions, 0 deletions
diff --git a/tests/auto/declarative/qsgpathview/data/pathview0.qml b/tests/auto/declarative/qsgpathview/data/pathview0.qml index 72b71a3c80..8b9378163f 100644 --- a/tests/auto/declarative/qsgpathview/data/pathview0.qml +++ b/tests/auto/declarative/qsgpathview/data/pathview0.qml @@ -17,6 +17,7 @@ Rectangle { Rectangle { id: wrapper objectName: "wrapper" + property bool onPath: PathView.onPath height: root.delegateHeight width: root.delegateWidth scale: root.delegateScale diff --git a/tests/auto/declarative/qsgpathview/tst_qsgpathview.cpp b/tests/auto/declarative/qsgpathview/tst_qsgpathview.cpp index 91f6491493..00202f7436 100644 --- a/tests/auto/declarative/qsgpathview/tst_qsgpathview.cpp +++ b/tests/auto/declarative/qsgpathview/tst_qsgpathview.cpp @@ -423,6 +423,7 @@ void tst_QSGPathView::dataModel() QTRY_COMPARE(findItems<QSGItem>(pathview, "wrapper").count(), 14); QVERIFY(pathview->currentIndex() == 0); + QCOMPARE(pathview->currentItem(), findItem<QSGItem>(pathview, "wrapper", 0)); QSGText *text = findItem<QSGText>(pathview, "myText", 4); QVERIFY(text); @@ -433,6 +434,7 @@ void tst_QSGPathView::dataModel() text = findItem<QSGText>(pathview, "myText", 2); QVERIFY(text); QCOMPARE(text->text(), model.name(2)); + QCOMPARE(pathview->currentItem(), findItem<QSGItem>(pathview, "wrapper", 0)); testObject->setPathItemCount(5); QMetaObject::invokeMethod(canvas->rootObject(), "checkProperties"); @@ -446,12 +448,15 @@ void tst_QSGPathView::dataModel() QVERIFY(testItem == 0); pathview->setCurrentIndex(1); + QCOMPARE(pathview->currentItem(), findItem<QSGItem>(pathview, "wrapper", 1)); + QTest::qWait(100); model.insertItem(2, "pink", "2"); QTest::qWait(100); QTRY_COMPARE(findItems<QSGItem>(pathview, "wrapper").count(), 5); QVERIFY(pathview->currentIndex() == 1); + QCOMPARE(pathview->currentItem(), findItem<QSGItem>(pathview, "wrapper", 1)); text = findItem<QSGText>(pathview, "myText", 2); QVERIFY(text); @@ -462,6 +467,7 @@ void tst_QSGPathView::dataModel() text = findItem<QSGText>(pathview, "myText", 3); QVERIFY(text); QCOMPARE(text->text(), model.name(3)); + QCOMPARE(pathview->currentItem(), findItem<QSGItem>(pathview, "wrapper", 1)); model.moveItem(3, 5); QTRY_COMPARE(findItems<QSGItem>(pathview, "wrapper").count(), 5); @@ -469,6 +475,7 @@ void tst_QSGPathView::dataModel() foreach (QSGItem *item, items) { QVERIFY(item->property("onPath").toBool()); } + QCOMPARE(pathview->currentItem(), findItem<QSGItem>(pathview, "wrapper", 1)); // QTBUG-14199 pathview->setOffset(7); @@ -578,30 +585,81 @@ void tst_QSGPathView::setCurrentIndex() QTRY_COMPARE(firstItem->pos() + offset, start); QCOMPARE(canvas->rootObject()->property("currentA").toInt(), 2); QCOMPARE(canvas->rootObject()->property("currentB").toInt(), 2); + QCOMPARE(pathview->currentItem(), firstItem); + QCOMPARE(firstItem->property("onPath"), QVariant(true)); pathview->decrementCurrentIndex(); QTRY_COMPARE(pathview->currentIndex(), 1); firstItem = findItem<QSGRectangle>(pathview, "wrapper", 1); QVERIFY(firstItem); QTRY_COMPARE(firstItem->pos() + offset, start); + QCOMPARE(pathview->currentItem(), firstItem); + QCOMPARE(firstItem->property("onPath"), QVariant(true)); pathview->decrementCurrentIndex(); QTRY_COMPARE(pathview->currentIndex(), 0); firstItem = findItem<QSGRectangle>(pathview, "wrapper", 0); QVERIFY(firstItem); QTRY_COMPARE(firstItem->pos() + offset, start); + QCOMPARE(pathview->currentItem(), firstItem); + QCOMPARE(firstItem->property("onPath"), QVariant(true)); pathview->decrementCurrentIndex(); QTRY_COMPARE(pathview->currentIndex(), 3); firstItem = findItem<QSGRectangle>(pathview, "wrapper", 3); QVERIFY(firstItem); QTRY_COMPARE(firstItem->pos() + offset, start); + QCOMPARE(pathview->currentItem(), firstItem); + QCOMPARE(firstItem->property("onPath"), QVariant(true)); pathview->incrementCurrentIndex(); QTRY_COMPARE(pathview->currentIndex(), 0); firstItem = findItem<QSGRectangle>(pathview, "wrapper", 0); QVERIFY(firstItem); QTRY_COMPARE(firstItem->pos() + offset, start); + QCOMPARE(pathview->currentItem(), firstItem); + QCOMPARE(firstItem->property("onPath"), QVariant(true)); + + // Check the current item is still created when outside the bounds of pathItemCount. + pathview->setPathItemCount(2); + pathview->setHighlightRangeMode(QSGPathView::NoHighlightRange); + QVERIFY(findItem<QSGRectangle>(pathview, "wrapper", 0)); + QVERIFY(findItem<QSGRectangle>(pathview, "wrapper", 1)); + QVERIFY(!findItem<QSGRectangle>(pathview, "wrapper", 2)); + QVERIFY(!findItem<QSGRectangle>(pathview, "wrapper", 3)); + + pathview->setCurrentIndex(2); + firstItem = findItem<QSGRectangle>(pathview, "wrapper", 2); + QCOMPARE(pathview->currentItem(), firstItem); + QCOMPARE(firstItem->property("onPath"), QVariant(false)); + + pathview->decrementCurrentIndex(); + QTRY_COMPARE(pathview->currentIndex(), 1); + firstItem = findItem<QSGRectangle>(pathview, "wrapper", 1); + QVERIFY(firstItem); + QCOMPARE(pathview->currentItem(), firstItem); + QCOMPARE(firstItem->property("onPath"), QVariant(true)); + + pathview->decrementCurrentIndex(); + QTRY_COMPARE(pathview->currentIndex(), 0); + firstItem = findItem<QSGRectangle>(pathview, "wrapper", 0); + QVERIFY(firstItem); + QCOMPARE(pathview->currentItem(), firstItem); + QCOMPARE(firstItem->property("onPath"), QVariant(true)); + + pathview->decrementCurrentIndex(); + QTRY_COMPARE(pathview->currentIndex(), 3); + firstItem = findItem<QSGRectangle>(pathview, "wrapper", 3); + QVERIFY(firstItem); + QCOMPARE(pathview->currentItem(), firstItem); + QCOMPARE(firstItem->property("onPath"), QVariant(false)); + + pathview->incrementCurrentIndex(); + QTRY_COMPARE(pathview->currentIndex(), 0); + firstItem = findItem<QSGRectangle>(pathview, "wrapper", 0); + QVERIFY(firstItem); + QCOMPARE(pathview->currentItem(), firstItem); + QCOMPARE(firstItem->property("onPath"), QVariant(true)); delete canvas; } |