aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Joakim Bygdell <j.bygdell@gmail.com>2016-02-09 17:20:17 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-02-09 12:11:09 -0800
commit8c9883cfcf66de99f6a563161918927ae0fb2f00 (patch)
tree98c5d25a377cf89a7d1a758b6eb91cb684d0eabf
parentf3b35d175a381a57447b2ff33a8cd6d0db69b924 (diff)
downloadsubsurface-8c9883cfcf66de99f6a563161918927ae0fb2f00.tar.gz
QML UI: enable edit of cylinder pressures
First cylinder only, show warning if there are more than one cylinder defined. Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-mobile/qml/DiveDetails.qml10
-rw-r--r--qt-mobile/qml/DiveDetailsEdit.qml26
-rw-r--r--qt-mobile/qml/main.qml2
-rw-r--r--qt-mobile/qmlmanager.cpp15
-rw-r--r--qt-mobile/qmlmanager.h3
5 files changed, 53 insertions, 3 deletions
diff --git a/qt-mobile/qml/DiveDetails.qml b/qt-mobile/qml/DiveDetails.qml
index 162e31b9d..f0e2ff35e 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 90ca304e5..f2b046258 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 ee1824231..6054b2fe6 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 76b4e7a93..a73c49fff 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 a29a74648..019d0b740 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();