source: subsurface/mobile-widgets/qml/DownloadFromDiveComputer.qml @ 3f0d210

Last change on this file since 3f0d210 was 3f0d210, checked in by Dirk Hohndel <dirk@…>, 7 months ago

QML UI: add downloaded dives to dive list

This already takes into account which of those dives were selected.
Right now all we have is select all or none - this needs actual support
in the UI, but once that's there, it will just work (famous last words).

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

  • Property mode set to 100644
File size: 3.3 KB
Line 
1// SPDX-License-Identifier: GPL-2.0
2import QtQuick 2.6
3import QtQuick.Controls 1.4 as QQC1
4import QtQuick.Controls 2.0
5import QtQuick.Window 2.2
6import QtQuick.Dialogs 1.2
7import QtQuick.Layouts 1.3
8import org.subsurfacedivelog.mobile 1.0
9import org.kde.kirigami 2.0 as Kirigami
10
11Kirigami.Page {
12        id: diveComputerDownloadWindow
13        anchors.top:parent.top
14        width: parent.width
15        height: parent.height
16        Layout.fillWidth: true;
17        title: qsTr("Dive Computer")
18
19        DCDownloadThread {
20                id: downloadThread
21                deviceData.vendor : comboVendor.currentText
22                deviceData.product : comboProduct.currentText
23
24                //TODO: make this dynamic?
25                deviceData.devName : "/tmp/ttyS1"
26
27                //TODO: Make this the default on the C++
28                deviceData.bluetoothMode : false
29                deviceData.forceDownload : false
30                deviceData.createNewTrip : false
31                deviceData.deviceId : 0
32                deviceData.diveId : 0
33                deviceData.saveDump : false
34                deviceData.saveLog : false
35
36                onFinished : {
37                        importModel.repopulate()
38                        acceptButton.enabled = true
39                        manager.appendTextToLog("DCDownloadThread finished")
40                }
41        }
42
43        DCImportModel {
44                id: importModel
45        }
46
47        ColumnLayout {
48                anchors.top: parent.top
49                height: parent.height
50                width: parent.width
51                Layout.fillWidth: true
52                GridLayout {
53                        columns: 2
54                        Kirigami.Label { text: qsTr(" Vendor name: ") }
55                        ComboBox {
56                                id: comboVendor
57                                Layout.fillWidth: true
58                                model: vendorList
59                        }
60                        Kirigami.Label { text: qsTr(" Dive Computer:") }
61                        ComboBox {
62                                id: comboProduct
63                                Layout.fillWidth: true
64                                model: manager.getDCListFromVendor(comboVendor.currentText)
65                        }
66                }
67
68                ProgressBar {
69                        Layout.fillWidth: true
70                        visible: false
71                }
72
73                RowLayout {
74                        Button {
75                                text: qsTr("Download")
76                                onClicked: {
77                                        text: qsTr("Retry")
78                                        manager.appendTextToLog("DCDownloadThread started")
79                                        downloadThread.start()
80                                }
81                        }
82                        Button {
83                                id:quitbutton
84                                text: qsTr("Quit")
85                                onClicked: {
86                                        manager.appendTextToLog("exit DCDownload screen")
87                                        stackView.pop();
88                                }
89                        }
90                }
91                RowLayout {
92                        Kirigami.Label {
93                                text: qsTr(" Downloaded dives")
94                        }
95                }
96                QQC1.TableView {
97                        width: parent.width
98                        Layout.fillWidth: true  // The tableview should fill
99                        Layout.fillHeight: true // all remaining vertical space
100                        height: parent.height   // on this screen
101                        model : importModel
102
103                        QQC1.TableViewColumn {
104                                width: parent.width / 2
105                                role: "datetime"
106                                title: qsTr("Date / Time")
107                        }
108                        QQC1.TableViewColumn {
109                                width: parent.width / 4
110                                role: "duration"
111                                title: qsTr("Duration")
112                        }
113                        QQC1.TableViewColumn {
114                                width: parent.width / 4
115                                role: "depth"
116                                title: qsTr("Depth")
117                        }
118                }
119                RowLayout {
120                        Layout.fillWidth: true
121                        Button {
122                                id: acceptButton
123                                text: qsTr("Accept")
124                                enabled: false
125                                onClicked: {
126                                        manager.appendTextToLog("Save downloaded dives that were selected")
127                                        importModel.recordDives()
128                                        manager.saveChangesLocal()
129                                        diveModel.clear()
130                                        diveModel.addAllDives()
131                                        stackView.pop();
132                                }
133                        }
134                        Kirigami.Label {
135                                text: ""  // Spacer between 2 button groups
136                                Layout.fillWidth: true
137                        }
138                        Button {
139                                text: qsTr("Select All")
140                        }
141                        Button {
142                                id: unselectbutton
143                                text: qsTr("Unselect All")
144                        }
145                }
146                RowLayout { // spacer to make space for silly button
147                        Layout.minimumHeight: 1.2 * unselectbutton.height
148                        Kirigami.Label {
149                                text:""
150                        }
151                }
152        }
153}
Note: See TracBrowser for help on using the repository browser.