First cylinder only, show warning if there are more than one cylinder defined.

Signed-off-by: Joakim Bygdell <[email protected]>
---
 qt-mobile/qml/DiveDetails.qml     | 10 ++++++++++
 qt-mobile/qml/DiveDetailsEdit.qml | 26 +++++++++++++++++++++++++-
 qt-mobile/qml/main.qml            |  2 ++
 qt-mobile/qmlmanager.cpp          | 15 ++++++++++++++-
 qt-mobile/qmlmanager.h            |  3 ++-
 5 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/qt-mobile/qml/DiveDetails.qml b/qt-mobile/qml/DiveDetails.qml
index 162e31b..f0e2ff3 100644
--- a/qt-mobile/qml/DiveDetails.qml
+++ b/qt-mobile/qml/DiveDetails.qml
@@ -22,6 +22,8 @@ MobileComponents.Page {
        property alias notes: detailsEdit.notesText
        property alias suit: detailsEdit.suitText
        property alias weight: detailsEdit.weightText
+       property alias startpressure: detailsEdit.startpressureText
+       property alias endpressure: detailsEdit.endpressureText
 
        state: "view"
 
@@ -99,6 +101,14 @@ MobileComponents.Page {
                        // careful when translating, this text is "magic" in 
DiveDetailsEdit.qml
                        weight = "cannot edit multiple weight systems"
                }
+               if (diveDetailsListView.currentItem.modelData.dive.getCylinder 
!= "Multiple" ) {
+                       startpressure = 
diveDetailsListView.currentItem.modelData.dive.startPressure
+                       endpressure = 
diveDetailsListView.currentItem.modelData.dive.endPressure
+               } else {
+                       // careful when translating, this text is "magic" in 
DiveDetailsEdit.qml
+                       startpressure = "cannot edit multiple cylinders"
+                       endpressure = "cannot edit multiple cylinders"
+               }
 
                diveDetailsPage.state = "edit"
        }
