aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickgridview
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@live.com>2015-07-07 16:51:55 -0500
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-07-12 10:53:50 +0000
commite44843bfc8fc8bfd5c987fde08816ec3d81f0cae (patch)
tree26f24aa1f0f76a168338b0936c031980f462b168 /tests/auto/quick/qquickgridview
parent656ebe4316b42f79a464a3ea9b5801538a9609c4 (diff)
Fix potential use of incorrect bounds in delegate tracking.
Using GridView.SnapToRow and GridView.ApplyRange with a top margin could lead to the view jumping (rather than smoothly transitioning) when changing the currentIndex. Change-Id: I6936b378220f59e8d416f7531cf8b6906c723cb2 Task-number: QTBUG-45640 Reviewed-by: Martin Jones <martin.jones@qinetic.com.au>
Diffstat (limited to 'tests/auto/quick/qquickgridview')
-rw-r--r--tests/auto/quick/qquickgridview/data/qtbug45640.qml24
-rw-r--r--tests/auto/quick/qquickgridview/tst_qquickgridview.cpp21
2 files changed, 45 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickgridview/data/qtbug45640.qml b/tests/auto/quick/qquickgridview/data/qtbug45640.qml
new file mode 100644
index 0000000000..6973773432
--- /dev/null
+++ b/tests/auto/quick/qquickgridview/data/qtbug45640.qml
@@ -0,0 +1,24 @@
+import QtQuick 2.0
+
+GridView {
+ id: gridView
+ width: 400; height: 400
+ cellHeight: 100
+ cellWidth: 100
+ model: 32
+
+ topMargin: 50
+ snapMode: GridView.SnapToRow
+ preferredHighlightBegin: 50
+ preferredHighlightEnd: 50
+ highlightRangeMode: GridView.ApplyRange
+
+ delegate: Rectangle {
+ width: 100
+ height: 100
+ color: index % 2 == 0 ? "#FFFF00" : "#0000FF"
+ }
+
+ highlight: Rectangle { color: "red"; z: 2 }
+ highlightMoveDuration: 1000
+}
diff --git a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
index d53ee00b45..b8ad1948ed 100644
--- a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
+++ b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
@@ -209,6 +209,8 @@ private slots:
void contentHeightWithDelayRemove_data();
void contentHeightWithDelayRemove();
+ void QTBUG_45640();
+
private:
QList<int> toIntList(const QVariantList &list);
void matchIndexLists(const QVariantList &indexLists, const QList<int> &expectedIndexes);
@@ -6542,6 +6544,25 @@ void tst_QQuickGridView::contentHeightWithDelayRemove()
delete window;
}
+void tst_QQuickGridView::QTBUG_45640()
+{
+ QQuickView *window = createView();
+ window->setSource(testFileUrl("qtbug45640.qml"));
+ window->show();
+ QVERIFY(QTest::qWaitForWindowExposed(window));
+
+ QQuickGridView *gridview = qobject_cast<QQuickGridView*>(window->rootObject());
+ QVERIFY(gridview != 0);
+
+ QCOMPARE(gridview->contentY(), qreal(-50.0));
+
+ gridview->moveCurrentIndexDown();
+
+ QTRY_VERIFY(gridview->contentY() > qreal(-50.0) && gridview->contentY() < qreal(0.0));
+
+ delete window;
+}
+
QTEST_MAIN(tst_QQuickGridView)
#include "tst_qquickgridview.moc"