diff options
author | Marco Martin <notmart@gmail.com> | 2017-04-03 14:08:00 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-04-03 07:22:56 -0700 |
commit | e4460be8a6853ec7e77e437ae9530b8f7176c239 (patch) | |
tree | c98e94d5e188459358266194261d9f0c1e4ae8dc /mobile-widgets | |
parent | b5f203c88870fafe141be51099ed00e3ddd25451 (diff) | |
download | subsurface-e4460be8a6853ec7e77e437ae9530b8f7176c239.tar.gz |
QML UI: use a scrollable page for StartPage
Fixes scrolling of the cloud credentials and simplifies code
Signed-off-by: Marco Martin <notmart@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'mobile-widgets')
-rw-r--r-- | mobile-widgets/qml/DiveList.qml | 24 | ||||
-rw-r--r-- | mobile-widgets/qml/StartPage.qml | 60 |
2 files changed, 37 insertions, 47 deletions
diff --git a/mobile-widgets/qml/DiveList.qml b/mobile-widgets/qml/DiveList.qml index 2ae618fa1..1a49a2bfe 100644 --- a/mobile-widgets/qml/DiveList.qml +++ b/mobile-widgets/qml/DiveList.qml @@ -209,16 +209,14 @@ Kirigami.ScrollablePage { } } - Flickable { - id: startPageWrapper + StartPage { + id: startPage anchors.fill: parent opacity: credentialStatus === QMLManager.NOCLOUD || (credentialStatus === QMLManager.VALID || credentialStatus === QMLManager.VALID_EMAIL) ? 0 : 1 visible: opacity > 0 - contentWidth: width - contentHeight: startPage.height Behavior on opacity { NumberAnimation { duration: Kirigami.Units.shortDuration } } onVisibleChanged: { - print("startPageWrapper onVisibleChanged credentialStatus " + credentialStatus + " diveListView.count " + diveListView.count) + print("startPage onVisibleChanged credentialStatus " + credentialStatus + " diveListView.count " + diveListView.count) if (visible) { page.actions.main = page.saveAction page.actions.right = page.offlineAction @@ -235,16 +233,6 @@ Kirigami.ScrollablePage { title = qsTr("Dive list") } } - ScrollBar.vertical: ScrollBar { } - - StartPage { - id: startPage - } - Component.onCompleted: { - // initially we are in "no credentials" mode - page.actions.main = page.saveAction - page.actions.right = page.offlineAction - } } Text { @@ -262,7 +250,7 @@ Kirigami.ScrollablePage { ListView { id: diveListView anchors.fill: parent - opacity: 0.8 - startPageWrapper.opacity + opacity: 0.8 - startPage.opacity visible: opacity > 0 model: diveModel currentIndex: -1 @@ -304,11 +292,11 @@ Kirigami.ScrollablePage { } onBackRequested: { - if (startPageWrapper.visible && diveListView.count > 0 && manager.credentialStatus !== QMLManager.INVALID) { + if (startPage.visible && diveListView.count > 0 && manager.credentialStatus !== QMLManager.INVALID) { manager.credentialStatus = oldStatus event.accepted = true; } - if (!startPageWrapper.visible) { + if (!startPage.visible) { if (Qt.platform.os != "ios") { manager.quit() } diff --git a/mobile-widgets/qml/StartPage.qml b/mobile-widgets/qml/StartPage.qml index 26ebb0897..98d57be84 100644 --- a/mobile-widgets/qml/StartPage.qml +++ b/mobile-widgets/qml/StartPage.qml @@ -3,38 +3,40 @@ import QtQuick.Layouts 1.1 import org.kde.kirigami 2.0 as Kirigami import org.subsurfacedivelog.mobile 1.0 -ColumnLayout { + +Kirigami.ScrollablePage { id: startpage - width: subsurfaceTheme.columnWidth function saveCredentials() { cloudCredentials.saveCredentials() } - Kirigami.Label { - id: explanationText - Layout.fillWidth: true - Layout.margins: Kirigami.Units.gridUnit - Layout.topMargin: Kirigami.Units.gridUnit * 3 - text: qsTr("To use Subsurface-mobile with Subsurface cloud storage, please enter your cloud credentials.\n") + - qsTr("If this is the first time you use Subsurface cloud storage, enter a valid email (all lower case) " + - "and a password of your choice (letters and numbers). " + - "The server will send a PIN to the email address provided that you will have to enter here.\n\n") + - qsTr("To use Subsurface-mobile only with local data on this device, tap " + - "on the no cloud icon below.") - wrapMode: Text.WordWrap - } - Kirigami.Label { - id: messageArea - Layout.fillWidth: true - Layout.margins: Kirigami.Units.gridUnit - Layout.topMargin: 0 - text: manager.startPageText - wrapMode: Text.WordWrap - } - CloudCredentials { - id: cloudCredentials - Layout.fillWidth: true - Layout.margins: Kirigami.Units.gridUnit - Layout.topMargin: 0 - property int headingLevel: 3 + ColumnLayout { + Kirigami.Label { + id: explanationText + Layout.fillWidth: true + Layout.margins: Kirigami.Units.gridUnit + Layout.topMargin: Kirigami.Units.gridUnit * 3 + text: qsTr("To use Subsurface-mobile with Subsurface cloud storage, please enter your cloud credentials.\n") + + qsTr("If this is the first time you use Subsurface cloud storage, enter a valid email (all lower case) " + + "and a password of your choice (letters and numbers). " + + "The server will send a PIN to the email address provided that you will have to enter here.\n\n") + + qsTr("To use Subsurface-mobile only with local data on this device, tap " + + "on the no cloud icon below.") + wrapMode: Text.WordWrap + } + Kirigami.Label { + id: messageArea + Layout.fillWidth: true + Layout.margins: Kirigami.Units.gridUnit + Layout.topMargin: 0 + text: manager.startPageText + wrapMode: Text.WordWrap + } + CloudCredentials { + id: cloudCredentials + Layout.fillWidth: true + Layout.margins: Kirigami.Units.gridUnit + Layout.topMargin: 0 + property int headingLevel: 3 + } } } |