Changeset e4460be in subsurface


Ignore:
Timestamp:
Apr 3, 2017, 7:22:56 AM (5 months ago)
Author:
Dirk Hohndel <dirk@…>
Branches:
master
Children:
8c94fa2
Parents:
b5f203c
git-author:
Marco Martin <notmart@…> (04/03/17 05:08:00)
git-committer:
Dirk Hohndel <dirk@…> (04/03/17 07:22:56)
Message:

QML UI: use a scrollable page for StartPage?

Fixes scrolling of the cloud credentials and simplifies code

Signed-off-by: Marco Martin <notmart@…>
Signed-off-by: Dirk Hohndel <dirk@…>

Location:
mobile-widgets/qml
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • mobile-widgets/qml/DiveList.qml

    r751626e re4460be  
    210210        }
    211211
    212         Flickable {
    213                 id: startPageWrapper
     212        StartPage {
     213                id: startPage
    214214                anchors.fill: parent
    215215                opacity: credentialStatus === QMLManager.NOCLOUD || (credentialStatus === QMLManager.VALID || credentialStatus === QMLManager.VALID_EMAIL) ? 0 : 1
    216216                visible: opacity > 0
    217                 contentWidth: width
    218                 contentHeight: startPage.height
    219217                Behavior on opacity { NumberAnimation { duration: Kirigami.Units.shortDuration } }
    220218                onVisibleChanged: {
    221                         print("startPageWrapper onVisibleChanged credentialStatus " + credentialStatus + " diveListView.count " + diveListView.count)
     219                        print("startPage onVisibleChanged credentialStatus " + credentialStatus + " diveListView.count " + diveListView.count)
    222220                        if (visible) {
    223221                                page.actions.main = page.saveAction
     
    236234                        }
    237235                }
    238                 ScrollBar.vertical: ScrollBar { }
    239 
    240                 StartPage {
    241                         id: startPage
    242                 }
    243                 Component.onCompleted: {
    244                         // initially we are in "no credentials" mode
    245                         page.actions.main = page.saveAction
    246                         page.actions.right = page.offlineAction
    247                 }
    248236        }
    249237
     
    263251                id: diveListView
    264252                anchors.fill: parent
    265                 opacity: 0.8 - startPageWrapper.opacity
     253                opacity: 0.8 - startPage.opacity
    266254                visible: opacity > 0
    267255                model: diveModel
     
    305293
    306294        onBackRequested: {
    307                 if (startPageWrapper.visible && diveListView.count > 0 && manager.credentialStatus !== QMLManager.INVALID) {
     295                if (startPage.visible && diveListView.count > 0 && manager.credentialStatus !== QMLManager.INVALID) {
    308296                        manager.credentialStatus = oldStatus
    309297                        event.accepted = true;
    310298                }
    311                 if (!startPageWrapper.visible) {
     299                if (!startPage.visible) {
    312300                        if (Qt.platform.os != "ios") {
    313301                                manager.quit()
  • mobile-widgets/qml/StartPage.qml

    r751626e re4460be  
    44import org.subsurfacedivelog.mobile 1.0
    55
    6 ColumnLayout {
     6
     7Kirigami.ScrollablePage {
    78        id: startpage
    8         width: subsurfaceTheme.columnWidth
    99
    1010        function saveCredentials() { cloudCredentials.saveCredentials() }
    1111
    12         Kirigami.Label {
    13                 id: explanationText
    14                 Layout.fillWidth: true
    15                 Layout.margins: Kirigami.Units.gridUnit
    16                 Layout.topMargin: Kirigami.Units.gridUnit * 3
    17                 text: qsTr("To use Subsurface-mobile with Subsurface cloud storage, please enter your cloud credentials.\n") +
    18                       qsTr("If this is the first time you use Subsurface cloud storage, enter a valid email (all lower case) " +
    19                            "and a password of your choice (letters and numbers). " +
    20                            "The server will send a PIN to the email address provided that you will have to enter here.\n\n") +
    21                       qsTr("To use Subsurface-mobile only with local data on this device, tap " +
    22                            "on the no cloud icon below.")
    23                 wrapMode: Text.WordWrap
    24         }
    25         Kirigami.Label {
    26                 id: messageArea
    27                 Layout.fillWidth: true
    28                 Layout.margins: Kirigami.Units.gridUnit
    29                 Layout.topMargin: 0
    30                 text: manager.startPageText
    31                 wrapMode: Text.WordWrap
    32         }
    33         CloudCredentials {
    34                 id: cloudCredentials
    35                 Layout.fillWidth: true
    36                 Layout.margins: Kirigami.Units.gridUnit
    37                 Layout.topMargin: 0
    38                 property int headingLevel: 3
     12        ColumnLayout {
     13                Kirigami.Label {
     14                        id: explanationText
     15                        Layout.fillWidth: true
     16                        Layout.margins: Kirigami.Units.gridUnit
     17                        Layout.topMargin: Kirigami.Units.gridUnit * 3
     18                        text: qsTr("To use Subsurface-mobile with Subsurface cloud storage, please enter your cloud credentials.\n") +
     19                                qsTr("If this is the first time you use Subsurface cloud storage, enter a valid email (all lower case) " +
     20                                "and a password of your choice (letters and numbers). " +
     21                                "The server will send a PIN to the email address provided that you will have to enter here.\n\n") +
     22                                qsTr("To use Subsurface-mobile only with local data on this device, tap " +
     23                                "on the no cloud icon below.")
     24                        wrapMode: Text.WordWrap
     25                }
     26                Kirigami.Label {
     27                        id: messageArea
     28                        Layout.fillWidth: true
     29                        Layout.margins: Kirigami.Units.gridUnit
     30                        Layout.topMargin: 0
     31                        text: manager.startPageText
     32                        wrapMode: Text.WordWrap
     33                }
     34                CloudCredentials {
     35                        id: cloudCredentials
     36                        Layout.fillWidth: true
     37                        Layout.margins: Kirigami.Units.gridUnit
     38                        Layout.topMargin: 0
     39                        property int headingLevel: 3
     40                }
    3941        }
    4042}
Note: See TracChangeset for help on using the changeset viewer.