diff options
author | jan Iversen <jan@casacondor.com> | 2020-01-19 18:44:16 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-01-20 15:46:08 -0800 |
commit | 699665ce9e4c1bdb9a4e1027fc3d1533c1929054 (patch) | |
tree | 2c7db7c6105cccddd055abfae96409654cf2a256 | |
parent | d924afdf52b578c3afccfc7e702acdbb7800d38c (diff) | |
download | subsurface-699665ce9e4c1bdb9a4e1027fc3d1533c1929054.tar.gz |
mobile-widgets: add asc/desc rates to pure interface
Make ascent/descent rates available to QML through the Backend interface.
Remark signals from qPrefDivePlanner is used because the diveplanner model
sets qPrefDivePlanner but does not issue its own signals.
Signed-off-by: jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | mobile-widgets/qmlinterface.cpp | 11 | ||||
-rw-r--r-- | mobile-widgets/qmlinterface.h | 26 |
2 files changed, 37 insertions, 0 deletions
diff --git a/mobile-widgets/qmlinterface.cpp b/mobile-widgets/qmlinterface.cpp index e4f2dd6e5..e422a5856 100644 --- a/mobile-widgets/qmlinterface.cpp +++ b/mobile-widgets/qmlinterface.cpp @@ -36,4 +36,15 @@ void QMLInterface::setup(QQmlContext *ct) [=] (int value) { emit instance()->volumeChanged(VOLUME(value)); }); connect(qPrefUnits::instance(), &qPrefUnits::weightChanged, [=] (int value) { emit instance()->weightChanged(WEIGHT(value)); }); + + connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::ascratelast6mChanged, + instance(), &QMLInterface::ascratelast6mChanged); + connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::ascratestopsChanged, + instance(), &QMLInterface::ascratestopsChanged); + connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::ascrate50Changed, + instance(), &QMLInterface::ascrate50Changed); + connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::ascrate75Changed, + instance(), &QMLInterface::ascrate75Changed); + connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::descrateChanged, + instance(), &QMLInterface::descrateChanged); } diff --git a/mobile-widgets/qmlinterface.h b/mobile-widgets/qmlinterface.h index fca87260e..7d96785bf 100644 --- a/mobile-widgets/qmlinterface.h +++ b/mobile-widgets/qmlinterface.h @@ -3,6 +3,8 @@ #define QMLINTERFACE_H #include "core/settings/qPrefCloudStorage.h" #include "core/settings/qPrefUnit.h" +#include "core/settings/qPrefDivePlanner.h" +#include "qt-models/diveplannermodel.h" #include <QObject> #include <QQmlContext> @@ -35,6 +37,12 @@ class QMLInterface : public QObject { Q_PROPERTY(VOLUME volume READ volume WRITE set_volume NOTIFY volumeChanged) Q_PROPERTY(WEIGHT weight READ weight WRITE set_weight NOTIFY weightChanged) + Q_PROPERTY(int ascratelast6m READ ascratelast6m WRITE set_ascratelast6m NOTIFY ascratelast6mChanged); + Q_PROPERTY(int ascratestops READ ascratestops WRITE set_ascratestops NOTIFY ascratestopsChanged); + Q_PROPERTY(int ascrate50 READ ascrate50 WRITE set_ascrate50 NOTIFY ascrate50Changed); + Q_PROPERTY(int ascrate75 READ ascrate75 WRITE set_ascrate75 NOTIFY ascrate75Changed); + Q_PROPERTY(int descrate READ descrate WRITE set_descrate NOTIFY descrateChanged); + public: static QMLInterface *instance(); @@ -120,6 +128,12 @@ public: VOLUME volume() { return (VOLUME)prefs.units.volume; } WEIGHT weight() { return (WEIGHT)prefs.units.weight; } + int ascratelast6m() { return DivePlannerPointsModel::instance()->ascratelast6mDisplay(); } + int ascratestops() { return DivePlannerPointsModel::instance()->ascratestopsDisplay(); } + int ascrate50() { return DivePlannerPointsModel::instance()->ascrate50Display(); } + int ascrate75() { return DivePlannerPointsModel::instance()->ascrate75Display(); } + int descrate() { return DivePlannerPointsModel::instance()->descrateDisplay(); } + 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); } @@ -131,6 +145,12 @@ public slots: void set_volume(VOLUME value) { qPrefUnits::set_volume((units::VOLUME)value); } void set_weight(WEIGHT value) { qPrefUnits::set_weight((units::WEIGHT)value); } + void set_ascratelast6m(int value) { DivePlannerPointsModel::instance()->setAscratelast6mDisplay(value); } + void set_ascratestops(int value) { DivePlannerPointsModel::instance()->setAscratestopsDisplay(value); } + void set_ascrate50(int value) { DivePlannerPointsModel::instance()->setAscrate50Display(value); } + void set_ascrate75(int value) { DivePlannerPointsModel::instance()->setAscrate75Display(value); } + void set_descrate(int value) { DivePlannerPointsModel::instance()->setDescrateDisplay(value); } + signals: void cloud_verification_statusChanged(CLOUD_STATUS); void duration_unitsChanged(DURATION); @@ -142,6 +162,12 @@ signals: void volumeChanged(VOLUME); void weightChanged(WEIGHT); + void ascratelast6mChanged(int); + void ascratestopsChanged(int); + void ascrate50Changed(int); + void ascrate75Changed(int); + void descrateChanged(int); + private: QMLInterface() {} }; |