diff options
-rw-r--r-- | src/controls/qquickcontrol.cpp | 6 | ||||
-rw-r--r-- | src/controls/qquickprogressbar.cpp | 1 | ||||
-rw-r--r-- | src/controls/qquickslider.cpp | 1 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_control.qml | 35 |
4 files changed, 40 insertions, 3 deletions
diff --git a/src/controls/qquickcontrol.cpp b/src/controls/qquickcontrol.cpp index 44da18c6..26e68b9f 100644 --- a/src/controls/qquickcontrol.cpp +++ b/src/controls/qquickcontrol.cpp @@ -60,8 +60,6 @@ void QQuickControlPrivate::mirrorChange() { Q_Q(QQuickControl); q->mirrorChange(); - emit q->effectiveLayoutDirectionChanged(); - emit q->mirroredChanged(); } qreal QQuickControlPrivate::getContentWidth() const @@ -316,7 +314,7 @@ void QQuickControl::setLayoutDirection(Qt::LayoutDirection direction) if (d->layoutDirection != direction) { d->layoutDirection = direction; emit layoutDirectionChanged(); - emit effectiveLayoutDirectionChanged(); + mirrorChange(); } } @@ -370,6 +368,8 @@ void QQuickControl::geometryChanged(const QRectF &newGeometry, const QRectF &old void QQuickControl::mirrorChange() { + emit effectiveLayoutDirectionChanged(); + emit mirroredChanged(); } void QQuickControl::paddingChange() diff --git a/src/controls/qquickprogressbar.cpp b/src/controls/qquickprogressbar.cpp index 41fe8920..b6df343e 100644 --- a/src/controls/qquickprogressbar.cpp +++ b/src/controls/qquickprogressbar.cpp @@ -145,6 +145,7 @@ void QQuickProgressBar::setIndicator(QQuickItem *indicator) void QQuickProgressBar::mirrorChange() { + QQuickControl::mirrorChange(); emit visualPositionChanged(); } diff --git a/src/controls/qquickslider.cpp b/src/controls/qquickslider.cpp index 1959140e..3f60fc95 100644 --- a/src/controls/qquickslider.cpp +++ b/src/controls/qquickslider.cpp @@ -412,6 +412,7 @@ void QQuickSlider::mouseUngrabEvent() void QQuickSlider::mirrorChange() { + QQuickControl::mirrorChange(); emit visualPositionChanged(); } diff --git a/tests/auto/controls/data/tst_control.qml b/tests/auto/controls/data/tst_control.qml index 9143c3f1..3d46ff16 100644 --- a/tests/auto/controls/data/tst_control.qml +++ b/tests/auto/controls/data/tst_control.qml @@ -55,6 +55,21 @@ TestCase { Control { } } + SignalSpy { + id: layoutDirectionSpy + signalName: "layoutDirectionChanged" + } + + SignalSpy { + id: effectiveLayoutDirectionSpy + signalName: "effectiveLayoutDirectionChanged" + } + + SignalSpy { + id: mirroredSpy + signalName: "mirroredChanged" + } + function test_defaults() { var control = component.createObject(testCase) verify(control) @@ -67,6 +82,14 @@ TestCase { function test_layoutDirection() { var control = component.createObject(testCase) + layoutDirectionSpy.target = control + effectiveLayoutDirectionSpy.target = control + mirroredSpy.target = control + + verify(layoutDirectionSpy.valid) + verify(effectiveLayoutDirectionSpy.valid) + verify(mirroredSpy.valid) + verify(!control.LayoutMirroring.enabled) compare(control.layoutDirection, Qt.LeftToRight) compare(control.effectiveLayoutDirection, Qt.LeftToRight) @@ -76,21 +99,33 @@ TestCase { compare(control.layoutDirection, Qt.RightToLeft) compare(control.effectiveLayoutDirection, Qt.RightToLeft) compare(control.mirrored, true) + compare(layoutDirectionSpy.count, 1) + compare(effectiveLayoutDirectionSpy.count, 1) + compare(mirroredSpy.count, 1) control.LayoutMirroring.enabled = true compare(control.layoutDirection, Qt.RightToLeft) compare(control.effectiveLayoutDirection, Qt.LeftToRight) compare(control.mirrored, false) + compare(layoutDirectionSpy.count, 1) + compare(effectiveLayoutDirectionSpy.count, 2) + compare(mirroredSpy.count, 2) control.layoutDirection = Qt.LeftToRight compare(control.layoutDirection, Qt.LeftToRight) compare(control.effectiveLayoutDirection, Qt.RightToLeft) compare(control.mirrored, true) + compare(layoutDirectionSpy.count, 2) + compare(effectiveLayoutDirectionSpy.count, 3) + compare(mirroredSpy.count, 3) control.LayoutMirroring.enabled = false compare(control.layoutDirection, Qt.LeftToRight) compare(control.effectiveLayoutDirection, Qt.LeftToRight) compare(control.mirrored, false) + compare(layoutDirectionSpy.count, 2) + compare(effectiveLayoutDirectionSpy.count, 4) + compare(mirroredSpy.count, 4) control.destroy() } |