diff options
author | willemferguson <willemferguson@zoology.up.ac.za> | 2019-12-09 20:58:20 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-12-25 02:57:42 +0900 |
commit | b6c3cdb20cbcb1654c83d555d278476f55d3d103 (patch) | |
tree | 67c566c81e286391f804660f7cd0017ada058902 /core/settings/qPrefLog.cpp | |
parent | b24caa4e2db42d300e3806ca3d13ce72202a24d8 (diff) | |
download | subsurface-b6c3cdb20cbcb1654c83d555d278476f55d3d103.tar.gz |
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 <willemferguson@zoology.up.ac.za>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'core/settings/qPrefLog.cpp')
-rw-r--r-- | core/settings/qPrefLog.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
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); + |