diff options
author | Jocke <j.bygdell@gmail.com> | 2018-07-16 15:21:39 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-08-11 11:19:07 -0700 |
commit | 6b93e5fe272dd9ee67973c0eec6e3310dcee1b19 (patch) | |
tree | 5f69423ef2884e48eec2e5755c607d54f49b0b1b | |
parent | 914b061d8a6d3ef1947c8e4ab1dba1551c62afc1 (diff) | |
download | subsurface-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.qml | 29 | ||||
-rw-r--r-- | mobile-widgets/qml/DiveDetailsEdit.qml | 284 |
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 |