diff options
author | jan Iversen <jan@casacondor.com> | 2020-01-24 13:31:51 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-01-27 14:25:03 -0800 |
commit | 6cd46bee063f3cc90934480cba3f8fb7908149bd (patch) | |
tree | b89902837e68a908e897504b730796ed9cb72cd4 /mobile-widgets | |
parent | bb13065a75fd02d0732575b2c01cb3210ad96f32 (diff) | |
download | subsurface-6cd46bee063f3cc90934480cba3f8fb7908149bd.tar.gz |
divesummary: add DiveSummary class to shared and backend
Create DiveSummary class in backend-shared and make the DiveSummary calculation
results available to QML.
This adds a loop over all dives (could have been done with a model, but the
models available to mobile are very limited, so use the basic way).
[Dirk Hohndel: renamed the results variable and combined a couple of commits]
Signed-off-by: jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'mobile-widgets')
-rw-r--r-- | mobile-widgets/qmlinterface.cpp | 12 | ||||
-rw-r--r-- | mobile-widgets/qmlinterface.h | 11 |
2 files changed, 22 insertions, 1 deletions
diff --git a/mobile-widgets/qmlinterface.cpp b/mobile-widgets/qmlinterface.cpp index df3af0b5f..f666d2dc0 100644 --- a/mobile-widgets/qmlinterface.cpp +++ b/mobile-widgets/qmlinterface.cpp @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 #include "qmlinterface.h" - #include <QQmlEngine> QMLInterface *QMLInterface::instance() @@ -92,4 +91,15 @@ void QMLInterface::setup(QQmlContext *ct) instance(), &QMLInterface::verbatim_planChanged); connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::display_variationsChanged, instance(), &QMLInterface::display_variationsChanged); + + // calculate divesummary first time. + // this is needed in order to load the divesummary page + diveSummary::summaryCalculation(0, 3); +} + + +void QMLInterface::summaryCalculation(int primaryPeriod, int secondaryPeriod) +{ + diveSummary::summaryCalculation(primaryPeriod, secondaryPeriod); + emit diveSummaryTextChanged(diveSummary::diveSummaryText); } diff --git a/mobile-widgets/qmlinterface.h b/mobile-widgets/qmlinterface.h index 9b032505a..45a39206e 100644 --- a/mobile-widgets/qmlinterface.h +++ b/mobile-widgets/qmlinterface.h @@ -7,9 +7,12 @@ #include "core/settings/qPrefTechnicalDetails.h" #include "qt-models/diveplannermodel.h" #include "backend-shared/plannershared.h" +#include "backend-shared/divesummary.h" #include <QObject> #include <QQmlContext> +#include <QStringList> + // This class is a pure interface class and may not contain any implementation code // Allowed are: // header @@ -74,6 +77,8 @@ class QMLInterface : public QObject { Q_PROPERTY(bool verbatim_plan READ verbatim_plan WRITE set_verbatim_plan NOTIFY verbatim_planChanged); Q_PROPERTY(bool display_variations READ display_variations WRITE set_display_variations NOTIFY display_variationsChanged); + Q_PROPERTY(QStringList diveSummaryText READ diveSummaryText NOTIFY diveSummaryTextChanged); + public: static QMLInterface *instance(); @@ -163,6 +168,9 @@ public: }; Q_ENUM(DIVE_MODE); + // Function to calculate dive summary + Q_INVOKABLE void summaryCalculation(int primaryPeriod, int secondaryPeriod); + public: CLOUD_STATUS cloud_verification_status() { return (CLOUD_STATUS)prefs.cloud_verification_status; } DURATION duration_units() { return (DURATION)prefs.units.duration_units; } @@ -209,6 +217,8 @@ public: bool verbatim_plan() { return prefs.verbatim_plan; } bool display_variations() { return prefs.display_variations; } + const QStringList &diveSummaryText() { return diveSummary::diveSummaryText; } + public slots: void set_cloud_verification_status(CLOUD_STATUS value) { qPrefCloudStorage::set_cloud_verification_status(value); } void set_duration_units(DURATION value) { qPrefUnits::set_duration_units((units::DURATION)value); } @@ -301,6 +311,7 @@ signals: void verbatim_planChanged(bool value); void display_variationsChanged(bool value); + void diveSummaryTextChanged(QStringList); private: QMLInterface() {} }; |