source: subsurface/mobile-widgets/qml/DiveDetailsView.qml @ 869a7fc

Last change on this file since 869a7fc was 869a7fc, checked in by Dirk Hohndel <dirk@…>, 9 months ago

dive master > divemaster

  • Property mode set to 100644
File size: 6.1 KB
Line 
1import QtQuick 2.3
2/*
3import QtWebView 1.0
4*/
5import QtQuick.Controls 1.2
6import QtQuick.Controls.Styles 1.2
7import QtQuick.Dialogs 1.2
8import QtQuick.Layouts 1.1
9import org.subsurfacedivelog.mobile 1.0
10import org.kde.kirigami 1.0 as Kirigami
11
12Item {
13        id: detailsView
14        property real gridWidth: detailsView.width - 2 * Kirigami.Units.gridUnit
15        property real col1Width: gridWidth * 0.23
16        property real col2Width: gridWidth * 0.37
17        property real col3Width: gridWidth * 0.20
18        property real col4Width: gridWidth * 0.20
19
20        width: diveDetailsPage.width - diveDetailsPage.leftPadding - diveDetailsPage.rightPadding
21        height: mainLayout.implicitHeight + bottomLayout.implicitHeight + Kirigami.Units.iconSizes.large
22        Rectangle {
23                z: 99
24                color: Kirigami.Theme.textColor
25                opacity: 0.3
26                width: Kirigami.Units.smallSpacing/4
27                anchors {
28                        right: parent.right
29                        top: parent.top
30                        bottom: parent.bottom
31                }
32        }
33        GridLayout {
34                id: mainLayout
35                anchors {
36                        top: parent.top
37                        left: parent.left
38                        right: parent.right
39                        margins: Kirigami.Units.gridUnit
40                }
41                columns: 4
42                rowSpacing: Kirigami.Units.smallSpacing * 2
43                columnSpacing: Kirigami.Units.smallSpacing
44
45                Kirigami.Heading {
46                        id: detailsViewHeading
47                        Layout.fillWidth: true
48                        text: dive.location
49                        font.underline: dive.gps !== ""
50                        Layout.columnSpan: 4
51                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
52                        Layout.topMargin: Kirigami.Units.largeSpacing
53                        MouseArea {
54                                anchors.fill: parent
55                                onClicked: {
56                                        if (dive.gps !== "")
57                                                showMap(dive.gps)
58                                }
59                        }
60                }
61                Kirigami.Label {
62                        id: dateLabel
63                        text: qsTr("Date: ")
64                        opacity: 0.6
65                }
66                Kirigami.Label {
67                        text: dive.date + " " + dive.time
68                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
69                        Layout.columnSpan: 2
70                }
71                Kirigami.Label {
72                        id: numberText
73                        text: "#" + dive.number
74                        color: Kirigami.Theme.textColor
75                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
76                }
77
78                Kirigami.Label {
79                        id: depthLabel
80                        text: qsTr("Depth: ")
81                        opacity: 0.6
82                }
83                Kirigami.Label {
84                        text: dive.depth
85                        Layout.fillWidth: true
86                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
87                }
88                Kirigami.Label {
89                        text: qsTr("Duration: ")
90                        opacity: 0.6
91                        Layout.alignment: Qt.AlignRight
92                }
93                Kirigami.Label {
94                        text: dive.duration
95                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
96                }
97
98                QMLProfile {
99                        id: qmlProfile
100                        visible: !dive.noDive
101                        Layout.fillWidth: true
102                        Layout.preferredHeight: Layout.minimumHeight
103                        Layout.minimumHeight: width * 0.75
104                        Layout.columnSpan: 4
105                        clip: false
106                        Rectangle {
107                                color: "transparent"
108                                opacity: 0.6
109                                border.width: 1
110                                border.color: Kirigami.Theme.textColor;
111                                anchors.fill: parent
112                        }
113                }
114                Kirigami.Label {
115                        id: noProfile
116                        visible: dive.noDive
117                        Layout.fillWidth: true
118                        Layout.columnSpan: 4
119                        Layout.margins: Kirigami.Units.gridUnit
120                        horizontalAlignment: Text.AlignHCenter
121                        text: qsTr("No profile to show")
122                }
123        }
124        GridLayout {
125                id: bottomLayout
126                anchors {
127                        top: mainLayout.bottom
128                        left: parent.left
129                        right: parent.right
130                        margins: Math.round(Kirigami.Units.gridUnit / 2)
131                }
132                columns: 4
133                rowSpacing: Kirigami.Units.smallSpacing * 2
134                columnSpacing: Kirigami.Units.smallSpacing
135
136                Kirigami.Heading {
137                        Layout.fillWidth: true
138                        level: 3
139                        text: qsTr("Dive Details")
140                        Layout.columnSpan: 4
141                }
142
143                Kirigami.Label {
144                        text: qsTr("Suit:")
145                        wrapMode: Text.WrapAtWordBoundaryOrAnywhere
146                        opacity: 0.6
147                        width: detailsView.col1Width
148                        Layout.alignment: Qt.AlignRight
149                }
150                Kirigami.Label {
151                        id: txtSuit
152                        text: dive.suit
153                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
154                        Layout.fillWidth: true
155                }
156
157                Kirigami.Label {
158                        text: qsTr("Air Temp:")
159                        wrapMode: Text.WrapAtWordBoundaryOrAnywhere
160                        opacity: 0.6
161                        width: detailsView.col3Width
162                        Layout.alignment: Qt.AlignRight
163                }
164                Kirigami.Label {
165                        id: txtAirTemp
166                        text: dive.airTemp
167                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
168                        width: detailsView.col4Width
169                }
170
171                Kirigami.Label {
172                        text: qsTr("Cylinder:")
173                        opacity: 0.6
174                        width: detailsView.col1Width
175                        Layout.alignment: Qt.AlignRight
176                }
177                Kirigami.Label {
178                        id: txtCylinder
179                        text: dive.getCylinder
180                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
181                        Layout.fillWidth: true
182                }
183
184                Kirigami.Label {
185                        text: qsTr("Water Temp:")
186                        opacity: 0.6
187                        width: detailsView.col3Width
188                        Layout.alignment: Qt.AlignRight
189                }
190                Kirigami.Label {
191                        id: txtWaterTemp
192                        text: dive.waterTemp
193                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
194                        width: detailsView.col4Width
195                }
196
197                Kirigami.Label {
198                        text: qsTr("Divemaster:")
199                        opacity: 0.6
200                        width: detailsView.col1Width
201                        Layout.alignment: Qt.AlignRight
202                }
203                Kirigami.Label {
204                        id: txtDiveMaster
205                        text: dive.divemaster
206                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
207                        Layout.fillWidth: true
208                }
209
210                Kirigami.Label {
211                        text: qsTr("Weight:")
212                        opacity: 0.6
213                        width: detailsView.col3Width
214                        Layout.alignment: Qt.AlignRight
215                }
216                Kirigami.Label {
217                        id: txtWeight
218                        text: dive.sumWeight
219                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
220                        width: detailsView.col4Width
221                }
222
223                Kirigami.Label {
224                        text: qsTr("Buddy:")
225                        opacity: 0.6
226                        width: detailsView.col1Width
227                        Layout.alignment: Qt.AlignRight
228                }
229                Kirigami.Label {
230                        id: txtBuddy
231                        text: dive.buddy
232                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
233                        Layout.fillWidth: true
234                }
235
236                Kirigami.Label {
237                        text: qsTr("SAC:")
238                        opacity: 0.6
239                        width: detailsView.col3Width
240                        Layout.alignment: Qt.AlignRight
241                }
242                Kirigami.Label {
243                        id: txtSAC
244                        text: dive.sac
245                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
246                        width: detailsView.col4Width
247                }
248
249                Kirigami.Heading {
250                        Layout.fillWidth: true
251                        level: 3
252                        text: qsTr("Notes")
253                        wrapMode: Text.WrapAtWordBoundaryOrAnywhere
254                        Layout.columnSpan: 4
255                }
256
257                Kirigami.Label {
258                        id: txtNotes
259                        text: dive.notes
260                        focus: true
261                        Layout.columnSpan: 4
262                        Layout.fillWidth: true
263                        //selectByMouse: true
264                        wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
265                }
266                Item {
267                        Layout.columnSpan: 4
268                        Layout.fillWidth: true
269                        Layout.minimumHeight: Kirigami.Units.gridUnit * 3
270                }
271                Component.onCompleted: {
272                        qmlProfile.setMargin(Kirigami.Units.smallSpacing)
273                        qmlProfile.diveId = model.dive.id;
274                        qmlProfile.update();
275                }
276        }
277}
Note: See TracBrowser for help on using the repository browser.