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 {
|
StartPage {
|
||||||
id: startPageWrapper
|
id: startPage
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
opacity: credentialStatus === QMLManager.NOCLOUD || (credentialStatus === QMLManager.VALID || credentialStatus === QMLManager.VALID_EMAIL) ? 0 : 1
|
opacity: credentialStatus === QMLManager.NOCLOUD || (credentialStatus === QMLManager.VALID || credentialStatus === QMLManager.VALID_EMAIL) ? 0 : 1
|
||||||
visible: opacity > 0
|
visible: opacity > 0
|
||||||
contentWidth: width
|
|
||||||
contentHeight: startPage.height
|
|
||||||
Behavior on opacity { NumberAnimation { duration: Kirigami.Units.shortDuration } }
|
Behavior on opacity { NumberAnimation { duration: Kirigami.Units.shortDuration } }
|
||||||
onVisibleChanged: {
|
onVisibleChanged: {
|
||||||
print("startPageWrapper onVisibleChanged credentialStatus " + credentialStatus + " diveListView.count " + diveListView.count)
|
print("startPage onVisibleChanged credentialStatus " + credentialStatus + " diveListView.count " + diveListView.count)
|
||||||
if (visible) {
|
if (visible) {
|
||||||
page.actions.main = page.saveAction
|
page.actions.main = page.saveAction
|
||||||
page.actions.right = page.offlineAction
|
page.actions.right = page.offlineAction
|
||||||
|
@ -235,16 +233,6 @@ Kirigami.ScrollablePage {
|
||||||
title = qsTr("Dive list")
|
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 {
|
Text {
|
||||||
|
@ -262,7 +250,7 @@ Kirigami.ScrollablePage {
|
||||||
ListView {
|
ListView {
|
||||||
id: diveListView
|
id: diveListView
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
opacity: 0.8 - startPageWrapper.opacity
|
opacity: 0.8 - startPage.opacity
|
||||||
visible: opacity > 0
|
visible: opacity > 0
|
||||||
model: diveModel
|
model: diveModel
|
||||||
currentIndex: -1
|
currentIndex: -1
|
||||||
|
@ -304,11 +292,11 @@ Kirigami.ScrollablePage {
|
||||||
}
|
}
|
||||||
|
|
||||||
onBackRequested: {
|
onBackRequested: {
|
||||||
if (startPageWrapper.visible && diveListView.count > 0 && manager.credentialStatus !== QMLManager.INVALID) {
|
if (startPage.visible && diveListView.count > 0 && manager.credentialStatus !== QMLManager.INVALID) {
|
||||||
manager.credentialStatus = oldStatus
|
manager.credentialStatus = oldStatus
|
||||||
event.accepted = true;
|
event.accepted = true;
|
||||||
}
|
}
|
||||||
if (!startPageWrapper.visible) {
|
if (!startPage.visible) {
|
||||||
if (Qt.platform.os != "ios") {
|
if (Qt.platform.os != "ios") {
|
||||||
manager.quit()
|
manager.quit()
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,38 +3,40 @@ import QtQuick.Layouts 1.1
|
||||||
import org.kde.kirigami 2.0 as Kirigami
|
import org.kde.kirigami 2.0 as Kirigami
|
||||||
import org.subsurfacedivelog.mobile 1.0
|
import org.subsurfacedivelog.mobile 1.0
|
||||||
|
|
||||||
ColumnLayout {
|
|
||||||
|
Kirigami.ScrollablePage {
|
||||||
id: startpage
|
id: startpage
|
||||||
width: subsurfaceTheme.columnWidth
|
|
||||||
|
|
||||||
function saveCredentials() { cloudCredentials.saveCredentials() }
|
function saveCredentials() { cloudCredentials.saveCredentials() }
|
||||||
|
|
||||||
Kirigami.Label {
|
ColumnLayout {
|
||||||
id: explanationText
|
Kirigami.Label {
|
||||||
Layout.fillWidth: true
|
id: explanationText
|
||||||
Layout.margins: Kirigami.Units.gridUnit
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: Kirigami.Units.gridUnit * 3
|
Layout.margins: Kirigami.Units.gridUnit
|
||||||
text: qsTr("To use Subsurface-mobile with Subsurface cloud storage, please enter your cloud credentials.\n") +
|
Layout.topMargin: Kirigami.Units.gridUnit * 3
|
||||||
qsTr("If this is the first time you use Subsurface cloud storage, enter a valid email (all lower case) " +
|
text: qsTr("To use Subsurface-mobile with Subsurface cloud storage, please enter your cloud credentials.\n") +
|
||||||
"and a password of your choice (letters and numbers). " +
|
qsTr("If this is the first time you use Subsurface cloud storage, enter a valid email (all lower case) " +
|
||||||
"The server will send a PIN to the email address provided that you will have to enter here.\n\n") +
|
"and a password of your choice (letters and numbers). " +
|
||||||
qsTr("To use Subsurface-mobile only with local data on this device, tap " +
|
"The server will send a PIN to the email address provided that you will have to enter here.\n\n") +
|
||||||
"on the no cloud icon below.")
|
qsTr("To use Subsurface-mobile only with local data on this device, tap " +
|
||||||
wrapMode: Text.WordWrap
|
"on the no cloud icon below.")
|
||||||
}
|
wrapMode: Text.WordWrap
|
||||||
Kirigami.Label {
|
}
|
||||||
id: messageArea
|
Kirigami.Label {
|
||||||
Layout.fillWidth: true
|
id: messageArea
|
||||||
Layout.margins: Kirigami.Units.gridUnit
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 0
|
Layout.margins: Kirigami.Units.gridUnit
|
||||||
text: manager.startPageText
|
Layout.topMargin: 0
|
||||||
wrapMode: Text.WordWrap
|
text: manager.startPageText
|
||||||
}
|
wrapMode: Text.WordWrap
|
||||||
CloudCredentials {
|
}
|
||||||
id: cloudCredentials
|
CloudCredentials {
|
||||||
Layout.fillWidth: true
|
id: cloudCredentials
|
||||||
Layout.margins: Kirigami.Units.gridUnit
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 0
|
Layout.margins: Kirigami.Units.gridUnit
|
||||||
property int headingLevel: 3
|
Layout.topMargin: 0
|
||||||
|
property int headingLevel: 3
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue