aboutsummaryrefslogtreecommitdiffstats
path: root/mobile-widgets
diff options
context:
space:
mode:
authorGravatar Marco Martin <notmart@gmail.com>2017-04-03 14:08:00 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-04-03 07:22:56 -0700
commite4460be8a6853ec7e77e437ae9530b8f7176c239 (patch)
treec98e94d5e188459358266194261d9f0c1e4ae8dc /mobile-widgets
parentb5f203c88870fafe141be51099ed00e3ddd25451 (diff)
downloadsubsurface-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.qml24
-rw-r--r--mobile-widgets/qml/StartPage.qml60
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
+ }
}
}