diff options
author | Bea Lam <bea.lam@nokia.com> | 2012-03-21 12:55:36 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-21 08:04:33 +0100 |
commit | 80b5612708a115613c534644053eb0d8b2cda108 (patch) | |
tree | 28ce7e453e8b1020d452ef68d038a3693564d521 /tests/auto/quick/qquickgridview/tst_qquickgridview.cpp | |
parent | dd952a25aacaba163df22cd35da299c3719f5d73 (diff) |
Fix margins for right-to-left mode
The behaviour for considering left and right margins was inconsistent
in views with a right to left layout; these values were reversed for
extent calculations but not for general positioning. With this change
the left and right margins are never reversed in a right-to-left layout,
so minXExtent and maxXExtent calculations always use startMargin
and endMargin respectively, regardless of layout direction.
Also fixes calculation of endOffset in trackedPositionChanged() when
in horizontal orientation.
Change-Id: Ie00e3d4c2bd38d8fe6ac0213702206b88bfa895e
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'tests/auto/quick/qquickgridview/tst_qquickgridview.cpp')
-rw-r--r-- | tests/auto/quick/qquickgridview/tst_qquickgridview.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp index 88ed94d8bc..c7b5ca6b40 100644 --- a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp +++ b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp @@ -3691,31 +3691,32 @@ void tst_QQuickGridView::margins() QQuickItem *contentItem = gridview->contentItem(); QTRY_VERIFY(contentItem != 0); - QCOMPARE(gridview->contentX(), -240+30.); - QCOMPARE(gridview->xOrigin(), 0.); + QTRY_COMPARE(gridview->contentX(), -240+50.); + QTRY_COMPARE(gridview->xOrigin(), 0.); // check end bound gridview->positionViewAtEnd(); qreal pos = gridview->contentX(); gridview->setContentX(pos - 80); gridview->returnToBounds(); - QTRY_COMPARE(gridview->contentX(), pos - 50); + QTRY_COMPARE(gridview->contentX(), pos - 30); // remove item before visible and check that left margin is maintained // and xOrigin is updated gridview->setContentX(-400); + QTRY_COMPARE(QQuickItemPrivate::get(gridview)->polishScheduled, false); model.removeItems(0, 4); - QTest::qWait(100); + QTRY_COMPARE(model.count(), gridview->count()); gridview->setContentX(-240+50); gridview->returnToBounds(); QCOMPARE(gridview->xOrigin(), -100.); - QTRY_COMPARE(gridview->contentX(), -240-70.); + QTRY_COMPARE(gridview->contentX(), -240-50.); - // reduce left margin (i.e. right side due to RTL) + // reduce right margin pos = gridview->contentX(); - gridview->setLeftMargin(20); + gridview->setRightMargin(40); QCOMPARE(gridview->xOrigin(), -100.); - QTRY_COMPARE(gridview->contentX(), -240-80.); + QTRY_COMPARE(gridview->contentX(), -240-100 + 40.); // check end bound gridview->positionViewAtEnd(); @@ -3723,11 +3724,11 @@ void tst_QQuickGridView::margins() pos = gridview->contentX(); gridview->setContentX(pos - 80); gridview->returnToBounds(); - QTRY_COMPARE(gridview->contentX(), pos - 50); + QTRY_COMPARE(gridview->contentX(), pos - 30); - // reduce right margin (i.e. left side due to RTL) + // reduce left margin pos = gridview->contentX(); - gridview->setRightMargin(40); + gridview->setLeftMargin(20); QCOMPARE(gridview->xOrigin(), 0.); QTRY_COMPARE(gridview->contentX(), pos+10); |