summaryrefslogtreecommitdiff
path: root/src/controls/Styles/Android
diff options
context:
space:
mode:
authorJani Heikkinen <jani.heikkinen@theqtcompany.com>2014-11-11 17:38:39 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-11-11 17:38:39 +0100
commit0bcb10542727e6f84459ba2779139a71effd965d (patch)
tree37320542f855e3e976cc7722a2ce24212a39a7b0 /src/controls/Styles/Android
parent313ae1c3b581a3e3a44f86793e158ba9e8eae9ab (diff)
parentd162d3b03cf5fb5c359c87ac841dd74a9909a548 (diff)
downloadqtquickcontrols-0bcb10542727e6f84459ba2779139a71effd965d.tar.gz
Merge "Merge remote-tracking branch 'origin/5.4' into 5.4.0" into refs/staging/5.4.0
Diffstat (limited to 'src/controls/Styles/Android')
-rw-r--r--src/controls/Styles/Android/ComboBoxStyle.qml9
-rw-r--r--src/controls/Styles/Android/CursorHandleStyle.qml75
-rw-r--r--src/controls/Styles/Android/SpinBoxStyle.qml9
-rw-r--r--src/controls/Styles/Android/TextFieldStyle.qml11
4 files changed, 52 insertions, 52 deletions
diff --git a/src/controls/Styles/Android/ComboBoxStyle.qml b/src/controls/Styles/Android/ComboBoxStyle.qml
index b6ff1c30..366deed5 100644
--- a/src/controls/Styles/Android/ComboBoxStyle.qml
+++ b/src/controls/Styles/Android/ComboBoxStyle.qml
@@ -37,7 +37,7 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-import QtQuick 2.2
+import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Private 1.0
@@ -70,7 +70,7 @@ Style {
readonly property real minWidth: styleDef.View_minWidth || 0
readonly property real minHeight: styleDef.View_minHeight || 0
- readonly property real labelWidth: label.implicitWidth + paddingStart + paddingEnd
+ readonly property real labelWidth: Math.max(label.implicitWidth, metrics.width) + paddingStart + paddingEnd
readonly property real labelHeight: label.implicitHeight + bg.padding.top + bg.padding.bottom
implicitWidth: Math.max(minWidth, Math.max(bg.implicitWidth, labelWidth))
@@ -85,6 +85,11 @@ Style {
styleDef: panel.styleDef.View_background
}
+ TextMetrics {
+ id: metrics
+ text: "12345678901234567890"
+ }
+
LabelStyle {
id: label
text: control.currentText
diff --git a/src/controls/Styles/Android/CursorHandleStyle.qml b/src/controls/Styles/Android/CursorHandleStyle.qml
index 97b9fe85..e9d08f8e 100644
--- a/src/controls/Styles/Android/CursorHandleStyle.qml
+++ b/src/controls/Styles/Android/CursorHandleStyle.qml
@@ -45,66 +45,51 @@ import "drawables"
DrawableLoader {
id: delegate
- property bool active: false
+
+ property bool hasText: !!editor.text || !!editor.displayText
+
styleDef: styleData.hasSelection ? AndroidStyle.styleDef.textViewStyle.TextView_textSelectHandleRight
: AndroidStyle.styleDef.textViewStyle.TextView_textSelectHandle
x: styleData.hasSelection ? -width / 4 : -width / 2
y: styleData.lineHeight
- opacity: 1.0
pressed: styleData.pressed
focused: control.activeFocus
window_focused: focused && control.Window.active
- Connections {
- target: editor
- ignoreUnknownSignals: true
- onDisplayTextChanged: {
- delegate.state = "hidden"
- }
+ opacity: hasText && (styleData.hasSelection || styleData.pressed || idle.running) ? 1.0 : 0.0
+
+ Timer {
+ id: idle
+ repeat: false
+ interval: 4000
}
Connections {
target: styleData
- onActivated: {
- if (editor.text) {
- delegate.active = true
- delegate.opacity = 1.0
- delegate.state = ""
- if (!styleData.hasSelection)
- delegate.state = "idle"
- }
+ onActivated: idle.restart()
+ onPressedChanged: {
+ if (!styleData.pressed)
+ idle.restart()
}
}
- state: "hidden"
-
- states: [
- State {
- name: "hidden"
- when: editor.inputMethodComposing && !delegate.active && !editor.text
- },
- State {
- name: "idle"
- when: !styleData.hasSelection && !styleData.pressed
- }
- ]
+ // Hide the cursor handle on textual changes, unless the signals are
+ // indirectly triggered by activating/tapping/moving the handle. When
+ // text prediction is enabled, the textual content may change when the
+ // cursor moves and the predicted text is committed.
+ Connections {
+ target: editor
+ ignoreUnknownSignals: true
+ onTextChanged: if (!ignore.running) idle.stop()
+ onDisplayTextChanged: if (!ignore.running) idle.stop()
+ onInputMethodComposing: if (!ignore.running) idle.stop()
+ }
- transitions: [
- Transition {
- to: "hidden"
- SequentialAnimation {
- PauseAnimation { duration: 100 }
- PropertyAction { target: delegate; property: "opacity"; value: 0.0 }
- }
- },
- Transition {
- to: "idle"
- SequentialAnimation {
- PauseAnimation { duration: 4000 }
- NumberAnimation { target: delegate; property: "opacity"; to: 0.0 }
- PropertyAction { target: delegate; property: "active"; value: false }
- }
- }
- ]
+ Timer {
+ id: ignore
+ repeat: false
+ interval: 250
+ running: idle.running
+ }
}
diff --git a/src/controls/Styles/Android/SpinBoxStyle.qml b/src/controls/Styles/Android/SpinBoxStyle.qml
index 5c05774f..0e5df3fd 100644
--- a/src/controls/Styles/Android/SpinBoxStyle.qml
+++ b/src/controls/Styles/Android/SpinBoxStyle.qml
@@ -37,7 +37,7 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-import QtQuick 2.2
+import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Private 1.0
@@ -58,7 +58,7 @@ Style {
readonly property real contentWidth: Math.max(styleDef.View_minWidth || 0, styleData.contentWidth)
readonly property real contentHeight: Math.max(styleDef.View_minHeight || 0, styleData.contentHeight)
- readonly property real labelWidth: label.implicitWidth + bg.padding.left + bg.padding.right
+ readonly property real labelWidth: Math.max(label.implicitWidth, metrics.width) + bg.padding.left + bg.padding.right
readonly property real labelHeight: label.implicitHeight + bg.padding.top + bg.padding.bottom
implicitWidth: Math.max(contentWidth, Math.max(bg.implicitWidth, labelWidth))
@@ -88,6 +88,11 @@ Style {
readonly property int horizontalAlignment: Qt.AlignLeft
readonly property int verticalAlignment: Qt.AlignVCenter
+ TextMetrics {
+ id: metrics
+ text: "12345678901234567890"
+ }
+
LabelStyle {
id: label
visible: false
diff --git a/src/controls/Styles/Android/TextFieldStyle.qml b/src/controls/Styles/Android/TextFieldStyle.qml
index 67cd3b78..0edc5c90 100644
--- a/src/controls/Styles/Android/TextFieldStyle.qml
+++ b/src/controls/Styles/Android/TextFieldStyle.qml
@@ -37,7 +37,7 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-import QtQuick 2.2
+import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Private 1.0
@@ -56,7 +56,7 @@ Style {
readonly property real minWidth: styleDef.View_minWidth || 0
readonly property real minHeight: styleDef.View_minHeight || 0
- readonly property real labelWidth: label.implicitWidth + bg.padding.left + bg.padding.right
+ readonly property real labelWidth: Math.max(label.implicitWidth, metrics.width) + bg.padding.left + bg.padding.right
readonly property real labelHeight: label.implicitHeight + bg.padding.top + bg.padding.bottom
implicitWidth: Math.max(minWidth, Math.max(bg.implicitWidth, labelWidth))
@@ -81,10 +81,15 @@ Style {
readonly property alias selectionColor: label.selectionColor
readonly property color selectedTextColor: label.selectedTextColor
+ TextMetrics {
+ id: metrics
+ text: "12345678901234567890"
+ }
+
LabelStyle {
id: label
visible: false
- text: control.text
+ text: control.text || control.placeholderText
focused: control.activeFocus
window_focused: focused && control.Window.active
styleDef: panel.styleDef