Dear all,
SettingsObjectWrapper.cpp is a glue between the C-style pref struct and the
Qt-frontend. The setter functions are full of repetitive code (in some cases
with subtle differences). In principle they always do:
- check if difference (return if none)
- set field in pref struct
- set field in SettingsObjectWrapper
- emit signal
Side note: Unfortunately, in some cases representations in pref and
SettingsObjectWrapper differ. :(
So I wonder if it would be preferred to use helper functions to do that. In
the attachment is a proof of concept. It reduces the number of lines by 579,
that is a not too shabby 23.9%. I decided to keep the emit external to the
functions, because sometimes other actions are taken prior to the emit.
You might say that the line count is cheating because more information is
crammed into a single line. Nevertheless, I think that using helper functions
(once matured) should be less error prone. Look for example at setNextCheck():
It does
date.toString() == prefs.update_manager.next_check
and then
copy_string(qPrintable(date.toString("dd/MM/yyyy")))
Both toString() methods will give different things. This kind of discrepancy
can be avoided.
For consistency, I made a few C-strings non-const. And ultimately also the
return of system_default_filename(void). If preferred, the latter could be kept
const and the const cast away when assigning to the item of the pref struct.
Note that this is really only a quick proof of concept and I probably
introduced numerous bugs. But if you think this is a good idea, I can try to
go over each case and check it for plausibility.
Berthold
>From b8db2aa26dc5db064397041e958ef1a3232a464d Mon Sep 17 00:00:00 2001
From: Berthold Stoeger <[email protected]>
Date: Sat, 18 Nov 2017 08:23:15 +0100
Subject: [PATCH] Replace repetitive code in SettingsObjectWrapper.cpp by
functions
Repetitive compare and set code in SettingsObjectWrapper.cpp is replaced
by functions, thus shortening the line count by ca. 24%. The emitting
of signals is not moved into the functions for flexibility: in some cases
other operations are performed before emit.
A number of strings in the pref struct is made non-const for consistency.
---
core/android.cpp | 2 +-
core/linux.c | 2 +-
core/macos.c | 2 +-
core/pref.h | 22 +-
core/subsurface-qt/SettingsObjectWrapper.cpp | 1115 +++++++-------------------
5 files changed, 282 insertions(+), 861 deletions(-)
diff --git a/core/android.cpp b/core/android.cpp
index 7c9965c16..2ce0ed0a9 100644
--- a/core/android.cpp
+++ b/core/android.cpp
@@ -63,7 +63,7 @@ const char *system_default_directory(void)
return path;
}
-const char *system_default_filename(void)
+char *system_default_filename(void)
{
static const char *filename = "subsurface.xml";
static const char *path = NULL;
diff --git a/core/linux.c b/core/linux.c
index da96ecb49..cfd6f133e 100644
--- a/core/linux.c
+++ b/core/linux.c
@@ -81,7 +81,7 @@ const char *system_default_directory(void)
return path;
}
-const char *system_default_filename(void)
+char *system_default_filename(void)
{
static char *filename = NULL;
if (!filename) {
diff --git a/core/macos.c b/core/macos.c
index b16225c78..bf4cbc3b6 100644
--- a/core/macos.c
+++ b/core/macos.c
@@ -79,7 +79,7 @@ const char *system_default_directory(void)
return path;
}
-const char *system_default_filename(void)
+char *system_default_filename(void)
{
static char *filename = NULL;
if (!filename) {
diff --git a/core/pref.h b/core/pref.h
index d00d766a5..39a3f47b6 100644
--- a/core/pref.h
+++ b/core/pref.h
@@ -32,8 +32,8 @@ typedef struct {
} geocoding_prefs_t;
typedef struct {
- const char *language;
- const char *lang_locale;
+ char *language;
+ char *lang_locale;
bool use_system_language;
} locale_prefs_t;
@@ -59,14 +59,14 @@ typedef struct {
} dive_computer_prefs_t;
struct preferences {
- const char *divelist_font;
- const char *default_filename;
- const char *default_cylinder;
- const char *cloud_base_url;
- const char *cloud_git_url;
- const char *time_format;
- const char *date_format;
- const char *date_format_short;
+ char *divelist_font;
+ char *default_filename;
+ char *default_cylinder;
+ char *cloud_base_url;
+ char *cloud_git_url;
+ char *time_format;
+ char *date_format;
+ char *date_format_short;
bool time_format_override;
bool date_format_override;
double font_size;
@@ -185,7 +185,7 @@ extern const char *system_divelist_default_font;
extern double system_divelist_default_font_size;
extern const char *system_default_directory(void);
-extern const char *system_default_filename();
+extern char *system_default_filename();
extern bool subsurface_ignore_font(const char *font);
extern void subsurface_OS_pref_setup();
diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp
index efd1cda6c..aca06b5ed 100644
--- a/core/subsurface-qt/SettingsObjectWrapper.cpp
+++ b/core/subsurface-qt/SettingsObjectWrapper.cpp
@@ -9,6 +9,44 @@
#include "core/dive.h" // TODO: remove copy_string from dive.h
#include "core/helpers.h"
+namespace {
+
+template<typename T1, typename T2>
+bool set(const QString& group, const char *name, T1 value, T2 &prefs_value)
+{
+ if (value == prefs_value)
+ return false;
+ QSettings s;
+ if (!group.isEmpty())
+ s.beginGroup(group);
+ s.setValue(name, value);
+ prefs_value = static_cast<T2>(value);
+ return true;
+}
+
+template<>
+bool set<QString, char*> (const QString& group, const char *name, QString value, char *&prefs_value)
+{
+ if (value == prefs_value)
+ return false;
+ QSettings s;
+ if (!group.isEmpty())
+ s.beginGroup(group);
+ s.setValue(name, value);
+ free(prefs_value);
+ prefs_value = copy_string(qPrintable(value));
+ return true;
+}
+
+template<>
+bool set<QDate, char*> (const QString& group, const char *name, QDate value, char *&prefs_value)
+{
+ QString value_fmt = value.toString("dd/MM/yyyy");
+ return set(group, name, value_fmt, prefs_value);
+}
+
+} // Anonymous namespace
+
DiveComputerSettings::DiveComputerSettings(QObject *parent):
QObject(parent)
{
@@ -39,63 +77,29 @@ int DiveComputerSettings::downloadMode() const
return prefs.dive_computer.download_mode;
}
-void DiveComputerSettings::setVendor(const QString& vendor)
+void DiveComputerSettings::setVendor(const QString& value)
{
- if (vendor == prefs.dive_computer.vendor)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("dive_computer_vendor", vendor);
- free(prefs.dive_computer.vendor);
- prefs.dive_computer.vendor = copy_string(qPrintable(vendor));
+ set(group, "dive_computer_vendor", value, prefs.dive_computer.vendor);
}
-void DiveComputerSettings::setProduct(const QString& product)
+void DiveComputerSettings::setProduct(const QString& value)
{
- if (product == prefs.dive_computer.product)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("dive_computer_product", product);
- free(prefs.dive_computer.product);
- prefs.dive_computer.product = copy_string(qPrintable(product));
+ set(group, "dive_computer_product", value, prefs.dive_computer.product);
}
-void DiveComputerSettings::setDevice(const QString& device)
+void DiveComputerSettings::setDevice(const QString& value)
{
- if (device == prefs.dive_computer.device)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("dive_computer_device", device);
- free(prefs.dive_computer.device);
- prefs.dive_computer.device = copy_string(qPrintable(device));
+ set(group, "dive_computer_device", value, prefs.dive_computer.device);
}
-void DiveComputerSettings::setDeviceName(const QString& device_name)
+void DiveComputerSettings::setDeviceName(const QString& value)
{
- if (device_name == prefs.dive_computer.device_name)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("dive_computer_device_name", device_name);
- free(prefs.dive_computer.device_name);
- prefs.dive_computer.device_name = copy_string(qPrintable(device_name));
+ set(group, "dive_computer_device_name", value, prefs.dive_computer.device_name);
}
-void DiveComputerSettings::setDownloadMode(int mode)
+void DiveComputerSettings::setDownloadMode(int value)
{
- if (mode == prefs.dive_computer.download_mode)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("dive_computer_download_mode", mode);
- prefs.dive_computer.download_mode = mode;
+ set(group, "dive_computer_download_mode", value, prefs.dive_computer.download_mode);
}
UpdateManagerSettings::UpdateManagerSettings(QObject *parent) : QObject(parent)
@@ -125,44 +129,24 @@ QDate UpdateManagerSettings::nextCheck() const
void UpdateManagerSettings::setDontCheckForUpdates(bool value)
{
- if (value == prefs.update_manager.dont_check_for_updates)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("DontCheckForUpdates", value);
- prefs.update_manager.dont_check_for_updates = value;
- prefs.update_manager.dont_check_exists = true;
- emit dontCheckForUpdatesChanged(value);
+ if (set(group, "DontCheckForUpdates", value, prefs.update_manager.dont_check_for_updates)) {
+ prefs.update_manager.dont_check_exists = true;
+ emit dontCheckForUpdatesChanged(value);
+ }
}
void UpdateManagerSettings::setLastVersionUsed(const QString& value)
{
- if (value == prefs.update_manager.last_version_used)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("LastVersionUsed", value);
- free (prefs.update_manager.last_version_used);
- prefs.update_manager.last_version_used = copy_string(qPrintable(value));
- emit lastVersionUsedChanged(value);
+ if (set(group, "LastVersionUsed", value, prefs.update_manager.last_version_used))
+ emit lastVersionUsedChanged(value);
}
-void UpdateManagerSettings::setNextCheck(const QDate& date)
+void UpdateManagerSettings::setNextCheck(const QDate& value)
{
- if (date.toString() == prefs.update_manager.next_check)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("NextCheck", date);
- free (prefs.update_manager.next_check);
- prefs.update_manager.next_check = copy_string(qPrintable(date.toString("dd/MM/yyyy")));
- emit nextCheckChanged(date);
+ if (set(group, "NextCheck", value, prefs.update_manager.next_check))
+ emit nextCheckChanged(value);
}
-
PartialPressureGasSettings::PartialPressureGasSettings(QObject* parent):
QObject(parent)
{
@@ -207,86 +191,44 @@ double PartialPressureGasSettings::pheThreshold() const
void PartialPressureGasSettings::setShowPo2(short value)
{
- if (value == prefs.pp_graphs.po2)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("po2graph", value);
- prefs.pp_graphs.po2 = value;
- emit showPo2Changed(value);
+ if (set(group, "po2graph", value, prefs.pp_graphs.po2))
+ emit showPo2Changed(value);
}
void PartialPressureGasSettings::setShowPn2(short value)
{
- if (value == prefs.pp_graphs.pn2)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("pn2graph", value);
- prefs.pp_graphs.pn2 = value;
- emit showPn2Changed(value);
+ if (set(group, "pn2graph", value, prefs.pp_graphs.pn2))
+ emit showPn2Changed(value);
}
void PartialPressureGasSettings::setShowPhe(short value)
{
- if (value == prefs.pp_graphs.phe)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("phegraph", value);
- prefs.pp_graphs.phe = value;
- emit showPheChanged(value);
+ if (set(group, "phegraph", value, prefs.pp_graphs.phe))
+ emit showPheChanged(value);
}
void PartialPressureGasSettings::setPo2ThresholdMin(double value)
{
- if (value == prefs.pp_graphs.po2_threshold_min)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("po2thresholdmin", value);
- prefs.pp_graphs.po2_threshold_min = value;
- emit po2ThresholdMinChanged(value);
+ if (set(group, "po2thresholdmin", value, prefs.pp_graphs.po2_threshold_min))
+ emit po2ThresholdMinChanged(value);
}
void PartialPressureGasSettings::setPo2ThresholdMax(double value)
{
- if (value == prefs.pp_graphs.po2_threshold_max)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("po2thresholdmax", value);
- prefs.pp_graphs.po2_threshold_max = value;
- emit po2ThresholdMaxChanged(value);
+ if (set(group, "po2thresholdmax", value, prefs.pp_graphs.po2_threshold_max))
+ emit po2ThresholdMaxChanged(value);
}
void PartialPressureGasSettings::setPn2Threshold(double value)
{
- if (value == prefs.pp_graphs.pn2_threshold)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("pn2threshold", value);
- prefs.pp_graphs.pn2_threshold = value;
- emit pn2ThresholdChanged(value);
+ if (set(group, "pn2threshold", value, prefs.pp_graphs.pn2_threshold))
+ emit pn2ThresholdChanged(value);
}
void PartialPressureGasSettings::setPheThreshold(double value)
{
- if (value == prefs.pp_graphs.phe_threshold)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("phethreshold", value);
- prefs.pp_graphs.phe_threshold = value;
- emit pheThresholdChanged(value);
+ if (set(group, "phethreshold", value, prefs.pp_graphs.phe_threshold))
+ emit pheThresholdChanged(value);
}
@@ -301,16 +243,10 @@ deco_mode TechnicalDetailsSettings::deco() const
return prefs.display_deco_mode;
}
-void TechnicalDetailsSettings::setDecoMode(deco_mode d)
+void TechnicalDetailsSettings::setDecoMode(deco_mode value)
{
- if (prefs.display_deco_mode == d)
- return;
-
- prefs.display_deco_mode = d;
- QSettings s;
- s.beginGroup(group);
- s.setValue("display_deco_mode", d);
- emit decoModeChanged(d);
+ if (set(group, "display_deco_mode", value, prefs.display_deco_mode))
+ emit decoModeChanged(value);
}
double TechnicalDetailsSettings:: modpO2() const
@@ -435,122 +371,62 @@ bool TechnicalDetailsSettings::showPicturesInProfile() const
void TechnicalDetailsSettings::setModpO2(double value)
{
- if (value == prefs.modpO2)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("modpO2", value);
- prefs.modpO2 = value;
- emit modpO2Changed(value);
+ if (set(group, "modpO2", value, prefs.modpO2))
+ emit modpO2Changed(value);
}
void TechnicalDetailsSettings::setShowPicturesInProfile(bool value)
{
- if (value == prefs.show_pictures_in_profile)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("show_pictures_in_profile", value);
- prefs.show_pictures_in_profile = value;
- emit showPicturesInProfileChanged(value);
+ if (set(group, "show_pictures_in_profile", value, prefs.show_pictures_in_profile))
+ emit showPicturesInProfileChanged(value);
}
void TechnicalDetailsSettings::setEad(bool value)
{
- if (value == prefs.ead)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("ead", value);
- prefs.ead = value;
- emit eadChanged(value);
+ if (set(group, "ead", value, prefs.ead))
+ emit eadChanged(value);
}
void TechnicalDetailsSettings::setMod(bool value)
{
- if (value == prefs.mod)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("mod", value);
- prefs.mod = value;
- emit modChanged(value);
+ if (set(group, "mod", value, prefs.mod))
+ emit modChanged(value);
}
void TechnicalDetailsSettings::setDCceiling(bool value)
{
- if (value == prefs.dcceiling)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("dcceiling", value);
- prefs.dcceiling = value;
- emit dcceilingChanged(value);
+ if (set(group, "dcceiling", value, prefs.dcceiling))
+ emit dcceilingChanged(value);
}
void TechnicalDetailsSettings::setRedceiling(bool value)
{
- if (value == prefs.redceiling)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("redceiling", value);
- prefs.redceiling = value;
- emit redceilingChanged(value);
+ if (set(group, "redceiling", value, prefs.redceiling))
+ emit redceilingChanged(value);
}
void TechnicalDetailsSettings::setCalcceiling(bool value)
{
- if (value == prefs.calcceiling)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("calcceiling", value);
- prefs.calcceiling = value;
- emit calcceilingChanged(value);
+ if (set(group, "calcceiling", value, prefs.calcceiling))
+ emit calcceilingChanged(value);
}
void TechnicalDetailsSettings::setCalcceiling3m(bool value)
{
- if (value == prefs.calcceiling3m)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("calcceiling3m", value);
- prefs.calcceiling3m = value;
- emit calcceiling3mChanged(value);
+ if (set(group, "calcceiling3m", value, prefs.calcceiling3m))
+ emit calcceiling3mChanged(value);
}
void TechnicalDetailsSettings::setCalcalltissues(bool value)
{
- if (value == prefs.calcalltissues)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("calcalltissues", value);
- prefs.calcalltissues = value;
- emit calcalltissuesChanged(value);
+ if (set(group, "calcalltissues", value, prefs.calcalltissues))
+ emit calcalltissuesChanged(value);
}
void TechnicalDetailsSettings::setCalcndltts(bool value)
{
- if (value == prefs.calcndltts)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("calcndltts", value);
- prefs.calcndltts = value;
- emit calcndlttsChanged(value);
+ if (set(group, "calcndltts", value, prefs.calcndltts))
+ emit calcndlttsChanged(value);
}
void TechnicalDetailsSettings::setBuehlmann(bool value)
@@ -566,156 +442,87 @@ void TechnicalDetailsSettings::setBuehlmann(bool value)
void TechnicalDetailsSettings::setGflow(int value)
{
- if (value == prefs.gflow)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("gflow", value);
- prefs.gflow = value;
- set_gf(prefs.gflow, prefs.gfhigh);
- emit gflowChanged(value);
+ if (set(group, "gflow", value, prefs.gflow)) {
+ set_gf(value, prefs.gfhigh);
+ emit gflowChanged(value);
+ }
}
void TechnicalDetailsSettings::setGfhigh(int value)
{
- if (value == prefs.gfhigh)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("gfhigh", value);
- prefs.gfhigh = value;
- set_gf(prefs.gflow, prefs.gfhigh);
- emit gfhighChanged(value);
+ if (set(group, "gfhigh", value, prefs.gfhigh)) {
+ set_gf(prefs.gflow, value);
+ emit gfhighChanged(value);
+ }
}
void TechnicalDetailsSettings::setVpmbConservatism(short value)
{
- if (value == prefs.vpmb_conservatism)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("vpmb_conservatism", value);
- prefs.vpmb_conservatism = value;
- set_vpmb_conservatism(value);
- emit vpmbConservatismChanged(value);
+ if (set(group, "vpmb_conservatism", value, prefs.vpmb_conservatism)) {
+ set_vpmb_conservatism(value);
+ emit vpmbConservatismChanged(value);
+ }
}
void TechnicalDetailsSettings::setHRgraph(bool value)
{
- if (value == prefs.hrgraph)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("hrgraph", value);
- prefs.hrgraph = value;
- emit hrgraphChanged(value);
+ if (set(group, "hrgraph", value, prefs.hrgraph))
+ emit hrgraphChanged(value);
}
void TechnicalDetailsSettings::setTankBar(bool value)
{
- if (value == prefs.tankbar)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("tankbar", value);
- prefs.tankbar = value;
- emit tankBarChanged(value);
+ if (set(group, "tankbar", value, prefs.tankbar))
+ emit tankBarChanged(value);
}
void TechnicalDetailsSettings::setPercentageGraph(bool value)
{
- if (value == prefs.percentagegraph)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("percentagegraph", value);
- prefs.percentagegraph = value;
- emit percentageGraphChanged(value);
+ if (set(group, "percentagegraph", value, prefs.percentagegraph))
+ emit percentageGraphChanged(value);
}
void TechnicalDetailsSettings::setRulerGraph(bool value)
{
- if (value == prefs.rulergraph)
- return;
/* TODO: search for the QSettings of the RulerBar */
- QSettings s;
- s.beginGroup(group);
- s.setValue("RulerBar", value);
- prefs.rulergraph = value;
- emit rulerGraphChanged(value);
+ if (set(group, "RulerBar", value, prefs.rulergraph))
+ emit rulerGraphChanged(value);
}
void TechnicalDetailsSettings::setShowCCRSetpoint(bool value)
{
- if (value == prefs.show_ccr_setpoint)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("show_ccr_setpoint", value);
- prefs.show_ccr_setpoint = value;
- emit showCCRSetpointChanged(value);
+ if (set(group, "show_ccr_setpoint", value, prefs.show_ccr_setpoint))
+ emit showCCRSetpointChanged(value);
}
void TechnicalDetailsSettings::setShowCCRSensors(bool value)
{
- if (value == prefs.show_ccr_sensors)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("show_ccr_sensors", value);
- prefs.show_ccr_sensors = value;
- emit showCCRSensorsChanged(value);
+ if (set(group, "show_ccr_sensors", value, prefs.show_ccr_sensors))
+ emit showCCRSensorsChanged(value);
}
void TechnicalDetailsSettings::setZoomedPlot(bool value)
{
- if (value == prefs.zoomed_plot)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("zoomed_plot", value);
- prefs.zoomed_plot = value;
- emit zoomedPlotChanged(value);
+ if (set(group, "zoomed_plit", value, prefs.zoomed_plot))
+ emit zoomedPlotChanged(value);
}
void TechnicalDetailsSettings::setShowSac(bool value)
{
- if (value == prefs.show_sac)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("show_sac", value);
- prefs.show_sac = value;
- emit showSacChanged(value);
+ if (set(group, "show_sac", value, prefs.show_sac))
+ emit showSacChanged(value);
}
void TechnicalDetailsSettings::setDisplayUnusedTanks(bool value)
{
- if (value == prefs.display_unused_tanks)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("display_unused_tanks", value);
- prefs.display_unused_tanks = value;
- emit displayUnusedTanksChanged(value);
+ if (set(group, "display_unused_tanks", value, prefs.display_unused_tanks))
+ emit displayUnusedTanksChanged(value);
}
void TechnicalDetailsSettings::setShowAverageDepth(bool value)
{
- if (value == prefs.show_average_depth)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("show_average_depth", value);
- prefs.show_average_depth = value;
- emit showAverageDepthChanged(value);
+ if (set(group, "show_average_depth", value, prefs.show_average_depth))
+ emit showAverageDepthChanged(value);
}
FacebookSettings::FacebookSettings(QObject *parent) :
@@ -807,35 +614,20 @@ taxonomy_category GeocodingPreferences::thirdTaxonomyCategory() const
void GeocodingPreferences::setFirstTaxonomyCategory(taxonomy_category value)
{
- if (value == prefs.geocoding.category[0])
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("cat0", value);
- prefs.geocoding.category[0] = value;
- emit firstTaxonomyCategoryChanged(value);
+ if (set(group, "cat0", value, prefs.geocoding.category[0]))
+ emit firstTaxonomyCategoryChanged(value);
}
void GeocodingPreferences::setSecondTaxonomyCategory(taxonomy_category value)
{
- if (value == prefs.geocoding.category[1])
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("cat1", value);
- prefs.geocoding.category[1]= value;
- emit secondTaxonomyCategoryChanged(value);
+ if (set(group, "cat1", value, prefs.geocoding.category[1]))
+ emit secondTaxonomyCategoryChanged(value);
}
void GeocodingPreferences::setThirdTaxonomyCategory(taxonomy_category value)
{
- if (value == prefs.geocoding.category[2])
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("cat2", value);
- prefs.geocoding.category[2] = value;
- emit thirdTaxonomyCategoryChanged(value);
+ if (set(group, "cat2", value, prefs.geocoding.category[2]))
+ emit thirdTaxonomyCategoryChanged(value);
}
ProxySettings::ProxySettings(QObject *parent) :
@@ -875,71 +667,38 @@ QString ProxySettings::pass() const
void ProxySettings::setType(int value)
{
- if (value == prefs.proxy_type)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("proxy_type", value);
- prefs.proxy_type = value;
- emit typeChanged(value);
+ if (set(group, "proxy_type", value, prefs.proxy_type))
+ emit typeChanged(value);
}
void ProxySettings::setHost(const QString& value)
{
- if (value == prefs.proxy_host)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("proxy_host", value);
- free(prefs.proxy_host);
- prefs.proxy_host = copy_string(qPrintable(value));
- emit hostChanged(value);
+ if (set(group, "proxy_host", value, prefs.proxy_host))
+ emit hostChanged(value);
}
void ProxySettings::setPort(int value)
{
- if (value == prefs.proxy_port)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("proxy_port", value);
- prefs.proxy_port = value;
- emit portChanged(value);
+ if (set(group, "proxy_port", value, prefs.proxy_port))
+ emit portChanged(value);
}
void ProxySettings::setAuth(bool value)
{
- if (value == prefs.proxy_auth)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("proxy_auth", value);
- prefs.proxy_auth = value;
- emit authChanged(value);
+ if (set(group, "proxy_auth", value, prefs.proxy_auth))
+ emit authChanged(value);
}
void ProxySettings::setUser(const QString& value)
{
- if (value == prefs.proxy_user)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("proxy_user", value);
- free(prefs.proxy_user);
- prefs.proxy_user = copy_string(qPrintable(value));
- emit userChanged(value);
+ if (set(group, "proxy_user", value, prefs.proxy_user))
+ emit userChanged(value);
}
void ProxySettings::setPass(const QString& value)
{
- if (value == prefs.proxy_pass)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("proxy_pass", value);
- free(prefs.proxy_pass);
- prefs.proxy_pass = copy_string(qPrintable(value));
- emit passChanged(value);
+ if (set(group, "proxy_pass", value, prefs.proxy_pass))
+ emit passChanged(value);
}
CloudStorageSettings::CloudStorageSettings(QObject *parent) :
@@ -1005,14 +764,8 @@ QString CloudStorageSettings::gitUrl() const
void CloudStorageSettings::setPassword(const QString& value)
{
- if (value == prefs.cloud_storage_password)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("password", value);
- free(prefs.cloud_storage_password);
- prefs.cloud_storage_password = copy_string(qPrintable(value));
- emit passwordChanged(value);
+ if (set(group, "password", value, prefs.cloud_storage_password))
+ emit passwordChanged(value);
}
void CloudStorageSettings::setNewPassword(const QString& value)
@@ -1027,26 +780,15 @@ void CloudStorageSettings::setNewPassword(const QString& value)
void CloudStorageSettings::setEmail(const QString& value)
{
- if (value == prefs.cloud_storage_email)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("email", value);
- free(prefs.cloud_storage_email);
- prefs.cloud_storage_email = copy_string(qPrintable(value));
- emit emailChanged(value);
+ if (set(group, "email", value, prefs.cloud_storage_email))
+ emit emailChanged(value);
}
void CloudStorageSettings::setUserId(const QString& value)
{
- if (value == prefs.userid)
- return;
//WARNING: UserId is stored outside of any group, but it belongs to Cloud Storage.
- QSettings s;
- s.setValue("subsurface_webservice_uid", value);
- free(prefs.userid);
- prefs.userid = copy_string(qPrintable(value));
- emit userIdChanged(value);
+ if (set(QString(), "subsurface_webservice_uid", value, prefs.userid))
+ emit userIdChanged(value);
}
void CloudStorageSettings::setEmailEncoded(const QString& value)
@@ -1061,35 +803,20 @@ void CloudStorageSettings::setEmailEncoded(const QString& value)
void CloudStorageSettings::setSavePasswordLocal(bool value)
{
- if (value == prefs.save_password_local)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("save_password_local", value);
- prefs.save_password_local = value;
- emit savePasswordLocalChanged(value);
+ if (set(group, "save_password_local", value, prefs.save_password_local))
+ emit savePasswordLocalChanged(value);
}
void CloudStorageSettings::setVerificationStatus(short value)
{
- if (value == prefs.cloud_verification_status)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("cloud_verification_status", value);
- prefs.cloud_verification_status = value;
- emit verificationStatusChanged(value);
+ if (set(group, "cloud_verification_status", value, prefs.cloud_verification_status))
+ emit verificationStatusChanged(value);
}
void CloudStorageSettings::setBackgroundSync(bool value)
{
- if (value == prefs.cloud_background_sync)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("cloud_background_sync", value);
- prefs.cloud_background_sync = value;
- emit backgroundSyncChanged(value);
+ if (set(group, "cloud_background_sync", value, prefs.cloud_background_sync))
+ emit backgroundSyncChanged(value);
}
void CloudStorageSettings::setSaveUserIdLocal(short int value)
@@ -1130,13 +857,8 @@ void CloudStorageSettings::setGitUrl(const QString& value)
void CloudStorageSettings::setGitLocalOnly(bool value)
{
- if (value == prefs.git_local_only)
- return;
- QSettings s;
- s.beginGroup("CloudStorage");
- s.setValue("git_local_only", value);
- prefs.git_local_only = value;
- emit gitLocalOnlyChanged(value);
+ if (set(group, "git_local_only", value, prefs.git_local_only))
+ emit gitLocalOnlyChanged(value);
}
DivePlannerSettings::DivePlannerSettings(QObject *parent) :
@@ -1271,295 +993,152 @@ deco_mode DivePlannerSettings::decoMode() const
void DivePlannerSettings::setLastStop(bool value)
{
- if (value == prefs.last_stop)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("last_stop", value);
- prefs.last_stop = value;
- emit lastStopChanged(value);
+ if (set(group, "last_stop", value, prefs.last_stop))
+ emit lastStopChanged(value);
}
void DivePlannerSettings::setVerbatimPlan(bool value)
{
- if (value == prefs.verbatim_plan)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("verbatim_plan", value);
- prefs.verbatim_plan = value;
- emit verbatimPlanChanged(value);
+ if (set(group, "verbatim_plan", value, prefs.verbatim_plan))
+ emit verbatimPlanChanged(value);
}
void DivePlannerSettings::setDisplayRuntime(bool value)
{
- if (value == prefs.display_runtime)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("display_runtime", value);
- prefs.display_runtime = value;
- emit displayRuntimeChanged(value);
+ if (set(group, "display_runtime", value, prefs.display_runtime))
+ emit displayRuntimeChanged(value);
}
void DivePlannerSettings::setDisplayDuration(bool value)
{
- if (value == prefs.display_duration)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("display_duration", value);
- prefs.display_duration = value;
- emit displayDurationChanged(value);
+ if (set(group, "display_duration", value, prefs.display_duration))
+ emit displayDurationChanged(value);
}
void DivePlannerSettings::setDisplayTransitions(bool value)
{
- if (value == prefs.display_transitions)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("display_transitions", value);
- prefs.display_transitions = value;
- emit displayTransitionsChanged(value);
+ if (set(group, "display_transitions", value, prefs.display_transitions))
+ emit displayTransitionsChanged(value);
}
void DivePlannerSettings::setDisplayVariations(bool value)
{
- if (value == prefs.display_variations)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("display_variations", value);
- prefs.display_variations = value;
- emit displayVariationsChanged(value);
+ if (set(group, "display_variations", value, prefs.display_variations))
+ emit displayVariationsChanged(value);
}
void DivePlannerSettings::setDoo2breaks(bool value)
{
- if (value == prefs.doo2breaks)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("doo2breaks", value);
- prefs.doo2breaks = value;
- emit doo2breaksChanged(value);
+ if (set(group, "doo2breaks", value, prefs.doo2breaks))
+ emit doo2breaksChanged(value);
}
void DivePlannerSettings::setDropStoneMode(bool value)
{
- if (value == prefs.drop_stone_mode)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("drop_stone_mode", value);
- prefs.drop_stone_mode = value;
- emit dropStoneModeChanged(value);
+ if (set(group, "drop_stone_mode", value, prefs.drop_stone_mode))
+ emit dropStoneModeChanged(value);
}
void DivePlannerSettings::setSafetyStop(bool value)
{
- if (value == prefs.safetystop)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("safetystop", value);
- prefs.safetystop = value;
- emit safetyStopChanged(value);
+ if (set(group, "safetystop", value, prefs.safetystop))
+ emit safetyStopChanged(value);
}
void DivePlannerSettings::setSwitchAtRequiredStop(bool value)
{
- if (value == prefs.switch_at_req_stop)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("switch_at_req_stop", value);
- prefs.switch_at_req_stop = value;
- emit switchAtRequiredStopChanged(value);
+ if (set(group, "switch_at_req_stop", value, prefs.switch_at_req_stop))
+ emit switchAtRequiredStopChanged(value);
}
void DivePlannerSettings::setAscrate75(int value)
{
- if (value == prefs.ascrate75)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("ascrate75", value);
- prefs.ascrate75 = value;
- emit ascrate75Changed(value);
+ if (set(group, "ascrate75", value, prefs.ascrate75))
+ emit ascrate75Changed(value);
}
void DivePlannerSettings::setAscrate50(int value)
{
- if (value == prefs.ascrate50)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("ascrate50", value);
- prefs.ascrate50 = value;
- emit ascrate50Changed(value);
+ if (set(group, "ascrate50", value, prefs.ascrate50))
+ emit ascrate50Changed(value);
}
void DivePlannerSettings::setAscratestops(int value)
{
- if (value == prefs.ascratestops)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("ascratestops", value);
- prefs.ascratestops = value;
- emit ascratestopsChanged(value);
+ if (set(group, "ascratestops", value, prefs.ascratestops))
+ emit ascratestopsChanged(value);
}
void DivePlannerSettings::setAscratelast6m(int value)
{
- if (value == prefs.ascratelast6m)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("ascratelast6m", value);
- prefs.ascratelast6m = value;
- emit ascratelast6mChanged(value);
+ if (set(group, "ascratelast6m", value, prefs.ascratelast6m))
+ emit ascratelast6mChanged(value);
}
void DivePlannerSettings::setDescrate(int value)
{
- if (value == prefs.descrate)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("descrate", value);
- prefs.descrate = value;
- emit descrateChanged(value);
+ if (set(group, "descrate", value, prefs.descrate))
+ emit descrateChanged(value);
}
void DivePlannerSettings::setSacFactor(int value)
{
- if (value == prefs.sacfactor)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("sacfactor", value);
- prefs.sacfactor = value;
- emit sacFactorChanged(value);
+ if (set(group, "sacfactor", value, prefs.sacfactor))
+ emit sacFactorChanged(value);
}
void DivePlannerSettings::setProblemSolvingTime(int value)
{
- if (value == prefs.problemsolvingtime)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("problemsolvingtime", value);
- prefs.problemsolvingtime = value;
- emit problemSolvingTimeChanged(value);
+ if (set(group, "problemsolvingtime", value, prefs.problemsolvingtime))
+ emit problemSolvingTimeChanged(value);
}
void DivePlannerSettings::setBottompo2(int value)
{
- if (value == prefs.bottompo2)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("bottompo2", value);
- prefs.bottompo2 = value;
- emit bottompo2Changed(value);
+ if (set(group, "bottompo2", value, prefs.bottompo2))
+ emit bottompo2Changed(value);
}
void DivePlannerSettings::setDecopo2(int value)
{
- if (value == prefs.decopo2)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("decopo2", value);
- prefs.decopo2 = value;
- emit decopo2Changed(value);
+ if (set(group, "decopo2", value, prefs.decopo2))
+ emit decopo2Changed(value);
}
void DivePlannerSettings::setBestmixend(int value)
{
- if (value == prefs.bestmixend.mm)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("bestmixend", value);
- prefs.bestmixend.mm = value;
- emit bestmixendChanged(value);
+ if (set(group, "bestmixend", value, prefs.bestmixend.mm))
+ emit bestmixendChanged(value);
}
void DivePlannerSettings::setReserveGas(int value)
{
- if (value == prefs.reserve_gas)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("reserve_gas", value);
- prefs.reserve_gas = value;
- emit reserveGasChanged(value);
+ if (set(group, "reserve_gas", value, prefs.reserve_gas))
+ emit reserveGasChanged(value);
}
void DivePlannerSettings::setMinSwitchDuration(int value)
{
- if (value == prefs.min_switch_duration)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("min_switch_duration", value);
- prefs.min_switch_duration = value;
- emit minSwitchDurationChanged(value);
+ if (set(group, "min_switch_duration", value, prefs.min_switch_duration))
+ emit minSwitchDurationChanged(value);
}
void DivePlannerSettings::setBottomSac(int value)
{
- if (value == prefs.bottomsac)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("bottomsac", value);
- prefs.bottomsac = value;
- emit bottomSacChanged(value);
+ if (set(group, "bottomsac", value, prefs.bottomsac))
+ emit bottomSacChanged(value);
}
void DivePlannerSettings::setDecoSac(int value)
{
- if (value == prefs.decosac)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("decosac", value);
- prefs.decosac = value;
- emit decoSacChanged(value);
+ if (set(group, "decosac", value, prefs.decosac))
+ emit decoSacChanged(value);
}
void DivePlannerSettings::setDecoMode(deco_mode value)
{
- if (value == prefs.planner_deco_mode)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("deco_mode", value);
- prefs.planner_deco_mode = value;
- emit decoModeChanged(value);
+ if (set(group, "deco_mode", value, prefs.planner_deco_mode))
+ emit decoModeChanged(value);
}
UnitsSettings::UnitsSettings(QObject *parent) :
@@ -1622,102 +1201,56 @@ bool UnitsSettings::coordinatesTraditional() const
void UnitsSettings::setLength(int value)
{
- if (value == prefs.units.length)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("length", value);
- prefs.units.length = (units::LENGTH) value;
- emit lengthChanged(value);
+ if (set(group, "length", value, prefs.units.length))
+ emit lengthChanged(value);
}
void UnitsSettings::setPressure(int value)
{
- if (value == prefs.units.pressure)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("pressure", value);
- prefs.units.pressure = (units::PRESSURE) value;
- emit pressureChanged(value);
+ if (set(group, "pressure", value, prefs.units.pressure))
+ emit pressureChanged(value);
}
void UnitsSettings::setVolume(int value)
{
- if (value == prefs.units.volume)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("volume", value);
- prefs.units.volume = (units::VOLUME) value;
- emit volumeChanged(value);
+ if (set(group, "volume", value, prefs.units.volume))
+ emit volumeChanged(value);
}
void UnitsSettings::setTemperature(int value)
{
- if (value == prefs.units.temperature)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("temperature", value);
- prefs.units.temperature = (units::TEMPERATURE) value;
- emit temperatureChanged(value);
+ if (set(group, "temperature", value, prefs.units.temperature))
+ emit temperatureChanged(value);
}
void UnitsSettings::setWeight(int value)
{
- if (value == prefs.units.weight)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("weight", value);
- prefs.units.weight = (units::WEIGHT) value;
- emit weightChanged(value);
+ if (set(group, "weight", value, prefs.units.weight))
+ emit weightChanged(value);
}
void UnitsSettings::setVerticalSpeedTime(int value)
{
- if (value == prefs.units.vertical_speed_time)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("vertical_speed_time", value);
- prefs.units.vertical_speed_time = (units::TIME) value;
- emit verticalSpeedTimeChanged(value);
+ if (set(group, "vertical_speed_time", value, prefs.units.vertical_speed_time))
+ emit verticalSpeedTimeChanged(value);
}
void UnitsSettings::setDurationUnits(int value)
{
- if (value == prefs.units.duration_units)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("duration_units", value);
- prefs.units.duration_units = (units::DURATION) value;
- emit durationUnitChanged(value);
+ if (set(group, "duration_units", value, prefs.units.duration_units))
+ emit durationUnitChanged(value);
}
void UnitsSettings::setShowUnitsTable(int value)
{
- if (value == prefs.units.show_units_table)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("show_units_table", value);
- prefs.units.show_units_table = value;
- emit showUnitsTableChanged(value);
+ if (set(group, "show_units_table", value, prefs.units.show_units_table))
+ emit showUnitsTableChanged(value);
}
void UnitsSettings::setCoordinatesTraditional(bool value)
{
- if (value == prefs.coordinates_traditional)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("coordinates", value);
- prefs.coordinates_traditional = value;
- emit coordinatesTraditionalChanged(value);
+ if (set(group, "coordinates", value, prefs.coordinates_traditional))
+ emit coordinatesTraditionalChanged(value);
}
void UnitsSettings::setUnitSystem(const QString& value)
@@ -1789,28 +1322,14 @@ int GeneralSettingsObjectWrapper::pscrRatio() const
void GeneralSettingsObjectWrapper::setDefaultFilename(const QString& value)
{
- if (value == prefs.default_filename)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("default_filename", value);
- free((void*)prefs.default_filename);
- prefs.default_filename = copy_string(qPrintable(value));
- emit defaultFilenameChanged(value);
+ if (set(group, "default_filename", value, prefs.default_filename))
+ emit defaultFilenameChanged(value);
}
void GeneralSettingsObjectWrapper::setDefaultCylinder(const QString& value)
{
- if (value == prefs.default_cylinder)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("default_cylinder", value);
- free((void*)prefs.default_cylinder);
- prefs.default_cylinder = copy_string(qPrintable(value));
- emit defaultCylinderChanged(value);
+ if (set(group, "default_cylinder", value, prefs.default_cylinder))
+ emit defaultCylinderChanged(value);
}
void GeneralSettingsObjectWrapper::setDefaultFileBehavior(short value)
@@ -1836,48 +1355,26 @@ void GeneralSettingsObjectWrapper::setDefaultFileBehavior(short value)
void GeneralSettingsObjectWrapper::setUseDefaultFile(bool value)
{
- if (value == prefs.use_default_file)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("use_default_file", value);
- prefs.use_default_file = value;
- emit useDefaultFileChanged(value);
+ if (set(group, "use_default_file", value, prefs.use_default_file))
+ emit useDefaultFileChanged(value);
}
void GeneralSettingsObjectWrapper::setDefaultSetPoint(int value)
{
- if (value == prefs.defaultsetpoint)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("defaultsetpoint", value);
- prefs.defaultsetpoint = value;
- emit defaultSetPointChanged(value);
+ if (set(group, "defaultsetpoint", value, prefs.defaultsetpoint))
+ emit defaultSetPointChanged(value);
}
void GeneralSettingsObjectWrapper::setO2Consumption(int value)
{
- if (value == prefs.o2consumption)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("o2consumption", value);
- prefs.o2consumption = value;
- emit o2ConsumptionChanged(value);
+ if (set(group, "o2consumption", value, prefs.o2consumption))
+ emit o2ConsumptionChanged(value);
}
void GeneralSettingsObjectWrapper::setPscrRatio(int value)
{
- if (value == prefs.pscr_ratio)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("pscr_ratio", value);
- prefs.pscr_ratio = value;
- emit pscrRatioChanged(value);
+ if (set(group, "pscr_ratio", value, prefs.pscr_ratio))
+ emit pscrRatioChanged(value);
}
DisplaySettingsObjectWrapper::DisplaySettingsObjectWrapper(QObject *parent) :
@@ -1924,29 +1421,18 @@ void DisplaySettingsObjectWrapper::setDivelistFont(const QString& value)
void DisplaySettingsObjectWrapper::setFontSize(double value)
{
- if (value == prefs.font_size)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("font_size", value);
- prefs.font_size = value;
- QFont defaultFont = qApp->font();
- defaultFont.setPointSizeF(prefs.font_size);
- qApp->setFont(defaultFont);
- emit fontSizeChanged(value);
+ if (set(group, "font_size", value, prefs.font_size)) {
+ QFont defaultFont = qApp->font();
+ defaultFont.setPointSizeF(prefs.font_size);
+ qApp->setFont(defaultFont);
+ emit fontSizeChanged(value);
+ }
}
void DisplaySettingsObjectWrapper::setDisplayInvalidDives(short value)
{
- if (value == prefs.display_invalid_dives)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("displayinvalid", value);
- prefs.display_invalid_dives = value;
- emit displayInvalidDivesChanged(value);
+ if (set(group, "displayinvalid", value, prefs.display_invalid_dives))
+ emit displayInvalidDivesChanged(value);
}
LanguageSettingsObjectWrapper::LanguageSettingsObjectWrapper(QObject *parent) :
@@ -1996,98 +1482,50 @@ QString LanguageSettingsObjectWrapper::langLocale() const
void LanguageSettingsObjectWrapper::setUseSystemLanguage(bool value)
{
- if (value == prefs.locale.use_system_language)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("UseSystemLanguage", value);
- prefs.locale.use_system_language = value;
- emit useSystemLanguageChanged(value);
+ if (set(group, "UseSystemLanguage", value, prefs.locale.use_system_language))
+ emit useSystemLanguageChanged(value);
}
void LanguageSettingsObjectWrapper::setLangLocale(const QString &value)
{
- if (value == prefs.locale.lang_locale)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("UiLangLocale", value);
- free((void*)prefs.locale.lang_locale);
- prefs.locale.lang_locale = copy_string(qPrintable(value));
- emit langLocaleChanged(value);
+ if (set(group, "UiLangLocale", value, prefs.locale.lang_locale))
+ emit langLocaleChanged(value);
}
void LanguageSettingsObjectWrapper::setLanguage(const QString& value)
{
- if (value == prefs.locale.language)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("UiLanguage", value);
- free((void*)prefs.locale.language);
- prefs.locale.language = copy_string(qPrintable(value));
- emit languageChanged(value);
+ if (set(group, "UiLanguage", value, prefs.locale.language))
+ emit languageChanged(value);
}
void LanguageSettingsObjectWrapper::setTimeFormat(const QString& value)
{
- if (value == prefs.time_format)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("time_format", value);
- free((void*)prefs.time_format);
- prefs.time_format = copy_string(qPrintable(value));
- emit timeFormatChanged(value);
+ if (set(group, "time_format", value, prefs.time_format))
+ emit timeFormatChanged(value);
}
void LanguageSettingsObjectWrapper::setDateFormat(const QString& value)
{
- if (value == prefs.date_format)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("date_format", value);
- free((void*)prefs.date_format);
- prefs.date_format = copy_string(qPrintable(value));
- emit dateFormatChanged(value);
+ if (set(group, "date_format", value, prefs.date_format))
+ emit dateFormatChanged(value);
}
void LanguageSettingsObjectWrapper::setDateFormatShort(const QString& value)
{
- if (value == prefs.date_format_short)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("date_format_short", value);
- free((void*)prefs.date_format_short);
- prefs.date_format_short = copy_string(qPrintable(value));
- emit dateFormatShortChanged(value);
+ if (set(group, "date_format_short", value, prefs.date_format_short))
+ emit dateFormatShortChanged(value);
}
void LanguageSettingsObjectWrapper::setTimeFormatOverride(bool value)
{
- if (value == prefs.time_format_override)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("time_format_override", value);
- prefs.time_format_override = value;
- emit timeFormatOverrideChanged(value);
+ if (set(group, "time_format_override", value, prefs.time_format_override))
+ emit timeFormatOverrideChanged(value);
}
void LanguageSettingsObjectWrapper::setDateFormatOverride(bool value)
{
- if (value == prefs.date_format_override)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("date_format_override", value);
- prefs.date_format_override = value;
- emit dateFormatOverrideChanged(value);
+ if (set(group, "date_format_override", value, prefs.date_format_override))
+ emit dateFormatOverrideChanged(value);
}
AnimationsSettingsObjectWrapper::AnimationsSettingsObjectWrapper(QObject* parent):
@@ -2102,14 +1540,8 @@ int AnimationsSettingsObjectWrapper::animationSpeed() const
void AnimationsSettingsObjectWrapper::setAnimationSpeed(int value)
{
- if (value == prefs.animation_speed)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("animation_speed", value);
- prefs.animation_speed = value;
- emit animationSpeedChanged(value);
+ if (set(group, "animation_speed", value, prefs.animation_speed))
+ emit animationSpeedChanged(value);
}
LocationServiceSettingsObjectWrapper::LocationServiceSettingsObjectWrapper(QObject* parent):
@@ -2129,25 +1561,14 @@ int LocationServiceSettingsObjectWrapper::timeThreshold() const
void LocationServiceSettingsObjectWrapper::setDistanceThreshold(int value)
{
- if (value == prefs.distance_threshold)
- return;
- QSettings s;
- s.beginGroup(group);
- s.setValue("distance_threshold", value);
- prefs.distance_threshold = value;
- emit distanceThresholdChanged(value);
+ if (set(group, "distance_threshold", value, prefs.distance_threshold))
+ emit distanceThresholdChanged(value);
}
void LocationServiceSettingsObjectWrapper::setTimeThreshold(int value)
{
- if (value == prefs.time_threshold)
- return;
-
- QSettings s;
- s.beginGroup(group);
- s.setValue("time_threshold", value);
- prefs.time_threshold = value;
- emit timeThresholdChanged(value);
+ if (set(group, "time_threshold", value, prefs.time_threshold))
+ emit timeThresholdChanged(value);
}
SettingsObjectWrapper::SettingsObjectWrapper(QObject* parent):
--
2.14.1
_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface