Attachment: 0003-QML-UI-enable-edit-of-cylinder-pressures.patch
Description: Binary data

> On 09 Feb 2016, at 19:52, Joakim Bygdell <[email protected]> wrote:
> 
> 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)
> 
Fix a typo.


/Jocke

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

Reply via email to