mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
b5f203c888
commit
e4460be8a6
2 changed files with 37 additions and 47 deletions
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue