QML UI: use action button and Android back button to save / go back

This is more consistent with the rest of our UI

To make this work you once again need changes to the mobile components
that aren't upstream, yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2016-02-13 21:09:33 -08:00
parent ae116c5bc8
commit 5952b09b51
3 changed files with 34 additions and 29 deletions

View file

@ -14,6 +14,13 @@ Item {
property string password: password.text;
property bool issave: savePassword.checked;
function saveCredentials() {
manager.cloudUserName = login.text
manager.cloudPassword = password.text
manager.saveCloudPassword = savePassword.checked
manager.saveCloudCredentials()
}
ColumnLayout {
id: outerLayout
width: subsurfaceTheme.columnWidth - 2 * MobileComponents.Units.gridUnit
@ -71,34 +78,5 @@ Item {
}
}
Item { width: MobileComponents.Units.gridUnit; height: width }
RowLayout {
Item {
height: saveButton.height
width: saveButton.width
SubsurfaceButton {
id: saveButton
text: "Save"
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"
onClicked: {
manager.credentialStatus = oldStatus
}
}
}
}
}
}

View file

@ -184,13 +184,37 @@ MobileComponents.Page {
}
}
}
property QtObject saveAction: Action {
iconName: "document-save"
onTriggered: {
startPage.saveCredentials();
}
}
onBackRequested: {
if (diveListView.count > 0 && manager.credentialStatus != QMLManager.INVALID) {
manager.credentialStatus = oldStatus
}
event.accepted = true;
}
ScrollView {
id: startPageWrapper
anchors.fill: parent
opacity: (diveListView.count > 0 && (credentialStatus == QMLManager.VALID || credentialStatus == QMLManager.VALID_EMAIL)) ? 0 : 1
visible: opacity > 0
Behavior on opacity { NumberAnimation { duration: MobileComponents.Units.shortDuration } }
onVisibleChanged: {
if (visible) {
page.mainAction = page.saveAction
} else {
page.mainAction = null
}
}
StartPage {
id: startPage
}
}
}

View file

@ -13,6 +13,8 @@ ColumnLayout {
property int buttonWidth: width * 0.9
function saveCredentials() { cloudCredentials.saveCredentials() }
MobileComponents.Heading {
Layout.bottomMargin: MobileComponents.Units.largeSpacing
text: "Subsurface-mobile"
@ -32,6 +34,7 @@ ColumnLayout {
wrapMode: Text.WordWrap
}
CloudCredentials {
id: cloudCredentials
Layout.fillWidth: true
Layout.margins: MobileComponents.Units.gridUnit
Layout.topMargin: MobileComponents.Units.gridUnit * 2