subsurface/qt-mobile/qml/CloudCredentials.qml
Dirk Hohndel 7434e4213b QML UI: show keyboard when entering credential screen
If the user goes to the credentials screen, they likely want to edit
something.  So put the focus on the first entry field and show the
keyboard.

We also need to hide the keyboard when the credential screen becomes
invisble so that the keyboard doesn't stay around when the dive list
is shown.

Suggested-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-26 21:49:19 -07:00

83 lines
1.8 KiB
QML

import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
import org.subsurfacedivelog.mobile 1.0
Item {
id: loginWindow
height: outerLayout.height + 2 * MobileComponents.Units.gridUnit
property string username: login.text;
property string password: password.text;
property bool issave: savePassword.checked;
function saveCredentials() {
manager.cloudUserName = login.text
manager.cloudPassword = password.text
manager.saveCloudCredentials()
}
ColumnLayout {
id: outerLayout
width: subsurfaceTheme.columnWidth - 2 * MobileComponents.Units.gridUnit
onVisibleChanged: {
if (visible) {
Qt.inputMethod.show()
login.forceActiveFocus()
} else {
Qt.inputMethod.hide()
}
}
MobileComponents.Heading {
text: "Cloud credentials"
level: headingLevel
Layout.bottomMargin: MobileComponents.Units.largeSpacing / 2
}
MobileComponents.Label {
text: "Email"
}
TextField {
id: login
text: manager.cloudUserName
Layout.fillWidth: true
inputMethodHints: Qt.ImhEmailCharactersOnly |
Qt.ImhNoAutoUppercase
}
MobileComponents.Label {
text: "Password"
}
TextField {
id: password
text: manager.cloudPassword
echoMode: TextInput.Password
inputMethodHints: Qt.ImhSensitiveData |
Qt.ImhHiddenText |
Qt.ImhNoAutoUppercase
Layout.fillWidth: true
}
GridLayout {
columns: 2
CheckBox {
checked: false
id: showPassword
onCheckedChanged: {
password.echoMode = checked ? TextInput.Normal : TextInput.Password
}
}
MobileComponents.Label {
text: "Show password"
}
}
Item { width: MobileComponents.Units.gridUnit; height: width }
}
}