summaryrefslogtreecommitdiffstats
path: root/qt-mobile
diff options
context:
space:
mode:
authorGravatar Joakim Bygdell <j.bygdell@gmail.com>2016-02-13 18:34:31 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-02-13 10:04:05 -0800
commitae116c5bc80f152f4eb5061252f52e70903398c6 (patch)
tree0d52f673e387b6e47f7c93757e990a1750e19c25 /qt-mobile
parent8cc4463a1af4bbce2dd5ea61d6ab8a5b107fb3b7 (diff)
downloadsubsurface-ae116c5bc80f152f4eb5061252f52e70903398c6.tar.gz
QML UI: enable edit of gasmix
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>
Diffstat (limited to 'qt-mobile')
-rw-r--r--qt-mobile/qml/DiveDetails.qml3
-rw-r--r--qt-mobile/qml/DiveDetailsEdit.qml13
-rw-r--r--qt-mobile/qml/main.qml1
-rw-r--r--qt-mobile/qmlmanager.cpp9
-rw-r--r--qt-mobile/qmlmanager.h2
5 files changed, 25 insertions, 3 deletions
diff --git a/qt-mobile/qml/DiveDetails.qml b/qt-mobile/qml/DiveDetails.qml
index 5a39576e8..c906ba268 100644
--- a/qt-mobile/qml/DiveDetails.qml
+++ b/qt-mobile/qml/DiveDetails.qml
@@ -24,6 +24,7 @@ MobileComponents.Page {
property alias weight: detailsEdit.weightText
property alias startpressure: detailsEdit.startpressureText
property alias endpressure: detailsEdit.endpressureText
+ property alias gasmix: detailsEdit.gasmixText
state: "view"
@@ -128,10 +129,12 @@ MobileComponents.Page {
if (diveDetailsListView.currentItem.modelData.dive.getCylinder != "Multiple" ) {
startpressure = diveDetailsListView.currentItem.modelData.dive.startPressure
endpressure = diveDetailsListView.currentItem.modelData.dive.endPressure
+ gasmix = diveDetailsListView.currentItem.modelData.dive.firstGas
} else {
// careful when translating, this text is "magic" in DiveDetailsEdit.qml
startpressure = "cannot edit multiple cylinders"
endpressure = "cannot edit multiple cylinders"
+ gasmix = "cannot edit multiple gases"
}
diveDetailsPage.state = "edit"
diff --git a/qt-mobile/qml/DiveDetailsEdit.qml b/qt-mobile/qml/DiveDetailsEdit.qml
index f2b046258..ae943ca03 100644
--- a/qt-mobile/qml/DiveDetailsEdit.qml
+++ b/qt-mobile/qml/DiveDetailsEdit.qml
@@ -24,6 +24,7 @@ Item {
property alias weightText: txtWeight.text
property alias startpressureText: txtStartPressure.text
property alias endpressureText: txtEndPressure.text
+ property alias gasmixText: txtGasMix.text
height: editArea.height
ColumnLayout {
@@ -147,6 +148,16 @@ Item {
MobileComponents.Label {
Layout.alignment: Qt.AlignRight
+ text: "Gas mix:"
+ }
+ TextField {
+ id: txtGasMix
+ readOnly: (text == "cannot edit multiple gases" ? true : false)
+ Layout.fillWidth: true
+ }
+
+ MobileComponents.Label {
+ Layout.alignment: Qt.AlignRight
text: "Start Pressure:"
}
TextField {
@@ -192,7 +203,7 @@ Item {
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.startpressureText, detailsEdit.endpressureText)
+ detailsEdit.startpressureText, detailsEdit.endpressureText, detailsEdit.gasmixText)
// 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 2c066e242..68696b6aa 100644
--- a/qt-mobile/qml/main.qml
+++ b/qt-mobile/qml/main.qml
@@ -84,6 +84,7 @@ MobileComponents.ApplicationWindow {
detailsWindow.duration = ""
detailsWindow.suit = ""
detailsWindow.weight = ""
+ detailsWindow.gasmix = ""
detailsWindow.startpressure = ""
detailsWindow.endpressure = ""
stackView.push(detailsWindow)
diff --git a/qt-mobile/qmlmanager.cpp b/qt-mobile/qmlmanager.cpp
index cd45d304a..422a77e06 100644
--- a/qt-mobile/qmlmanager.cpp
+++ b/qt-mobile/qmlmanager.cpp
@@ -353,7 +353,7 @@ 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 startpressure, QString endpressure)
+ QString startpressure, QString endpressure, QString gasmix)
{
#define DROP_EMPTY_PLACEHOLDER(_s) if ((_s) == QLatin1Literal("--")) (_s).clear()
@@ -366,6 +366,7 @@ QString QMLManager::commitChanges(QString diveId, QString date, QString location
DROP_EMPTY_PLACEHOLDER(buddy);
DROP_EMPTY_PLACEHOLDER(diveMaster);
DROP_EMPTY_PLACEHOLDER(weight);
+ DROP_EMPTY_PLACEHOLDER(gasmix);
DROP_EMPTY_PLACEHOLDER(startpressure);
DROP_EMPTY_PLACEHOLDER(endpressure);
DROP_EMPTY_PLACEHOLDER(notes);
@@ -514,6 +515,12 @@ QString QMLManager::commitChanges(QString diveId, QString date, QString location
d->cylinder[0].start.mbar = parsePressureToMbar(startpressure);
d->cylinder[0].end.mbar = parsePressureToMbar(endpressure);
}
+ // gasmix for first cylinder
+ if (get_gas_string(d->cylinder[0].gasmix) != gasmix) {
+ diveChanged = true;
+ d->cylinder[0].gasmix.o2.permille = parseGasMixO2(gasmix);
+ d->cylinder[0].gasmix.he.permille = parseGasMixHE(gasmix);
+ }
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 2d44bfc4e..433001a5a 100644
--- a/qt-mobile/qmlmanager.h
+++ b/qt-mobile/qmlmanager.h
@@ -88,7 +88,7 @@ public slots:
QString gps, QString duration, QString depth,
QString airtemp, QString watertemp, QString suit,
QString buddy, QString diveMaster, QString weight, QString notes,
- QString startpressure, QString endpressure);
+ QString startpressure, QString endpressure, QString gasmix);
void saveChanges();
QString addDive();