diff options
Diffstat (limited to 'subsurface-core')
-rw-r--r-- | subsurface-core/helpers.h | 2 | ||||
-rw-r--r-- | subsurface-core/qthelper.cpp | 41 |
2 files changed, 43 insertions, 0 deletions
diff --git a/subsurface-core/helpers.h b/subsurface-core/helpers.h index 7537818f2..44f25f5fa 100644 --- a/subsurface-core/helpers.h +++ b/subsurface-core/helpers.h @@ -36,6 +36,8 @@ int parseLengthToMm(const QString &text); int parseTemperatureToMkelvin(const QString &text); int parseWeightToGrams(const QString &text); int parsePressureToMbar(const QString &text); +int parseGasMixO2(const QString &text); +int parseGasMixHE(const QString &text); QString get_dive_duration_string(timestamp_t when, QString hourText, QString minutesText); QString get_dive_date_string(timestamp_t when); QString get_short_dive_date_string(timestamp_t when); diff --git a/subsurface-core/qthelper.cpp b/subsurface-core/qthelper.cpp index 07ec19486..fa7e894bb 100644 --- a/subsurface-core/qthelper.cpp +++ b/subsurface-core/qthelper.cpp @@ -885,6 +885,47 @@ int parsePressureToMbar(const QString &text) return mbar; } +int parseGasMixO2(const QString &text) +{ + QString gasString = text; + int o2, number; + if (gasString.contains(QObject::tr("AIR"), Qt::CaseInsensitive)) { + o2 = O2_IN_AIR; + } + else if (gasString.contains(QObject::tr("EAN"), Qt::CaseInsensitive)) { + gasString.remove(QRegExp("[^0-9]")); + number = gasString.toInt(); + o2 = number * 10; + } + else if (gasString.contains("/")) { + QStringList gasSplit = gasString.split("/"); + number = gasSplit[0].toInt(); + o2 = number * 10; + } + else { + number = gasString.toInt(); + o2 = number * 10; + } + + return o2; +} + +int parseGasMixHE(const QString &text) +{ + QString gasString = text; + int he, number; + if (gasString.contains("/")) { + QStringList gasSplit = gasString.split("/"); + number = gasSplit[1].toInt(); + he = number * 10; + } + else { + he = 0; + } + + return he; +} + QString get_dive_duration_string(timestamp_t when, QString hourText, QString minutesText) { int hrs, mins; |