summaryrefslogtreecommitdiffstats
path: root/subsurface-core
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2016-01-01 00:32:30 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-01-01 00:55:34 -0800
commita0aa27e86471ec94e00acfd874ca7cdd9c793308 (patch)
treeebd7c42a620723a8f57784715c19af8627de3887 /subsurface-core
parent2c28b16b26bd917670f84102d6535abf99a30d4d (diff)
downloadsubsurface-a0aa27e86471ec94e00acfd874ca7cdd9c793308.tar.gz
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>
Diffstat (limited to 'subsurface-core')
-rw-r--r--subsurface-core/helpers.h1
-rw-r--r--subsurface-core/qthelper.cpp22
2 files changed, 23 insertions, 0 deletions
diff --git a/subsurface-core/helpers.h b/subsurface-core/helpers.h
index b5c119870..5856c624f 100644
--- a/subsurface-core/helpers.h
+++ b/subsurface-core/helpers.h
@@ -32,6 +32,7 @@ QString getPrintingTemplatePathBundle();
void copyPath(QString src, QString dst);
extern const QString get_dc_nickname(const char *model, uint32_t deviceid);
int gettimezoneoffset(timestamp_t when = 0);
+int parseLengthToMm(const QString &text);
int parseTemperatureToMkelvin(const QString &text);
QString get_dive_duration_string(timestamp_t when, QString hourText, QString minutesText);
QString get_dive_date_string(timestamp_t when);
diff --git a/subsurface-core/qthelper.cpp b/subsurface-core/qthelper.cpp
index 25d5b4233..bddfd7608 100644
--- a/subsurface-core/qthelper.cpp
+++ b/subsurface-core/qthelper.cpp
@@ -1119,6 +1119,28 @@ int gettimezoneoffset(timestamp_t when)
return dt2.secsTo(dt1);
}
+int parseLengthToMm(const QString &text)
+{
+ int mm;
+ QString numOnly = text;
+ numOnly.replace(",", ".").remove(QRegExp("[^-0-9.]"));
+ if (numOnly.isEmpty())
+ return 0;
+ double number = numOnly.toDouble();
+ switch (prefs.units.length) {
+ case units::FEET:
+ mm = feet_to_mm(number);
+ break;
+ case units::METERS:
+ mm = number * 1000;
+ break;
+ default:
+ mm = 0;
+ }
+ return mm;
+
+}
+
int parseTemperatureToMkelvin(const QString &text)
{
int mkelvin;