QML UI: handle editing of depth

Getting closer to being able to really edit / add dives in the mobile UI.
This works for manually added dives - needs a bit more thought for dives
downloaded from dive computers as we don't necessarily want to change the
maxdepth in conflict with the samples.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2016-01-01 00:32:30 -08:00
parent 2c28b16b26
commit a0aa27e864
6 changed files with 45 additions and 1 deletions

View file

@ -59,7 +59,7 @@ MobileComponents.Page {
location = detailsEdit.locationText
// gps = detailsEdit.gps
duration = detailsEdit.durationText
// depth = detailsEdit.depthText
depth = detailsEdit.depthText
airtemp = detailsEdit.airtempText
watertemp = detailsEdit.watertempText
suit = detailsEdit.suitText

View file

@ -16,6 +16,7 @@ Item {
property alias divemasterText: txtDiveMaster.text
property alias notesText: txtNotes.text
property alias durationText: txtDuration.text
property alias depthText: txtDepth.text
ColumnLayout {
anchors {
left: parent.left
@ -49,6 +50,15 @@ Item {
// (think of someone adding a dive while on the boat or
// at the dive site)
MobileComponents.Label {
Layout.alignment: Qt.AlignRight
text: "Depth:"
}
TextField {
id: txtDepth
text: depth
Layout.fillWidth: true
}
MobileComponents.Label {
Layout.alignment: Qt.AlignRight
text: "Duration:"

View file

@ -361,6 +361,16 @@ void QMLManager::commitChanges(QString diveId, QString location, QString gps, QS
}
d->duration.seconds = h * 3600 + m * 60 + s;
}
if (get_depth_string(d->maxdepth.mm, true, true) != depth) {
diveChanged = true;
if (depth.contains(tr("ft")))
prefs.units.length = units::FEET;
else if (depth.contains(tr("m")))
prefs.units.length = units::METERS;
d->maxdepth.mm = parseLengthToMm(depth);
if (same_string(d->dc.model, "manually added dive"))
d->dc.maxdepth.mm = d->maxdepth.mm;
}
if (get_temperature_string(d->airtemp) != airtemp) {
diveChanged = true;
if (airtemp.contains(tr("C")))