aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/controls/qquickcontrol.cpp18
-rw-r--r--src/controls/qquickcontrol_p.h5
-rw-r--r--src/controls/qquickprogressbar.cpp2
-rw-r--r--src/controls/qquickslider.cpp8
-rw-r--r--src/imports/controls/CheckBox.qml8
-rw-r--r--src/imports/controls/ProgressBar.qml2
-rw-r--r--src/imports/controls/RadioButton.qml8
-rw-r--r--src/imports/controls/Slider.qml2
-rw-r--r--src/imports/controls/Switch.qml8
-rw-r--r--src/imports/controls/ToggleButton.qml8
10 files changed, 31 insertions, 38 deletions
diff --git a/src/controls/qquickcontrol.cpp b/src/controls/qquickcontrol.cpp
index 5b2c869b..b283032d 100644
--- a/src/controls/qquickcontrol.cpp
+++ b/src/controls/qquickcontrol.cpp
@@ -61,6 +61,7 @@ void QQuickControlPrivate::mirrorChange()
Q_Q(QQuickControl);
q->mirrorChange();
emit q->effectiveLayoutDirectionChanged();
+ emit q->mirroredChanged();
}
void QQuickControlPrivate::setTopPadding(qreal value, bool reset)
@@ -274,6 +275,17 @@ void QQuickControl::setLayoutDirection(Qt::LayoutDirection direction)
}
/*!
+ \qmlproperty bool QtQuickControls2::Control::mirrored
+ \readonly
+
+ TODO
+*/
+bool QQuickControl::isMirrored() const
+{
+ return effectiveLayoutDirection() == Qt::RightToLeft;
+}
+
+/*!
\qmlproperty Item QtQuickControls2::Control::background
This property holds the background item.
@@ -316,12 +328,6 @@ void QQuickControl::geometryChanged(const QRectF &newGeometry, const QRectF &old
}
}
-bool QQuickControl::isMirrored() const
-{
- Q_D(const QQuickControl);
- return d->isMirrored();
-}
-
void QQuickControl::mirrorChange()
{
}
diff --git a/src/controls/qquickcontrol_p.h b/src/controls/qquickcontrol_p.h
index 2f000a4f..f97cdbe4 100644
--- a/src/controls/qquickcontrol_p.h
+++ b/src/controls/qquickcontrol_p.h
@@ -65,6 +65,7 @@ class Q_QUICKCONTROLS_EXPORT QQuickControl : public QQuickItem
Q_PROPERTY(qreal bottomPadding READ bottomPadding WRITE setBottomPadding RESET resetBottomPadding NOTIFY bottomPaddingChanged FINAL)
Q_PROPERTY(Qt::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection NOTIFY layoutDirectionChanged FINAL)
Q_PROPERTY(Qt::LayoutDirection effectiveLayoutDirection READ effectiveLayoutDirection NOTIFY effectiveLayoutDirectionChanged FINAL)
+ Q_PROPERTY(bool mirrored READ isMirrored NOTIFY mirroredChanged FINAL)
Q_PROPERTY(QQuickItem *background READ background WRITE setBackground NOTIFY backgroundChanged FINAL)
public:
@@ -94,6 +95,8 @@ public:
Qt::LayoutDirection effectiveLayoutDirection() const;
void setLayoutDirection(Qt::LayoutDirection direction);
+ bool isMirrored() const;
+
QQuickItem *background() const;
void setBackground(QQuickItem *background);
@@ -105,6 +108,7 @@ Q_SIGNALS:
void bottomPaddingChanged();
void layoutDirectionChanged();
void effectiveLayoutDirectionChanged();
+ void mirroredChanged();
void backgroundChanged();
protected:
@@ -112,7 +116,6 @@ protected:
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE;
- bool isMirrored() const;
virtual void mirrorChange();
virtual void paddingChange();
diff --git a/src/controls/qquickprogressbar.cpp b/src/controls/qquickprogressbar.cpp
index 0824cd13..41fe8920 100644
--- a/src/controls/qquickprogressbar.cpp
+++ b/src/controls/qquickprogressbar.cpp
@@ -95,7 +95,7 @@ void QQuickProgressBar::setValue(qreal value)
qreal QQuickProgressBar::visualPosition() const
{
Q_D(const QQuickProgressBar);
- if (effectiveLayoutDirection() == Qt::RightToLeft)
+ if (isMirrored())
return 1.0 - d->value;
return d->value;
}
diff --git a/src/controls/qquickslider.cpp b/src/controls/qquickslider.cpp
index 1d318d51..1959140e 100644
--- a/src/controls/qquickslider.cpp
+++ b/src/controls/qquickslider.cpp
@@ -91,7 +91,7 @@ qreal QQuickSliderPrivate::positionAt(const QPoint &point) const
const qreal extent = q->width() - hw;
if (!qFuzzyIsNull(extent)) {
const qreal pos = (point.x() - offset) / extent;
- if (q->effectiveLayoutDirection() == Qt::RightToLeft)
+ if (isMirrored())
return 1.0 - pos;
return pos;
}
@@ -153,7 +153,7 @@ qreal QQuickSlider::position() const
qreal QQuickSlider::visualPosition() const
{
Q_D(const QQuickSlider);
- if (d->orientation == Qt::Vertical || effectiveLayoutDirection() == Qt::RightToLeft)
+ if (d->orientation == Qt::Vertical || isMirrored())
return 1.0 - d->position;
return d->position;
}
@@ -326,14 +326,14 @@ void QQuickSlider::keyPressEvent(QKeyEvent *event)
if (d->orientation == Qt::Horizontal) {
if (event->key() == Qt::Key_Left) {
setPressed(true);
- if (effectiveLayoutDirection() == Qt::RightToLeft)
+ if (isMirrored())
increase();
else
decrease();
event->accept();
} else if (event->key() == Qt::Key_Right) {
setPressed(true);
- if (effectiveLayoutDirection() == Qt::RightToLeft)
+ if (isMirrored())
decrease();
else
increase();
diff --git a/src/imports/controls/CheckBox.qml b/src/imports/controls/CheckBox.qml
index f149bcbb..e16eb73a 100644
--- a/src/imports/controls/CheckBox.qml
+++ b/src/imports/controls/CheckBox.qml
@@ -56,11 +56,9 @@ AbstractCheckBox {
padding: Theme.padding
indicator: Rectangle {
- readonly property bool mirror: control.effectiveLayoutDirection == Qt.RightToLeft
-
implicitWidth: 20
implicitHeight: 20
- x: text ? (mirror ? parent.width - width - control.rightPadding : control.leftPadding) : (parent.width - width) / 2
+ x: text ? (control.mirrored ? parent.width - width - control.rightPadding : control.leftPadding) : (parent.width - width) / 2
y: (parent.height - height) / 2
radius: control.Theme.roundness
@@ -83,9 +81,7 @@ AbstractCheckBox {
}
label: Text {
- readonly property bool mirror: control.effectiveLayoutDirection == Qt.RightToLeft
-
- x: mirror ? control.leftPadding : (indicator.x + indicator.width + control.Theme.spacing)
+ x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.Theme.spacing)
y: control.topPadding
width: parent.width - indicator.width - control.Theme.spacing - control.leftPadding - control.rightPadding
height: parent.height - control.topPadding - control.bottomPadding
diff --git a/src/imports/controls/ProgressBar.qml b/src/imports/controls/ProgressBar.qml
index 6cf95a58..cd4b4213 100644
--- a/src/imports/controls/ProgressBar.qml
+++ b/src/imports/controls/ProgressBar.qml
@@ -55,7 +55,7 @@ AbstractProgressBar {
width: parent.width - control.leftPadding - control.rightPadding
height: parent.height - control.topPadding - control.bottomPadding
- scale: control.effectiveLayoutDirection === Qt.RightToLeft ? -1 : 1
+ scale: control.mirrored ? -1 : 1
Repeater {
model: indeterminate ? 2 : 1
diff --git a/src/imports/controls/RadioButton.qml b/src/imports/controls/RadioButton.qml
index a73605ff..74fea92e 100644
--- a/src/imports/controls/RadioButton.qml
+++ b/src/imports/controls/RadioButton.qml
@@ -56,11 +56,9 @@ AbstractRadioButton {
padding: Theme.padding
indicator: Rectangle {
- readonly property bool mirror: control.effectiveLayoutDirection == Qt.RightToLeft
-
implicitWidth: 20
implicitHeight: 20
- x: text ? (mirror ? parent.width - width - control.rightPadding : control.leftPadding) : (parent.width - width) / 2
+ x: text ? (control.mirrored ? parent.width - width - control.rightPadding : control.leftPadding) : (parent.width - width) / 2
y: (parent.height - height) / 2
radius: width / 2
@@ -84,9 +82,7 @@ AbstractRadioButton {
}
label: Text {
- readonly property bool mirror: control.effectiveLayoutDirection == Qt.RightToLeft
-
- x: mirror ? control.leftPadding : (indicator.x + indicator.width + control.Theme.spacing)
+ x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.Theme.spacing)
y: control.topPadding
width: parent.width - indicator.width - control.Theme.spacing - control.leftPadding - control.rightPadding
height: parent.height - control.topPadding - control.bottomPadding
diff --git a/src/imports/controls/Slider.qml b/src/imports/controls/Slider.qml
index 284a0b2f..850791e0 100644
--- a/src/imports/controls/Slider.qml
+++ b/src/imports/controls/Slider.qml
@@ -89,7 +89,7 @@ AbstractSlider {
radius: control.Theme.roundness
border.color: control.Theme.frameColor
color: control.Theme.backgroundColor
- scale: horizontal && control.effectiveLayoutDirection === Qt.RightToLeft ? -1 : 1
+ scale: horizontal && control.mirrored ? -1 : 1
Rectangle {
x: 2
diff --git a/src/imports/controls/Switch.qml b/src/imports/controls/Switch.qml
index 518c07ad..6bc8a02d 100644
--- a/src/imports/controls/Switch.qml
+++ b/src/imports/controls/Switch.qml
@@ -57,11 +57,9 @@ AbstractSwitch {
padding: Theme.padding
indicator: Rectangle {
- readonly property bool mirror: control.effectiveLayoutDirection == Qt.RightToLeft
-
implicitWidth: 36
implicitHeight: 20
- x: text ? (mirror ? parent.width - width - control.rightPadding : control.leftPadding) : (parent.width - width) / 2
+ x: text ? (control.mirrored ? parent.width - width - control.rightPadding : control.leftPadding) : (parent.width - width) / 2
y: (parent.height - height) / 2
radius: 10
@@ -93,9 +91,7 @@ AbstractSwitch {
}
label: Text {
- readonly property bool mirror: control.effectiveLayoutDirection == Qt.RightToLeft
-
- x: mirror ? control.leftPadding : (indicator.x + indicator.width + control.Theme.spacing)
+ x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.Theme.spacing)
y: control.topPadding
width: parent.width - indicator.width - control.Theme.spacing - control.leftPadding - control.rightPadding
height: parent.height - control.topPadding - control.bottomPadding
diff --git a/src/imports/controls/ToggleButton.qml b/src/imports/controls/ToggleButton.qml
index fdf921e1..185f2eee 100644
--- a/src/imports/controls/ToggleButton.qml
+++ b/src/imports/controls/ToggleButton.qml
@@ -57,11 +57,9 @@ AbstractToggleButton {
padding: Theme.padding
indicator: Rectangle {
- readonly property bool mirror: control.effectiveLayoutDirection == Qt.RightToLeft
-
implicitWidth: 36
implicitHeight: 20
- x: text ? (mirror ? parent.width - width - control.rightPadding : control.leftPadding) : (parent.width - width) / 2
+ x: text ? (control.mirrored ? parent.width - width - control.rightPadding : control.leftPadding) : (parent.width - width) / 2
y: (parent.height - height) / 2
radius: control.Theme.roundness
@@ -92,9 +90,7 @@ AbstractToggleButton {
}
label: Text {
- readonly property bool mirror: control.effectiveLayoutDirection == Qt.RightToLeft
-
- x: mirror ? control.leftPadding : (indicator.x + indicator.width + control.Theme.spacing)
+ x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.Theme.spacing)
y: control.topPadding
width: parent.width - indicator.width - control.Theme.spacing - control.leftPadding - control.rightPadding
height: parent.height - control.topPadding - control.bottomPadding