diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-03-19 10:02:02 +0100 |
---|---|---|
committer | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-03-19 10:02:32 +0100 |
commit | 3c5cef4fdec28ab4adfb24f75f2fd7f3fca7b3b0 (patch) | |
tree | 7dfd894311ad904b50c35470f24479c5f5fa43ec /tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp | |
parent | b35d793648a24b229aac75ea43d5a175967304ca (diff) | |
parent | 14166395053bf93a561d87846d172515e5325882 (diff) |
Merge branch 'dev' into stable
This starts Qt 5.1 release cycle
Change-Id: Ic10a8c118053323004cafe1b4bffd990a16aaf7f
Diffstat (limited to 'tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp')
-rw-r--r-- | tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index 5c00ac95..eb0e0948 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -85,6 +85,7 @@ private slots: void enforceRange(); void spacing(); void sections(); + void currentSection(); void sectionsDelegate(); void cacheBuffer(); void positionViewAtIndex(); @@ -1049,6 +1050,36 @@ void tst_QDeclarativeListView::sections() delete canvas; } +void tst_QDeclarativeListView::currentSection() +{ + // QTBUG-29712 + // update currentSection correctly if model modifications + // do not trigger a refill + QDeclarativeView *canvas = createView(); + + TestModel model; + for (int i = 0; i < 5; i++) + model.addItem("Item" + QString::number(i), QString::number(i)); + + QDeclarativeContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("testModel", &model); + + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listview-sections.qml")); + qApp->processEvents(); + + QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list"); + QTRY_VERIFY(listview != 0); + + // make sure the listView won't trigger refill when removing the first row + QTRY_VERIFY(listview->height() > model.count() * 40); + + QTRY_COMPARE(listview->currentSection(), QString("0")); + model.removeItem(0); + QTRY_COMPARE(listview->currentSection(), QString("1")); + + delete canvas; +} + void tst_QDeclarativeListView::sectionsDelegate() { QDeclarativeView *canvas = createView(); |