summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Jocke <j.bygdell@gmail.com>2018-07-16 15:21:39 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-08-11 11:19:07 -0700
commit6b93e5fe272dd9ee67973c0eec6e3310dcee1b19 (patch)
tree5f69423ef2884e48eec2e5755c607d54f49b0b1b
parent914b061d8a6d3ef1947c8e4ab1dba1551c62afc1 (diff)
downloadsubsurface-6b93e5fe272dd9ee67973c0eec6e3310dcee1b19.tar.gz
Mobile: Display used cylinders on edit page
This displays the used cylinders in a dive so that they can be edited. Currently limited to 5 as a POC. Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
-rw-r--r--mobile-widgets/qml/DiveDetails.qml29
-rw-r--r--mobile-widgets/qml/DiveDetailsEdit.qml284
2 files changed, 291 insertions, 22 deletions
diff --git a/mobile-widgets/qml/DiveDetails.qml b/mobile-widgets/qml/DiveDetails.qml
index f5a920597..5f88e6a48 100644
--- a/mobile-widgets/qml/DiveDetails.qml
+++ b/mobile-widgets/qml/DiveDetails.qml
@@ -33,16 +33,20 @@ Kirigami.Page {
property alias suitText: detailsEdit.suitText
property alias suitModel: detailsEdit.suitModel
property alias weight: detailsEdit.weightText
- property alias startpressure: detailsEdit.startpressureText
- property alias endpressure: detailsEdit.endpressureText
- property alias cylinderIndex: detailsEdit.cylinderIndex
- property alias cylinderText: detailsEdit.cylinderText
- property alias cylinderModel: detailsEdit.cylinderModel
- property alias gasmix: detailsEdit.gasmixText
+ property alias startpressure0: detailsEdit.startpressureText0
+ property alias endpressure0: detailsEdit.endpressureText0
+ property alias cylinderIndex0: detailsEdit.cylinderIndex0
+ property alias cylinderIndex1: detailsEdit.cylinderIndex1
+ property alias cylinderIndex2: detailsEdit.cylinderIndex2
+ property alias cylinderIndex3: detailsEdit.cylinderIndex3
+ property alias cylinderIndex4: detailsEdit.cylinderIndex4
+ property alias gasmix0: detailsEdit.gasmixText0
property alias gpsCheckbox: detailsEdit.gpsCheckbox
property int updateCurrentIdx: manager.updateSelectedDive
property alias rating: detailsEdit.rating
property alias visibility: detailsEdit.visibility
+ property alias usedCyl: detailsEdit.usedCyl
+ property alias cylinderModel: detailsEdit.cylinderModel
title: currentItem && currentItem.modelData ? currentItem.modelData.dive.location : qsTr("Dive details")
state: "view"
@@ -258,10 +262,15 @@ Kirigami.Page {
// careful when translating, this text is "magic" in DiveDetailsEdit.qml
weight = "cannot edit multiple weight systems"
}
- startpressure = currentItem.modelData.dive.startPressure
- endpressure = currentItem.modelData.dive.endPressure
- gasmix = currentItem.modelData.dive.firstGas
- cylinderIndex = currentItem.modelData.dive.cylinderList.indexOf(currentItem.modelData.dive.getCylinder)
+ startpressure0 = currentItem.modelData.dive.startPressure
+ endpressure0 = currentItem.modelData.dive.endPressure
+ gasmix0 = currentItem.modelData.dive.firstGas
+ usedCyl = currentItem.modelData.dive.getCylinder
+ cylinderIndex0 = currentItem.modelData.dive.cylinderList.indexOf(usedCyl[0])
+ cylinderIndex1 = currentItem.modelData.dive.cylinderList.indexOf(usedCyl[1])
+ cylinderIndex2 = currentItem.modelData.dive.cylinderList.indexOf(usedCyl[2])
+ cylinderIndex3 = currentItem.modelData.dive.cylinderList.indexOf(usedCyl[3])
+ cylinderIndex4 = currentItem.modelData.dive.cylinderList.indexOf(usedCyl[4])
rating = currentItem.modelData.dive.rating
visibility = currentItem.modelData.dive.visibility
diff --git a/mobile-widgets/qml/DiveDetailsEdit.qml b/mobile-widgets/qml/DiveDetailsEdit.qml
index ef5d304d3..7a05975a5 100644
--- a/mobile-widgets/qml/DiveDetailsEdit.qml
+++ b/mobile-widgets/qml/DiveDetailsEdit.qml
@@ -22,23 +22,27 @@ Item {
property alias buddyText: buddyBox.editText
property alias divemasterIndex: divemasterBox.currentIndex
property alias divemasterText: divemasterBox.editText
- property alias cylinderIndex: cylinderBox.currentIndex
- property alias cylinderText: cylinderBox.editText
+ property alias cylinderIndex0: cylinderBox0.currentIndex
+ property alias cylinderIndex1: cylinderBox1.currentIndex
+ property alias cylinderIndex2: cylinderBox2.currentIndex
+ property alias cylinderIndex3: cylinderBox3.currentIndex
+ property alias cylinderIndex4: cylinderBox4.currentIndex
property alias notesText: txtNotes.text
property alias durationText: txtDuration.text
property alias depthText: txtDepth.text
property alias weightText: txtWeight.text
- property alias startpressureText: txtStartPressure.text
- property alias endpressureText: txtEndPressure.text
- property alias gasmixText: txtGasMix.text
+ property alias startpressureText0: txtStartPressure0.text
+ property alias endpressureText0: txtEndPressure0.text
+ property alias gasmixText0: txtGasMix0.text
property alias gpsCheckbox: checkboxGPS.checked
property alias suitModel: suitBox.model
property alias divemasterModel: divemasterBox.model
property alias buddyModel: buddyBox.model
- property alias cylinderModel: cylinderBox.model
+ property alias cylinderModel: cylinderBox0.model
property alias locationModel: locationBox.model
property int rating
property int visibility
+ property var usedCyl: []
function clearDetailsEdit() {
detailsEdit.dive_id = 0
@@ -54,7 +58,11 @@ Item {
suitBox.currentIndex = -1
buddyBox.currentIndex = -1
divemasterBox.currentIndex = -1
- cylinderBox.currentIndex = -1
+ cylinderBox0.currentIndex = -1
+ cylinderBox1.currentIndex = -1
+ cylinderBox2.currentIndex = -1
+ cylinderBox3.currentIndex = -1
+ cylinderBox4.currentIndex = -1
detailsEdit.notesText = ""
detailsEdit.rating = 0
detailsEdit.visibility = 0
@@ -311,14 +319,260 @@ Item {
focus = false
}
}
+// all cylinder info should be able to become dynamic instead of this blob of code.
+// first cylinder
+ Controls.Label {
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Cylinder1:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.ComboBox {
+ id: cylinderBox0
+ flat: true
+ model: diveDetailsListView.currentItem && diveDetailsListView.currentItem.modelData !== null ?
+ diveDetailsListView.currentItem.modelData.dive.cylinderList : null
+ inputMethodHints: Qt.ImhNoPredictiveText
+ Layout.fillWidth: true
+ }
+
+ Controls.Label {
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Gas mix:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ id: txtGasMix0
+ Layout.fillWidth: true
+ validator: RegExpValidator { regExp: /(EAN100|EAN\d\d|AIR|100|\d{1,2}|\d{1,2}\/\d{1,2})/i }
+ onEditingFinished: {
+ focus = false
+ }
+ }
+
+ Controls.Label {
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Start Pressure:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ id: txtStartPressure0
+ Layout.fillWidth: true
+ onEditingFinished: {
+ focus = false
+ }
+ }
+
+ Controls.Label {
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("End Pressure:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ id: txtEndPressure0
+ Layout.fillWidth: true
+ onEditingFinished: {
+ focus = false
+ }
+ }
+//second cylinder
+ Controls.Label {
+ visible: usedCyl[1] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Cylinder2:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.ComboBox {
+ visible: usedCyl[1] != null ? true : false
+ id: cylinderBox1
+ flat: true
+ model: diveDetailsListView.currentItem && diveDetailsListView.currentItem.modelData !== null ?
+ diveDetailsListView.currentItem.modelData.dive.cylinderList : null
+ inputMethodHints: Qt.ImhNoPredictiveText
+ Layout.fillWidth: true
+ }
+
+ Controls.Label {
+ visible: usedCyl[1] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Gas mix:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ visible: usedCyl[1] != null ? true : false
+ id: txtGasMix1
+ Layout.fillWidth: true
+ validator: RegExpValidator { regExp: /(EAN100|EAN\d\d|AIR|100|\d{1,2}|\d{1,2}\/\d{1,2})/i }
+ onEditingFinished: {
+ focus = false
+ }
+ }
Controls.Label {
+ visible: usedCyl[1] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Start Pressure:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ visible: usedCyl[1] != null ? true : false
+ id: txtStartPressure1
+ Layout.fillWidth: true
+ onEditingFinished: {
+ focus = false
+ }
+ }
+
+ Controls.Label {
+ visible: usedCyl[1] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("End Pressure:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ visible: usedCyl[1] != null ? true : false
+ id: txtEndPressure1
+ Layout.fillWidth: true
+ onEditingFinished: {
+ focus = false
+ }
+ }
+// third cylinder
+ Controls.Label {
+ visible: usedCyl[2] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Cylinder3:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.ComboBox {
+ visible: usedCyl[2] != null ? true : false
+ id: cylinderBox2
+ currentIndex: find(usedCyl[2])
+ flat: true
+ model: diveDetailsListView.currentItem && diveDetailsListView.currentItem.modelData !== null ?
+ diveDetailsListView.currentItem.modelData.dive.cylinderList : null
+ inputMethodHints: Qt.ImhNoPredictiveText
+ Layout.fillWidth: true
+ }
+
+ Controls.Label {
+ visible: usedCyl[2] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Gas mix:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ visible: usedCyl[2] != null ? true : false
+ id: txtGasMix2
+ Layout.fillWidth: true
+ validator: RegExpValidator { regExp: /(EAN100|EAN\d\d|AIR|100|\d{1,2}|\d{1,2}\/\d{1,2})/i }
+ onEditingFinished: {
+ focus = false
+ }
+ }
+
+ Controls.Label {
+ visible: usedCyl[2] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Start Pressure:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ visible: usedCyl[2] != null ? true : false
+ id: txtStartPressure2
+ Layout.fillWidth: true
+ onEditingFinished: {
+ focus = false
+ }
+ }
+
+ Controls.Label {
+ visible: usedCyl[2] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("End Pressure:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ visible: usedCyl[2] != null ? true : false
+ id: txtEndPressure2
+ Layout.fillWidth: true
+ onEditingFinished: {
+ focus = false
+ }
+ }
+// fourth cylinder
+ Controls.Label {
+ visible: usedCyl[3] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Cylinder4:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.ComboBox {
+ visible: usedCyl[3] != null ? true : false
+ id: cylinderBox3
+ currentIndex: find(usedCyl[3])
+ flat: true
+ model: diveDetailsListView.currentItem && diveDetailsListView.currentItem.modelData !== null ?
+ diveDetailsListView.currentItem.modelData.dive.cylinderList : null
+ inputMethodHints: Qt.ImhNoPredictiveText
+ Layout.fillWidth: true
+ }
+
+ Controls.Label {
+ visible: usedCyl[3] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Gas mix:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ visible: usedCyl[3] != null ? true : false
+ id: txtGasMix3
+ Layout.fillWidth: true
+ validator: RegExpValidator { regExp: /(EAN100|EAN\d\d|AIR|100|\d{1,2}|\d{1,2}\/\d{1,2})/i }
+ onEditingFinished: {
+ focus = false
+ }
+ }
+
+ Controls.Label {
+ visible: usedCyl[3] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("Start Pressure:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ visible: usedCyl[3] != null ? true : false
+ id: txtStartPressure3
+ Layout.fillWidth: true
+ onEditingFinished: {
+ focus = false
+ }
+ }
+
+ Controls.Label {
+ visible: usedCyl[3] != null ? true : false
+ Layout.alignment: Qt.AlignRight
+ text: qsTr("End Pressure:")
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ Controls.TextField {
+ visible: usedCyl[3] != null ? true : false
+ id: txtEndPressure3
+ Layout.fillWidth: true
+ onEditingFinished: {
+ focus = false
+ }
+ }
+// fifth cylinder
+ Controls.Label {
+ visible: usedCyl[4] != null ? true : false
Layout.alignment: Qt.AlignRight
- text: qsTr("Cylinder:")
+ text: qsTr("Cylinder5:")
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.ComboBox {
- id: cylinderBox
+ visible: usedCyl[4] != null ? true : false
+ id: cylinderBox4
+ currentIndex: find(usedCyl[4])
flat: true
model: diveDetailsListView.currentItem && diveDetailsListView.currentItem.modelData !== null ?
diveDetailsListView.currentItem.modelData.dive.cylinderList : null
@@ -327,12 +581,14 @@ Item {
}
Controls.Label {
+ visible: usedCyl[4] != null ? true : false
Layout.alignment: Qt.AlignRight
text: qsTr("Gas mix:")
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.TextField {
- id: txtGasMix
+ visible: usedCyl[4] != null ? true : false
+ id: txtGasMix4
Layout.fillWidth: true
validator: RegExpValidator { regExp: /(EAN100|EAN\d\d|AIR|100|\d{1,2}|\d{1,2}\/\d{1,2})/i }
onEditingFinished: {
@@ -341,12 +597,14 @@ Item {
}
Controls.Label {
+ visible: usedCyl[4] != null ? true : false
Layout.alignment: Qt.AlignRight
text: qsTr("Start Pressure:")
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.TextField {
- id: txtStartPressure
+ visible: usedCyl[4] != null ? true : false
+ id: txtStartPressure4
Layout.fillWidth: true
onEditingFinished: {
focus = false
@@ -354,12 +612,14 @@ Item {
}
Controls.Label {
+ visible: usedCyl[4] != null ? true : false
Layout.alignment: Qt.AlignRight
text: qsTr("End Pressure:")
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.TextField {
- id: txtEndPressure
+ visible: usedCyl[4] != null ? true : false
+ id: txtEndPressure4
Layout.fillWidth: true
onEditingFinished: {
focus = false