subsurface/qt-mobile/qml/CloudCredentials.qml
Dirk Hohndel 38f7fd6fbe QML UI: allow changing credentials
With the integration of the credentials into the start page the logic for
this has changed.
Since the code for start page and dive list is actually on the same page,
using opacity to switch between the two sub pages (depending on whether we
have valid credentials and dives to show), the old way of changing
credentials no longer worked.
With theis patch the user once again can change their credentials (and
change their mind and go back to the dive list).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 21:05:23 -08:00

107 lines
2.3 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
signal accept
property string username: login.text;
property string password: password.text;
property bool issave: savePassword.checked;
ColumnLayout {
width: subsurfaceTheme.columnWidth - 2 * MobileComponents.Units.gridUnit
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"
}
CheckBox {
checked: manager.saveCloudPassword
id: savePassword
}
MobileComponents.Label {
text: "Remember"
}
}
Item { width: MobileComponents.Units.gridUnit; height: width }
Item {
height: saveButton.height
width: saveButton.width
SubsurfaceButton {
id: saveButton
text: "Save"
anchors.centerIn: parent
onClicked: {
manager.cloudUserName = login.text
manager.cloudPassword = password.text
manager.saveCloudPassword = savePassword.checked
manager.saveCloudCredentials()
}
}
}
Item {
height: backButton.height
width: backButton.width
visible: diveListView.count > 0 && manager.credentialStatus != QMLManager.INVALID
SubsurfaceButton {
id: backButton
text: "Back to dive list"
anchors.centerIn: parent
onClicked: {
manager.credentialStatus = oldStatus
}
}
}
Item {
Layout.fillHeight: true
}
}
}