diff --git a/qt-mobile/qml/DiveDetailsEdit.qml 
b/qt-mobile/qml/DiveDetailsEdit.qml
index 90ca304..f6a197d 100644
--- a/qt-mobile/qml/DiveDetailsEdit.qml
+++ b/qt-mobile/qml/DiveDetailsEdit.qml
@@ -22,6 +22,8 @@ Item {
        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
 
        height: editArea.height
        ColumnLayout {
@@ -144,6 +146,27 @@ Item {
                        }
 
                        MobileComponents.Label {
+                               Layout.alignment: Qt.AlignRight
+                               text: "Start pressure:"
+                       }
+                       TextField {
+                               id: txtStartPressure
+                               readOnly: (text == "cannot edit multiple 
cylinders" ? true : false)
+                               Layout.fillWidth: true
+                       }
+
+                       MobileComponents.Label {
+                               Layout.alignment: Qt.AlignRight
+                               text: "End Pressure:"
+                       }
+                       TextField {
+                               id: txtEndPressure
+                               readOnly: (text == "cannot edit multiple 
cylinders" ? true : false)
+                               Layout.fillWidth: true
+                       }
+
+
+                       MobileComponents.Label {
                                Layout.columnSpan: 2
                                Layout.alignment: Qt.AlignLeft
                                text: "Notes:"
@@ -168,7 +191,8 @@ Item {
                                // apply the changes to the dive_table
                                manager.commitChanges(dive_id, 
detailsEdit.dateText, detailsEdit.locationText, detailsEdit.gpsText, 
detailsEdit.durationText,
                                                      detailsEdit.depthText, 
detailsEdit.airtempText, detailsEdit.watertempText, detailsEdit.suitText,
-                                                     detailsEdit.buddyText, 
detailsEdit.divemasterText, detailsEdit.weightText, detailsEdit.notesText)
+                                                     detailsEdit.buddyText, 
detailsEdit.divemasterText, detailsEdit.weightText, detailsEdit.notesText,
+                                                     
detailsEdit.startpressureText, detailsEdit.endpressureText)
                                // apply the changes to the dive detail view - 
since the edit could have changed the order
                                // first make sure that we are looking at the 
correct dive - our model allows us to look
                                // up the index based on the unique dive_id
diff --git a/qt-mobile/qml/main.qml b/qt-mobile/qml/main.qml
index ee18242..6054b2f 100644
--- a/qt-mobile/qml/main.qml
+++ b/qt-mobile/qml/main.qml
@@ -71,6 +71,8 @@ MobileComponents.ApplicationWindow {
                                                detailsWindow.duration = ""
                                                detailsWindow.suit = ""
                                                detailsWindow.weight = ""
+                                               detailsWindow.startpressure = ""
+                                               detailsWindow.endpressure = ""
                                                stackView.push(detailsWindow)
                                        }
                                }
diff --git a/qt-mobile/qmlmanager.cpp b/qt-mobile/qmlmanager.cpp
index 76b4e7a..a73c49f 100644
--- a/qt-mobile/qmlmanager.cpp
+++ b/qt-mobile/qmlmanager.cpp
@@ -335,7 +335,8 @@ void QMLManager::refreshDiveList()
 
 // update the dive and return the notes field, stripped of the HTML junk
 QString QMLManager::commitChanges(QString diveId, QString date, QString 
location, QString gps, QString duration, QString depth,
-                                 QString airtemp, QString watertemp, QString 
suit, QString buddy, QString diveMaster, QString weight, QString notes)
+                                 QString airtemp, QString watertemp, QString 
suit, QString buddy, QString diveMaster, QString weight, QString notes,
+                                 QString startpressure, QString endpressure)
 {
 #define DROP_EMPTY_PLACEHOLDER(_s) if ((_s) == QLatin1Literal("--")) 
(_s).clear()
 
@@ -348,6 +349,8 @@ QString QMLManager::commitChanges(QString diveId, QString 
date, QString location
        DROP_EMPTY_PLACEHOLDER(buddy);
        DROP_EMPTY_PLACEHOLDER(diveMaster);
        DROP_EMPTY_PLACEHOLDER(weight);
+       DROP_EMPTY_PLACEHOLDER(startpressure);
+       DROP_EMPTY_PLACEHOLDER(endpressure);
        DROP_EMPTY_PLACEHOLDER(notes);
 
 #undef DROP_EMPTY_PLACEHOLDER
@@ -489,6 +492,16 @@ QString QMLManager::commitChanges(QString diveId, QString 
date, QString location
                        d->weightsystem[0].weight.grams = 
parseWeightToGrams(weight);
                }
        }
+// start and end pressures for first cylinder only
+       if (get_pressure_string(d->cylinder[0].start, true) != startpressure || 
get_pressure_string(d->cylinder[0].end, true) != endpressure) {
+               diveChanged = true;
+               if (startpressure.contains(tr("bar")) || 
endpressure.contains(tr("bar")))
+                       prefs.units.pressure = units::BAR;
+               else if (startpressure.contains(tr("psi")) || 
endpressure.contains(tr("psi")))
+                       prefs.units.pressure = units::PSI;
+               d->cylinder[0].start.mbar = parsePressureToMbar(startpressure);
+               d->cylinder[0].end.mbar = parsePressureToMbar(endpressure);
+       }
        if (!same_string(d->suit, qPrintable(suit))) {
                diveChanged = true;
                free(d->suit);
diff --git a/qt-mobile/qmlmanager.h b/qt-mobile/qmlmanager.h
index a29a746..019d0b7 100644
--- a/qt-mobile/qmlmanager.h
+++ b/qt-mobile/qmlmanager.h
@@ -74,7 +74,8 @@ public slots:
        QString commitChanges(QString diveId, QString date, QString location,
                QString gps, QString duration, QString depth,
                QString airtemp, QString watertemp, QString suit,
-               QString buddy, QString diveMaster, QString weight, QString 
notes);
+               QString buddy, QString diveMaster, QString weight, QString 
notes,
+               QString startpressure, QString endpressure);
 
        void saveChanges();
        QString addDive();
-- 
2.4.9 (Apple Git-60)

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to