From b6c3cdb20cbcb1654c83d555d278476f55d3d103 Mon Sep 17 00:00:00 2001 From: willemferguson Date: Mon, 9 Dec 2019 20:58:20 +0200 Subject: Preferences UI: add dive log tab This adds a tab for dive log - related preferences. A suitable test programs is still required. Signed-off-by: willemferguson Signed-off-by: Dirk Hohndel --- core/settings/qPrefLog.cpp | 59 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 core/settings/qPrefLog.cpp (limited to 'core/settings/qPrefLog.cpp') diff --git a/core/settings/qPrefLog.cpp b/core/settings/qPrefLog.cpp new file mode 100644 index 000000000..2ce9ae550 --- /dev/null +++ b/core/settings/qPrefLog.cpp @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "qPrefLog.h" +#include "qPrefPrivate.h" + +static const QString group = QStringLiteral("LogSettings"); + +qPrefLog *qPrefLog::instance() +{ + static qPrefLog *self = new qPrefLog; + return self; +} + +void qPrefLog::loadSync(bool doSync) +{ + disk_default_filename(doSync); + disk_default_file_behavior(doSync); + disk_use_default_file(doSync); + disk_extraEnvironmentalDefault(doSync); + disk_show_average_depth(doSync); +} + +HANDLE_PREFERENCE_TXT(Log, "default_filename", default_filename); + +void qPrefLog::set_default_file_behavior(enum def_file_behavior value) +{ + if (value != prefs.default_file_behavior || + prefs.default_file_behavior != UNDEFINED_DEFAULT_FILE) { + + if (value == UNDEFINED_DEFAULT_FILE) { + // undefined, so check if there's a filename set and + // use that, otherwise go with no default file + prefs.default_file_behavior = QString(prefs.default_filename).isEmpty() ? NO_DEFAULT_FILE : LOCAL_DEFAULT_FILE; + } else { + prefs.default_file_behavior = value; + } + disk_default_file_behavior(true); + emit instance()->default_file_behaviorChanged(value); + } +} +void qPrefLog::disk_default_file_behavior(bool doSync) +{ + if (doSync) { + qPrefPrivate::propSetValue(keyFromGroupAndName(group, "default_file_behavior"), prefs.default_file_behavior, default_prefs.default_file_behavior); + } else { + prefs.default_file_behavior = (enum def_file_behavior)qPrefPrivate::propValue(keyFromGroupAndName(group, "default_file_behavior"), default_prefs.default_file_behavior).toInt(); + if (prefs.default_file_behavior == UNDEFINED_DEFAULT_FILE) + // undefined, so check if there's a filename set and + // use that, otherwise go with no default file + prefs.default_file_behavior = QString(prefs.default_filename).isEmpty() ? NO_DEFAULT_FILE : LOCAL_DEFAULT_FILE; + } +} + + +HANDLE_PREFERENCE_BOOL(Log, "extraEnvironmentalDefault", extraEnvironmentalDefault); + +HANDLE_PREFERENCE_BOOL(Log, "use_default_file", use_default_file); + +HANDLE_PREFERENCE_BOOL(Log, "show_average_depth", show_average_depth); + -- cgit v1.2.3-70-g09d2