summaryrefslogtreecommitdiffstats
path: root/core/settings/qPrefDivePlanner.cpp
diff options
context:
space:
mode:
authorGravatar jan Iversen <jani@apache.org>2018-08-01 17:14:04 +0200
committerGravatar Robert C. Helling <helling@atdotde.de>2018-08-08 14:29:50 +0200
commit357510b9cd1eec9fdd598ebd6103f62f30e29807 (patch)
treed7112fa42c48312e12aaf0b42b695f1efcb5c56b /core/settings/qPrefDivePlanner.cpp
parent27b005b76d8a44180734ec43bfbd329f82e7975c (diff)
downloadsubsurface-357510b9cd1eec9fdd598ebd6103f62f30e29807.tar.gz
core: create qPrefDivePlanner from SettingsObjectWrapper
Update set/get functions to follow common name scheme: - get function have same name as in struct diveComputer - set function have set_<name> - signal function have <name>_changed one class one .h/.cpp is the C++ idiom. Having load/sync of each variable in 1 functions (in contrast to the distributed way SettingsObjectWrapper handles it) secures the same storage name is used. Having the set/get/load/sync functions grouped together makes it easier to get an overview. REMARK: this commit only defines the class, it is not active in production Signed-off-by: Jan Iversen <jani@apache.org>
Diffstat (limited to 'core/settings/qPrefDivePlanner.cpp')
-rw-r--r--core/settings/qPrefDivePlanner.cpp97
1 files changed, 97 insertions, 0 deletions
diff --git a/core/settings/qPrefDivePlanner.cpp b/core/settings/qPrefDivePlanner.cpp
new file mode 100644
index 000000000..abeb4f402
--- /dev/null
+++ b/core/settings/qPrefDivePlanner.cpp
@@ -0,0 +1,97 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "core/subsurface-string.h"
+#include "qPrefPrivate.h"
+#include "qPref.h"
+
+#include <QSettings>
+
+static const QString group = QStringLiteral("Planner");
+
+qPrefDivePlanner::qPrefDivePlanner(QObject *parent) : QObject(parent)
+{
+}
+qPrefDivePlanner *qPrefDivePlanner::instance()
+{
+ static qPrefDivePlanner *self = new qPrefDivePlanner;
+ return self;
+}
+
+
+
+void qPrefDivePlanner::loadSync(bool doSync)
+{
+ disk_ascratelast6m(doSync);
+ disk_ascratestops(doSync);
+ disk_ascrate50(doSync);
+ disk_ascrate75(doSync);
+ disk_bestmixend(doSync);
+ disk_bottompo2(doSync);
+ disk_bottomsac(doSync);
+ disk_decopo2(doSync);
+ disk_decosac(doSync);
+ disk_descrate(doSync);
+ disk_display_duration(doSync);
+ disk_display_runtime(doSync);
+ disk_display_transitions(doSync);
+ disk_display_variations(doSync);
+ disk_doo2breaks(doSync);
+ disk_drop_stone_mode(doSync);
+ disk_last_stop(doSync);
+ disk_min_switch_duration(doSync);
+ disk_planner_deco_mode(doSync);
+ disk_problemsolvingtime(doSync);
+ disk_reserve_gas(doSync);
+ disk_sacfactor(doSync);
+ disk_safetystop(doSync);
+ disk_switch_at_req_stop(doSync);
+ disk_verbatim_plan(doSync);
+}
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/ascratelast6m", ascratelast6m);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/ascratestops", ascratestops);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/ascrate50", ascrate50);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/ascrate75", ascrate75);
+
+HANDLE_PREFERENCE_STRUCT(DivePlanner, depth_t, "/bestmixend", bestmixend, mm);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/bottompo2", bottompo2);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/bottomsac", bottomsac);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/decopo2", decopo2);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/decosac", decosac);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/descrate", descrate);
+
+HANDLE_PREFERENCE_BOOL(DivePlanner, "/display_duration", display_duration);
+
+HANDLE_PREFERENCE_BOOL(DivePlanner, "/display_runtime", display_runtime);
+
+HANDLE_PREFERENCE_BOOL(DivePlanner, "/display_transitions", display_transitions);
+HANDLE_PREFERENCE_BOOL(DivePlanner, "/display_variations", display_variations);
+
+HANDLE_PREFERENCE_BOOL(DivePlanner, "/doo2breaks", doo2breaks);
+
+HANDLE_PREFERENCE_BOOL(DivePlanner, "/drop_stone_mode", drop_stone_mode);
+
+HANDLE_PREFERENCE_BOOL(DivePlanner, "/last_stop", last_stop);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/min_switch_duration", min_switch_duration);
+
+HANDLE_PREFERENCE_ENUM(DivePlanner, deco_mode, "/deco_mode", planner_deco_mode);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/problemsolvingtime", problemsolvingtime);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/reserve_gas", reserve_gas);
+
+HANDLE_PREFERENCE_INT(DivePlanner, "/sacfactor", sacfactor);
+
+HANDLE_PREFERENCE_BOOL(DivePlanner, "/safetystop", safetystop);
+
+HANDLE_PREFERENCE_BOOL(DivePlanner, "/switch_at_req_stop", switch_at_req_stop);
+
+HANDLE_PREFERENCE_BOOL(DivePlanner, "/verbatim_plan", verbatim_plan);