diff options
author | Hyunkook Khang <hyunkook.khang@qt.io> | 2021-02-23 10:51:31 +0900 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2021-05-26 13:51:21 +0200 |
commit | 6b687ad7ec46fed10766f5d26809c4fe430db608 (patch) | |
tree | e7894ddb58b4735339a9137e4d9e923fb9ac6bfb /tests/auto | |
parent | 14d35455e351f50ce91e71b1e27f6ee58c0c8fd0 (diff) |
Fix layout is always RTL when locale is RTL
isMirrored() will always return true when locale is RTL,
so that we cannot change the layout. To fix this, remove out
the relation between LayoutMirroring.enabled and locale's text
direction.
[ChangeLog][Controls][Important Behavior Changes] Control's locale
property no longer affects layout direction. Use LayoutMirroring
instead.
Fixes: QTBUG-91227
Change-Id: Ibedd3f09828f81f1889077892452a27c90e21533
Reviewed-by: Hyunkook Khang <hyunkook.khang@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/controls/data/tst_control.qml | 14 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_popup.qml | 52 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_progressbar.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_rangeslider.qml | 11 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_scrollbar.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_slider.qml | 6 | ||||
-rw-r--r-- | tests/auto/qquickmenu/tst_qquickmenu.cpp | 42 |
7 files changed, 73 insertions, 56 deletions
diff --git a/tests/auto/controls/data/tst_control.qml b/tests/auto/controls/data/tst_control.qml index 1bbbe42a..4afa719e 100644 --- a/tests/auto/controls/data/tst_control.qml +++ b/tests/auto/controls/data/tst_control.qml @@ -435,8 +435,8 @@ TestCase { compare(control.mirrored, false) control.locale = Qt.locale("ar_EG") - compare(control.mirrored, true) - compare(mirroredSpy.count, 1) + compare(control.mirrored, false) + compare(mirroredSpy.count, 0) control.LayoutMirroring.enabled = true compare(control.mirrored, true) @@ -960,14 +960,14 @@ TestCase { control.locale = Qt.locale("ar_EG") control.localespy.wait() compare(control.localespy.count, 2) - compare(control.mirroredspy.count, 1) + compare(control.mirroredspy.count, 0) compare(control.locale.name, "ar_EG") compare(control.item2_2.locale.name, "ar_EG") compare(control.item2_3.locale.name, "ar_EG") compare(control.localespy_2.count, 2) - compare(control.mirroredspy_2.count, 1) + compare(control.mirroredspy_2.count, 0) compare(control.localespy_3.count, 2) - compare(control.mirroredspy_3.count, 1) + compare(control.mirroredspy_3.count, 0) } Component { @@ -1051,11 +1051,11 @@ TestCase { control.locale = Qt.locale("ar_EG") control.localespy.wait() compare(control.localespy.count, 2) - compare(control.mirroredspy.count, 1) + compare(control.mirroredspy.count, 0) compare(control.locale.name, "ar_EG") compare(control.item6_5.locale.name, "ar_EG") compare(control.localespy_5.count, 2) - compare(control.mirroredspy_5.count, 1) + compare(control.mirroredspy_5.count, 0) } function test_hover_data() { diff --git a/tests/auto/controls/data/tst_popup.qml b/tests/auto/controls/data/tst_popup.qml index 2c94e87b..145f5552 100644 --- a/tests/auto/controls/data/tst_popup.qml +++ b/tests/auto/controls/data/tst_popup.qml @@ -810,9 +810,9 @@ TestCase { compare(control.popup.button1.locale.name, defaultLocale.name) compare(control.popup.button2.locale.name, defaultLocale.name) compare(control.localespy.count, 3) - compare(control.mirrorspy.count, 1) + compare(control.mirrorspy.count, 0) compare(control.button.localespy.count, 3) - compare(control.button.mirrorspy.count, 1) + compare(control.button.mirrorspy.count, 0) compare(control.popup.localespy.count, 2) compare(control.popup.button1.localespy.count, 2) compare(control.popup.button2.localespy.count, 2) @@ -825,14 +825,14 @@ TestCase { compare(control.popup.button1.locale.name, "ar_EG") compare(control.popup.button2.locale.name, "ar_EG") compare(control.localespy.count, 3) - compare(control.mirrorspy.count, 1) + compare(control.mirrorspy.count, 0) compare(control.button.localespy.count, 3) - compare(control.button.mirrorspy.count, 1) + compare(control.button.mirrorspy.count, 0) compare(control.popup.localespy.count, 3) compare(control.popup.button1.localespy.count, 3) - compare(control.popup.button1.mirrorspy.count, 1) + compare(control.popup.button1.mirrorspy.count, 0) compare(control.popup.button2.localespy.count, 3) - compare(control.popup.button2.mirrorspy.count, 1) + compare(control.popup.button2.mirrorspy.count, 0) control.button.locale = Qt.locale("nb_NO") compare(control.ApplicationWindow.window.locale.name, "ar_EG") @@ -842,9 +842,9 @@ TestCase { compare(control.popup.button1.locale.name, "ar_EG") compare(control.popup.button2.locale.name, "ar_EG") compare(control.localespy.count, 3) - compare(control.mirrorspy.count, 1) + compare(control.mirrorspy.count, 0) compare(control.button.localespy.count, 4) - compare(control.button.mirrorspy.count, 2) + compare(control.button.mirrorspy.count, 0) compare(control.popup.localespy.count, 3) compare(control.popup.button1.localespy.count, 3) compare(control.popup.button2.localespy.count, 3) @@ -857,9 +857,9 @@ TestCase { compare(control.popup.button1.locale.name, "ar_EG") compare(control.popup.button2.locale.name, "ar_EG") compare(control.localespy.count, 3) - compare(control.mirrorspy.count, 1) + compare(control.mirrorspy.count, 0) compare(control.button.localespy.count, 4) - compare(control.button.mirrorspy.count, 2) + compare(control.button.mirrorspy.count, 0) compare(control.popup.localespy.count, 3) compare(control.popup.button1.localespy.count, 3) compare(control.popup.button2.localespy.count, 3) @@ -872,14 +872,14 @@ TestCase { compare(control.popup.button1.locale.name, "nb_NO") compare(control.popup.button2.locale.name, "ar_EG") compare(control.localespy.count, 3) - compare(control.mirrorspy.count, 1) + compare(control.mirrorspy.count, 0) compare(control.button.localespy.count, 4) - compare(control.button.mirrorspy.count, 2) + compare(control.button.mirrorspy.count, 0) compare(control.popup.localespy.count, 3) compare(control.popup.button1.localespy.count, 4) - compare(control.popup.button1.mirrorspy.count, 2) + compare(control.popup.button1.mirrorspy.count, 0) compare(control.popup.button2.localespy.count, 3) - compare(control.popup.button2.mirrorspy.count, 1) + compare(control.popup.button2.mirrorspy.count, 0) control.popup.locale = Qt.locale("fi_FI") compare(control.ApplicationWindow.window.locale.name, "ar_EG") @@ -889,14 +889,14 @@ TestCase { compare(control.popup.button1.locale.name, "nb_NO") compare(control.popup.button2.locale.name, "fi_FI") compare(control.localespy.count, 3) - compare(control.mirrorspy.count, 1) + compare(control.mirrorspy.count, 0) compare(control.button.localespy.count, 4) - compare(control.button.mirrorspy.count, 2) + compare(control.button.mirrorspy.count, 0) compare(control.popup.localespy.count, 4) compare(control.popup.button1.localespy.count, 4) - compare(control.popup.button1.mirrorspy.count, 2) + compare(control.popup.button1.mirrorspy.count, 0) compare(control.popup.button2.localespy.count, 4) - compare(control.popup.button2.mirrorspy.count, 2) + compare(control.popup.button2.mirrorspy.count, 0) control.ApplicationWindow.window.locale = undefined compare(control.ApplicationWindow.window.locale.name, defaultLocale.name) @@ -906,14 +906,14 @@ TestCase { compare(control.popup.button1.locale.name, "nb_NO") compare(control.popup.button2.locale.name, "fi_FI") compare(control.localespy.count, 4) - compare(control.mirrorspy.count, 2) + compare(control.mirrorspy.count, 0) compare(control.button.localespy.count, 4) - compare(control.button.mirrorspy.count, 2) + compare(control.button.mirrorspy.count, 0) compare(control.popup.localespy.count, 4) compare(control.popup.button1.localespy.count, 4) - compare(control.popup.button1.mirrorspy.count, 2) + compare(control.popup.button1.mirrorspy.count, 0) compare(control.popup.button2.localespy.count, 4) - compare(control.popup.button2.mirrorspy.count, 2) + compare(control.popup.button2.mirrorspy.count, 0) control.popup.locale = undefined compare(control.ApplicationWindow.window.locale.name, defaultLocale.name) @@ -923,14 +923,14 @@ TestCase { compare(control.popup.button1.locale.name, "nb_NO") compare(control.popup.button2.locale.name, defaultLocale.name) compare(control.localespy.count, 4) - compare(control.mirrorspy.count, 2) + compare(control.mirrorspy.count, 0) compare(control.button.localespy.count, 4) - compare(control.button.mirrorspy.count, 2) + compare(control.button.mirrorspy.count, 0) compare(control.popup.localespy.count, 5) compare(control.popup.button1.localespy.count, 4) - compare(control.popup.button1.mirrorspy.count, 2) + compare(control.popup.button1.mirrorspy.count, 0) compare(control.popup.button2.localespy.count, 5) - compare(control.popup.button2.mirrorspy.count, 2) + compare(control.popup.button2.mirrorspy.count, 0) } function test_size() { diff --git a/tests/auto/controls/data/tst_progressbar.qml b/tests/auto/controls/data/tst_progressbar.qml index 1bb66bb7..2d264409 100644 --- a/tests/auto/controls/data/tst_progressbar.qml +++ b/tests/auto/controls/data/tst_progressbar.qml @@ -163,7 +163,7 @@ TestCase { // RTL locale control.locale = Qt.locale("ar_EG") - compare(control.visualPosition, 0.75) + compare(control.visualPosition, 0.25) // RTL locale + LayoutMirroring control.LayoutMirroring.enabled = true diff --git a/tests/auto/controls/data/tst_rangeslider.qml b/tests/auto/controls/data/tst_rangeslider.qml index 55fedd1c..28ec7a7a 100644 --- a/tests/auto/controls/data/tst_rangeslider.qml +++ b/tests/auto/controls/data/tst_rangeslider.qml @@ -235,8 +235,8 @@ TestCase { // RTL locale control.locale = Qt.locale("ar_EG") - compare(control.first.visualPosition, 0.75) - compare(control.second.visualPosition, 0.0) + compare(control.first.visualPosition, 0.25) + compare(control.second.visualPosition, 1.0) // RTL locale + LayoutMirroring control.LayoutMirroring.enabled = true @@ -786,13 +786,12 @@ TestCase { control.first.value = 0 control.locale = Qt.locale("ar_EG") - mousePress(control, control.first.handle.x + control.first.handle.width / 2, - control.first.handle.y + control.first.handle.height / 2, Qt.LeftButton) + mousePress(control, control.first.handle.x, control.first.handle.y, Qt.LeftButton) compare(firstPressedSpy.count, 3) compare(control.first.pressed, true) compare(control.first.value, 0.0) compare(control.first.position, 0.0) - compare(control.first.visualPosition, 1.0) + compare(control.first.visualPosition, 0.0) mouseMove(control, control.leftPadding + control.availableWidth * 0.5, control.height * 0.5, 0) compare(firstPressedSpy.count, 3) @@ -805,7 +804,7 @@ TestCase { compare(firstPressedSpy.count, 3) compare(control.first.pressed, true) compare(control.first.value, 0.0) - verify(control.first.position < 0.5) + verify(control.first.position > 0.5) verify(control.first.visualPosition > 0.5) mouseRelease(control, control.leftPadding + control.availableWidth * 0.5, control.height * 0.5, Qt.LeftButton) diff --git a/tests/auto/controls/data/tst_scrollbar.qml b/tests/auto/controls/data/tst_scrollbar.qml index edcd7aab..9e649e37 100644 --- a/tests/auto/controls/data/tst_scrollbar.qml +++ b/tests/auto/controls/data/tst_scrollbar.qml @@ -546,7 +546,7 @@ TestCase { container.ScrollBar.vertical = scrollBar.createObject(container) compare(container.ScrollBar.vertical.x, container.width - container.ScrollBar.vertical.width) container.ScrollBar.vertical.locale = Qt.locale("ar_EG") - compare(container.ScrollBar.vertical.x, 0) + compare(container.ScrollBar.vertical.x, container.width - container.ScrollBar.vertical.width) } function test_hover_data() { diff --git a/tests/auto/controls/data/tst_slider.qml b/tests/auto/controls/data/tst_slider.qml index 6872506b..05cd6ec2 100644 --- a/tests/auto/controls/data/tst_slider.qml +++ b/tests/auto/controls/data/tst_slider.qml @@ -179,7 +179,7 @@ TestCase { // RTL locale control.locale = Qt.locale("ar_EG") - compare(control.visualPosition, 0.75) + compare(control.visualPosition, 0.25) // RTL locale + LayoutMirroring control.LayoutMirroring.enabled = true @@ -623,7 +623,7 @@ TestCase { compare(pressedSpy.count, 3) compare(control.pressed, true) compare(control.value, 0.0) - compare(control.position, 1.0) + compare(control.position, 0.0) compare(control.visualPosition, 0.0) mouseMove(control, control.leftPadding + control.availableWidth * 0.5, control.height * 0.5, 0) @@ -637,7 +637,7 @@ TestCase { compare(pressedSpy.count, 3) compare(control.pressed, true) compare(control.value, 0.0) - verify(control.position < 0.5) + verify(control.position > 0.5) verify(control.visualPosition > 0.5) mouseRelease(control, control.leftPadding + control.availableWidth * 0.5, control.height * 0.5, Qt.LeftButton) diff --git a/tests/auto/qquickmenu/tst_qquickmenu.cpp b/tests/auto/qquickmenu/tst_qquickmenu.cpp index 05c96246..92ea452a 100644 --- a/tests/auto/qquickmenu/tst_qquickmenu.cpp +++ b/tests/auto/qquickmenu/tst_qquickmenu.cpp @@ -1236,8 +1236,11 @@ void tst_QQuickMenu::subMenuKeyboard() window->show(); QVERIFY(QTest::qWaitForWindowActive(window)); - if (mirrored) - window->setLocale(QLocale("ar_EG")); + if (mirrored) { + QQmlExpression mirroringExpression(qmlContext(window), window, + "LayoutMirroring.childrenInherit = true; LayoutMirroring.enabled = true"); + QVERIFY2(mirroringExpression.evaluate().isValid(), qPrintable(mirroringExpression.error().toString())); + } QQuickMenu *mainMenu = window->property("mainMenu").value<QQuickMenu *>(); QVERIFY(mainMenu); @@ -1359,8 +1362,11 @@ void tst_QQuickMenu::subMenuDisabledKeyboard() window->show(); QVERIFY(QTest::qWaitForWindowActive(window)); - if (mirrored) - window->setLocale(QLocale("ar_EG")); + if (mirrored) { + QQmlExpression mirroringExpression(qmlContext(window), window, + "LayoutMirroring.childrenInherit = true; LayoutMirroring.enabled = true"); + QVERIFY2(mirroringExpression.evaluate().isValid(), qPrintable(mirroringExpression.error().toString())); + } QQuickMenu *mainMenu = window->property("mainMenu").value<QQuickMenu *>(); QVERIFY(mainMenu); @@ -1454,8 +1460,11 @@ void tst_QQuickMenu::subMenuPosition() window->show(); QVERIFY(QTest::qWaitForWindowActive(window)); - if (mirrored) - window->setLocale(QLocale("ar_EG")); + if (mirrored) { + QQmlExpression mirroringExpression(qmlContext(window), window, + "LayoutMirroring.childrenInherit = true; LayoutMirroring.enabled = true"); + QVERIFY2(mirroringExpression.evaluate().isValid(), qPrintable(mirroringExpression.error().toString())); + } mainMenu->setCascade(cascade); QCOMPARE(mainMenu->cascade(), cascade); @@ -1733,8 +1742,11 @@ void tst_QQuickMenu::menuItemWidth() window->show(); QVERIFY(QTest::qWaitForWindowActive(window)); - if (mirrored) - window->setLocale(QLocale("ar_EG")); + if (mirrored) { + QQmlExpression mirroringExpression(qmlContext(window), window, + "LayoutMirroring.childrenInherit = true; LayoutMirroring.enabled = true"); + QVERIFY2(mirroringExpression.evaluate().isValid(), qPrintable(mirroringExpression.error().toString())); + } QQuickMenu *menu = window->property("menu").value<QQuickMenu *>(); QVERIFY(menu); @@ -1762,8 +1774,11 @@ void tst_QQuickMenu::menuItemWidthAfterMenuWidthChanged() window->show(); QVERIFY(QTest::qWaitForWindowActive(window)); - if (mirrored) - window->setLocale(QLocale("ar_EG")); + if (mirrored) { + QQmlExpression mirroringExpression(qmlContext(window), window, + "LayoutMirroring.childrenInherit = true; LayoutMirroring.enabled = true"); + QVERIFY2(mirroringExpression.evaluate().isValid(), qPrintable(mirroringExpression.error().toString())); + } QQuickMenu *menu = window->property("menu").value<QQuickMenu *>(); QVERIFY(menu); @@ -1807,8 +1822,11 @@ void tst_QQuickMenu::menuItemWidthAfterImplicitWidthChanged() window->show(); QVERIFY(QTest::qWaitForWindowActive(window)); - if (mirrored) - window->setLocale(QLocale("ar_EG")); + if (mirrored) { + QQmlExpression mirroringExpression(qmlContext(window), window, + "LayoutMirroring.childrenInherit = true; LayoutMirroring.enabled = true"); + QVERIFY2(mirroringExpression.evaluate().isValid(), qPrintable(mirroringExpression.error().toString())); + } QQuickMenu *menu = window->property("menu").value<QQuickMenu *>(); QVERIFY(menu); |