From 929a87255d3e92a3b49299104d53f041c1d4f5a3 Mon Sep 17 00:00:00 2001 From: Rainer Keller Date: Tue, 13 May 2014 08:51:52 +0200 Subject: Change text input demo to match virtual keyboard 1.0 API Change-Id: I331138272037cd627e74cbcb7fd5cca99e019fb6 Reviewed-by: Kalle Viironen --- basicsuite/textinput/TextArea.qml | 7 +++--- basicsuite/textinput/TextBase.qml | 4 +++- basicsuite/textinput/TextField.qml | 14 +++++++++-- basicsuite/textinput/main.qml | 49 +++++++++++++++++++++++++++++++++----- 4 files changed, 62 insertions(+), 12 deletions(-) (limited to 'basicsuite/textinput') diff --git a/basicsuite/textinput/TextArea.qml b/basicsuite/textinput/TextArea.qml index 6832356..89cdc9f 100644 --- a/basicsuite/textinput/TextArea.qml +++ b/basicsuite/textinput/TextArea.qml @@ -40,6 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 +import QtQuick.Enterprise.VirtualKeyboard 1.0 TextBase { id: textArea @@ -64,8 +65,9 @@ TextBase { TextEdit { id: textEdit - property alias enterKeyText: textArea.enterKeyText - property alias enterKeyEnabled: textArea.enterKeyEnabled + EnterKeyAction.actionId: textArea.enterKeyAction + EnterKeyAction.label: textArea.enterKeyText + EnterKeyAction.enabled: textArea.enterKeyEnabled y: 6 focus: true @@ -77,7 +79,6 @@ TextBase { selectionColor: Qt.rgba(1.0, 1.0, 1.0, 0.5) selectedTextColor: Qt.rgba(0.0, 0.0, 0.0, 0.8) anchors { left: parent.left; right: parent.right; margins: 12 } - onActiveFocusChanged: if (!activeFocus) deselect() } } diff --git a/basicsuite/textinput/TextBase.qml b/basicsuite/textinput/TextBase.qml index 916b3e2..fc399a8 100644 --- a/basicsuite/textinput/TextBase.qml +++ b/basicsuite/textinput/TextBase.qml @@ -40,6 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 +import QtQuick.Enterprise.VirtualKeyboard 1.0 FocusScope { id: textBase @@ -48,8 +49,9 @@ FocusScope { property bool previewTextActive: !editor.activeFocus && text.length === 0 property int fontPixelSize: 32 property string previewText + property int enterKeyAction: EnterKeyAction.None property string enterKeyText - property bool enterKeyEnabled: enterKeyText.length === 0 || editor.text.length > 0 || editor.inputMethodComposing + property bool enterKeyEnabled: enterKeyAction === EnterKeyAction.None || editor.text.length > 0 || editor.inputMethodComposing property alias mouseParent: mouseArea.parent implicitHeight: editor.height + 12 diff --git a/basicsuite/textinput/TextField.qml b/basicsuite/textinput/TextField.qml index e95ded7..b3671d7 100644 --- a/basicsuite/textinput/TextField.qml +++ b/basicsuite/textinput/TextField.qml @@ -40,6 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 +import QtQuick.Enterprise.VirtualKeyboard 1.0 TextBase { id: textField @@ -51,6 +52,7 @@ TextBase { property alias inputMethodHints: textInput.inputMethodHints property alias validator: textInput.validator property alias echoMode: textInput.echoMode + property int passwordMaskDelay: 1000 editor: textInput mouseParent: flickable @@ -70,8 +72,9 @@ TextBase { TextInput { id: textInput - property alias enterKeyText: textField.enterKeyText - property alias enterKeyEnabled: textField.enterKeyEnabled + EnterKeyAction.actionId: textField.enterKeyAction + EnterKeyAction.label: textField.enterKeyText + EnterKeyAction.enabled: textField.enterKeyEnabled y: 6 focus: true @@ -83,6 +86,13 @@ TextBase { selectedTextColor: Qt.rgba(0.0, 0.0, 0.0, 0.8) width: Math.max(flickable.width, implicitWidth)-2 onActiveFocusChanged: if (!activeFocus) deselect() + + Binding { + target: textInput + property: "passwordMaskDelay" + value: textField.passwordMaskDelay + when: textInput.hasOwnProperty("passwordMaskDelay") + } } } } diff --git a/basicsuite/textinput/main.qml b/basicsuite/textinput/main.qml index 70455bf..bcb48d9 100644 --- a/basicsuite/textinput/main.qml +++ b/basicsuite/textinput/main.qml @@ -40,6 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 +import QtQuick.Enterprise.VirtualKeyboard 1.0 Flickable { id: flickable @@ -76,27 +77,63 @@ Flickable { TextField { width: parent.width previewText: "One line field" - enterKeyText: "Next" + enterKeyAction: EnterKeyAction.Next onEnterKeyClicked: passwordField.focus = true } TextField { id: passwordField width: parent.width - echoMode: TextInput.PasswordEchoOnEdit + echoMode: TextInput.Password previewText: "Password field" inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhPreferLowercase | Qt.ImhSensitiveData | Qt.ImhNoPredictiveText - enterKeyText: "Next" - onEnterKeyClicked: numberField.focus = true + enterKeyAction: EnterKeyAction.Next + onEnterKeyClicked: upperCaseField.focus = true } TextField { - id: numberField + id: upperCaseField + + width: parent.width + previewText: "Upper case field" + inputMethodHints: Qt.ImhUppercaseOnly + enterKeyAction: EnterKeyAction.Next + onEnterKeyClicked: lowerCaseField.focus = true + } + TextField { + id: lowerCaseField + + width: parent.width + previewText: "Lower case field" + inputMethodHints: Qt.ImhLowercaseOnly + enterKeyAction: EnterKeyAction.Next + onEnterKeyClicked: phoneNumberField.focus = true + } + TextField { + id: phoneNumberField validator: RegExpValidator { regExp: /^[0-9\+\-\#\*\ ]{6,}$/ } width: parent.width previewText: "Phone number field" inputMethodHints: Qt.ImhDialableCharactersOnly - enterKeyText: "Next" + enterKeyAction: EnterKeyAction.Next + onEnterKeyClicked: formattedNumberField.focus = true + } + TextField { + id: formattedNumberField + + width: parent.width + previewText: "Formatted number field" + inputMethodHints: Qt.ImhFormattedNumbersOnly + enterKeyAction: EnterKeyAction.Next + onEnterKeyClicked: digitsField.focus = true + } + TextField { + id: digitsField + + width: parent.width + previewText: "Digits only field" + inputMethodHints: Qt.ImhDigitsOnly + enterKeyAction: EnterKeyAction.Next onEnterKeyClicked: textArea.focus = true } TextArea { -- cgit v1.2.3