diff options
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() {} }; |