[PATCH 3/3] QML UI: enable edit of cylinder pressures
Joakim Bygdell
j.bygdell at gmail.com
Tue Feb 9 11:41:11 PST 2016
A non-text attachment was scrubbed...
Name: 0003-QML-UI-enable-edit-of-cylinder-pressures.patch
Type: application/octet-stream
Size: 6873 bytes
Desc: not available
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20160209/695d5e1d/attachment-0001.obj>
-------------- next part --------------
> On 09 Feb 2016, at 19:52, Joakim Bygdell <j.bygdell at gmail.com> wrote:
>
> First cylinder only, show warning if there are more than one cylinder defined.
>
> Signed-off-by: Joakim Bygdell <j.bygdell at gmail.com>
> ---
> 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)
>
Fix a typo.
/Jocke
More information about the subsurface
mailing list