diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-01-06 17:16:55 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-01-10 14:09:51 +0000 |
commit | 0a86cab635e66ba44dcf3866c698aa1d037acff9 (patch) | |
tree | 6d7b4eb478cb44376c02bdc518672e01fa1651f1 /src/imports/controls | |
parent | 04502964550874bef7cb35d3a6f642f8ab7c61c2 (diff) |
Editors: fix placeholder text alignment
The internal QQuickPlaceholderText creates an "implicit binding"
to the editor's horizontalAlignment, meaning that the placeholder
respects the editor's horizontal alignment when explicitly set,
and otherwise determines the alignment from the placeholder text's
visual direction.
[ChangeLog][Controls][TextField] Fixed the horizontal alignment
of the placeholder text in right-to-left UIs.
[ChangeLog][Controls][TextArea] Fixed the horizontal alignment
of the placeholder text in right-to-left UIs.
Task-number: QTBUG-55999
Change-Id: If1a8596c35c1920874996277520f1c54430c5f69
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/imports/controls')
-rw-r--r-- | src/imports/controls/TextArea.qml | 3 | ||||
-rw-r--r-- | src/imports/controls/TextField.qml | 3 | ||||
-rw-r--r-- | src/imports/controls/material/TextArea.qml | 5 | ||||
-rw-r--r-- | src/imports/controls/material/TextField.qml | 5 | ||||
-rw-r--r-- | src/imports/controls/qtquickcontrols2plugin.cpp | 2 | ||||
-rw-r--r-- | src/imports/controls/universal/TextArea.qml | 5 | ||||
-rw-r--r-- | src/imports/controls/universal/TextField.qml | 5 |
7 files changed, 16 insertions, 12 deletions
diff --git a/src/imports/controls/TextArea.qml b/src/imports/controls/TextArea.qml index 88db299b..6a80bb69 100644 --- a/src/imports/controls/TextArea.qml +++ b/src/imports/controls/TextArea.qml @@ -57,7 +57,7 @@ T.TextArea { selectionColor: Default.textSelectionColor selectedTextColor: color - Text { + PlaceholderText { id: placeholder x: control.leftPadding y: control.topPadding @@ -67,7 +67,6 @@ T.TextArea { text: control.placeholderText font: control.font color: Default.textDisabledLightColor - horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) elide: Text.ElideRight diff --git a/src/imports/controls/TextField.qml b/src/imports/controls/TextField.qml index 0f665344..1e62ac55 100644 --- a/src/imports/controls/TextField.qml +++ b/src/imports/controls/TextField.qml @@ -58,7 +58,7 @@ T.TextField { selectedTextColor: color verticalAlignment: TextInput.AlignVCenter - Text { + PlaceholderText { id: placeholder x: control.leftPadding y: control.topPadding @@ -68,7 +68,6 @@ T.TextField { text: control.placeholderText font: control.font color: Default.textDisabledColor - horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) elide: Text.ElideRight diff --git a/src/imports/controls/material/TextArea.qml b/src/imports/controls/material/TextArea.qml index 5c4f0279..19f0cca4 100644 --- a/src/imports/controls/material/TextArea.qml +++ b/src/imports/controls/material/TextArea.qml @@ -36,6 +36,8 @@ import QtQuick 2.9 import QtQuick.Templates 2.2 as T +import QtQuick.Controls 2.2 +import QtQuick.Controls.impl 2.2 import QtQuick.Controls.Material 2.2 import QtQuick.Controls.Material.impl 2.2 @@ -58,7 +60,7 @@ T.TextArea { cursorDelegate: CursorDelegate { } - Text { + PlaceholderText { id: placeholder x: control.leftPadding y: control.topPadding @@ -67,7 +69,6 @@ T.TextArea { text: control.placeholderText font: control.font color: control.Material.hintTextColor - horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment elide: Text.ElideRight visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) diff --git a/src/imports/controls/material/TextField.qml b/src/imports/controls/material/TextField.qml index eb53992b..2d707151 100644 --- a/src/imports/controls/material/TextField.qml +++ b/src/imports/controls/material/TextField.qml @@ -36,6 +36,8 @@ import QtQuick 2.9 import QtQuick.Templates 2.2 as T +import QtQuick.Controls 2.2 +import QtQuick.Controls.impl 2.2 import QtQuick.Controls.Material 2.2 import QtQuick.Controls.Material.impl 2.2 @@ -59,7 +61,7 @@ T.TextField { cursorDelegate: CursorDelegate { } - Text { + PlaceholderText { id: placeholder x: control.leftPadding y: control.topPadding @@ -68,7 +70,6 @@ T.TextField { text: control.placeholderText font: control.font color: control.Material.hintTextColor - horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment elide: Text.ElideRight visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) diff --git a/src/imports/controls/qtquickcontrols2plugin.cpp b/src/imports/controls/qtquickcontrols2plugin.cpp index 70f6879b..95ed3776 100644 --- a/src/imports/controls/qtquickcontrols2plugin.cpp +++ b/src/imports/controls/qtquickcontrols2plugin.cpp @@ -36,6 +36,7 @@ #include <QtCore/private/qfileselector_p.h> #include <QtQuickControls2/qquickstyle.h> +#include <QtQuickControls2/private/qquickplaceholdertext_p.h> #include <QtQuickControls2/private/qquickstyle_p.h> #include <QtQuickControls2/private/qquickstyleplugin_p.h> #include <QtQuickControls2/private/qquickstyleselector_p.h> @@ -163,6 +164,7 @@ void QtQuickControls2Plugin::initializeEngine(QQmlEngine *engine, const char *ur qmlRegisterType<QQuickDefaultBusyIndicator>(import, 2, 0, "BusyIndicatorImpl"); qmlRegisterType<QQuickDefaultProgressBar>(import, 2, 0, "ProgressBarImpl"); qmlRegisterType<QQuickDialRing>(import, 2, 0, "DialRing"); + qmlRegisterType<QQuickPlaceholderText>(import, 2, 2, "PlaceholderText"); qmlRegisterType<QQuickTumblerView>(import, 2, 1, "TumblerView"); qmlRegisterSingletonType<QQuickDefaultStyle>(import, 2, 1, "Default", styleSingleton); qmlRegisterType(typeUrl(QStringLiteral("CheckIndicator.qml")), import, 2, 0, "CheckIndicator"); diff --git a/src/imports/controls/universal/TextArea.qml b/src/imports/controls/universal/TextArea.qml index 2b38e678..8d931a96 100644 --- a/src/imports/controls/universal/TextArea.qml +++ b/src/imports/controls/universal/TextArea.qml @@ -36,6 +36,8 @@ import QtQuick 2.9 import QtQuick.Templates 2.2 as T +import QtQuick.Controls 2.2 +import QtQuick.Controls.impl 2.2 import QtQuick.Controls.Universal 2.2 T.TextArea { @@ -60,7 +62,7 @@ T.TextArea { selectionColor: Universal.accent selectedTextColor: Universal.chromeWhiteColor - Text { + PlaceholderText { id: placeholder x: control.leftPadding y: control.topPadding @@ -72,7 +74,6 @@ T.TextArea { color: !control.enabled ? control.Universal.chromeDisabledLowColor : control.activeFocus ? control.Universal.chromeBlackMediumLowColor : control.Universal.baseMediumColor visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) - horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment elide: Text.ElideRight } diff --git a/src/imports/controls/universal/TextField.qml b/src/imports/controls/universal/TextField.qml index 14ade06c..e28c1893 100644 --- a/src/imports/controls/universal/TextField.qml +++ b/src/imports/controls/universal/TextField.qml @@ -36,6 +36,8 @@ import QtQuick 2.9 import QtQuick.Templates 2.2 as T +import QtQuick.Controls 2.2 +import QtQuick.Controls.impl 2.2 import QtQuick.Controls.Universal 2.2 T.TextField { @@ -61,7 +63,7 @@ T.TextField { selectedTextColor: Universal.chromeWhiteColor verticalAlignment: TextInput.AlignVCenter - Text { + PlaceholderText { id: placeholder x: control.leftPadding y: control.topPadding @@ -73,7 +75,6 @@ T.TextField { color: !control.enabled ? control.Universal.chromeDisabledLowColor : control.activeFocus ? control.Universal.chromeBlackMediumLowColor : control.Universal.baseMediumColor visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) - horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment elide: Text.ElideRight } |