diff options
author | Martin Jones <martin.jones@nokia.com> | 2012-07-23 13:19:04 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-23 06:38:28 +0200 |
commit | 22c68738bf2a83eb228b412fbd251bcdf8e7056e (patch) | |
tree | 14f0c0efa6a7134a1f98c49f53ce813cf10f2346 /tests/auto/quick/qquickgridview | |
parent | 2a4bb9608498876c3c2229eef91b8723a7fd8e47 (diff) |
Changing model after componentComplete should reset currentIndex
When the model is changed reset currentIndex back to 0.
Task-number: QTBUG-26604
Change-Id: I1934e083819537d416acd85c75362daff382aa04
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Diffstat (limited to 'tests/auto/quick/qquickgridview')
-rw-r--r-- | tests/auto/quick/qquickgridview/tst_qquickgridview.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp index 13753ea39c..110df07afa 100644 --- a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp +++ b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp @@ -1801,16 +1801,16 @@ void tst_QQuickGridView::swapWithFirstItem() void tst_QQuickGridView::currentIndex() { - QaimModel model; + QaimModel initModel; for (int i = 0; i < 60; i++) - model.addItem("Item" + QString::number(i), QString::number(i)); + initModel.addItem("Item" + QString::number(i), QString::number(i)); QQuickView *window = new QQuickView(0); window->setGeometry(0,0,240,320); window->show(); QQmlContext *ctxt = window->rootContext(); - ctxt->setContextProperty("testModel", &model); + ctxt->setContextProperty("testModel", &initModel); QString filename(testFile("gridview-initCurrent.qml")); window->setSource(QUrl::fromLocalFile(filename)); @@ -1824,16 +1824,27 @@ void tst_QQuickGridView::currentIndex() QQuickItem *contentItem = gridview->contentItem(); QVERIFY(contentItem != 0); - // current item should be third item + // currentIndex is initialized to 35 + // currentItem should be in view QCOMPARE(gridview->currentIndex(), 35); QCOMPARE(gridview->currentItem(), findItem<QQuickItem>(contentItem, "wrapper", 35)); QCOMPARE(gridview->currentItem()->y(), gridview->highlightItem()->y()); QCOMPARE(gridview->contentY(), 400.0); - gridview->setCurrentIndex(0); + // changing model should reset currentIndex to 0 + QmlListModel model; + for (int i = 0; i < 60; i++) + model.addItem("Item" + QString::number(i), QString::number(i)); + ctxt->setContextProperty("testModel", &model); + QCOMPARE(gridview->currentIndex(), 0); + QCOMPARE(gridview->currentItem(), findItem<QQuickItem>(contentItem, "wrapper", 0)); + // confirm that the velocity is updated + gridview->setCurrentIndex(35); QTRY_VERIFY(gridview->verticalVelocity() != 0.0); + gridview->setCurrentIndex(0); + QTRY_VERIFY(gridview->verticalVelocity() == 0.0); // footer should become visible if it is out of view, and then current index moves to the first row window->rootObject()->setProperty("showFooter", true); |