subsurface/mobile-widgets/qml/CloudCredentials.qml
Jan Mulder bb7dcc25c7 QML UI: remove "show password" switch and only show pw on first entry
Like the subject says. We do not want the password to be made
visible, so a switch to show it, is useless and is therefore
removed. Futher, the entry mode is set to PasswordEchoOnEdit,
which causes the passwd to be visible (for easy entry), but
can't be made visible again after save/end edit.

Fixes: #512

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-07-26 22:30:43 +09:00

104 lines
2.4 KiB
QML

// SPDX-License-Identifier: GPL-2.0
import QtQuick 2.3
import QtQuick.Controls 2.0
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import org.kde.kirigami 2.0 as Kirigami
import org.subsurfacedivelog.mobile 1.0
Item {
id: loginWindow
height: outerLayout.height
property string username: login.text;
property string password: password.text;
property real gridWidth: loginWindow.width - Kirigami.Units.gridUnit
property real col1Width: gridWidth * 0.80
property real col2Width: gridWidth * 0.20
function saveCredentials() {
manager.cloudUserName = login.text
manager.cloudPassword = password.text
manager.cloudPin = pin.text
manager.saveCloudCredentials()
}
ColumnLayout {
id: outerLayout
width: loginWindow.width - loginWindow.leftPadding - loginWindow.rightPadding - 2 * Kirigami.Units.gridUnit
function goToNext() {
for (var i = 0; i < children.length; ++i)
if (children[i].focus) {
children[i].nextItemInFocusChain().forceActiveFocus()
break
}
}
Keys.onReturnPressed: goToNext()
Keys.onTabPressed: goToNext()
onVisibleChanged: {
if (visible && manager.accessingCloud < 0) {
manager.appendTextToLog("Credential scrn: show kbd was: " + (Qt.inputMethod.isVisible ? "visible" : "invisible"))
Qt.inputMethod.show()
login.forceActiveFocus()
} else {
manager.appendTextToLog("Credential scrn: hide kbd was: " + (Qt.inputMethod.isVisible ? "visible" : "invisible"))
Qt.inputMethod.hide()
}
}
Kirigami.Heading {
text: qsTr("Cloud credentials")
level: headingLevel
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
}
Kirigami.Label {
text: qsTr("Email")
}
TextField {
id: login
text: manager.cloudUserName
Layout.fillWidth: true
inputMethodHints: Qt.ImhEmailCharactersOnly |
Qt.ImhNoAutoUppercase
onEditingFinished: {
saveCredentials()
}
}
Kirigami.Label {
text: qsTr("Password")
}
TextField {
id: password
text: manager.cloudPassword
echoMode: TextInput.PasswordEchoOnEdit
inputMethodHints: Qt.ImhSensitiveData |
Qt.ImhHiddenText |
Qt.ImhNoAutoUppercase
Layout.fillWidth: true
onEditingFinished: {
saveCredentials()
}
}
Kirigami.Label {
text: qsTr("PIN")
visible: rootItem.showPin
}
TextField {
id: pin
text: ""
Layout.fillWidth: true
visible: rootItem.showPin
}
}
}