bugfixes regarding preferences

still checking for more.
(the font issue that willem said is fixed on this series)

Tomaz

On Tue, Nov 1, 2016 at 12:06 PM, Tomaz Canabrava <[email protected]> wrote:

> FINALLY
> this finishes the unittests - sorry for all delays.
>
> I'll now look for misbehaving preferences, like the one willan complained.
>
> Tomaz
>
From aef59890d010ec6210bd4538d26ca5d64da12501 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <[email protected]>
Date: Tue, 1 Nov 2016 14:08:59 +0100
Subject: [PATCH 5/9] Fix bug where the Font setting was ignored

Signed-off-by: Tomaz Canabrava <[email protected]>
---
 core/subsurface-qt/SettingsObjectWrapper.cpp         | 1 +
 desktop-widgets/preferences/preferences_defaults.cpp | 2 --
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp
index 81f6237..ec5e041 100644
--- a/core/subsurface-qt/SettingsObjectWrapper.cpp
+++ b/core/subsurface-qt/SettingsObjectWrapper.cpp
@@ -1834,6 +1834,7 @@ void DisplaySettingsObjectWrapper::setDivelistFont(const QString& value)
 		return;
 
 	QSettings s;
+	s.beginGroup(group);
 	s.setValue("divelist_font", value);
 
 	if (!subsurface_ignore_font(newValue.toUtf8().constData())) {
diff --git a/desktop-widgets/preferences/preferences_defaults.cpp b/desktop-widgets/preferences/preferences_defaults.cpp
index 2ebbe54..60b3d3a 100644
--- a/desktop-widgets/preferences/preferences_defaults.cpp
+++ b/desktop-widgets/preferences/preferences_defaults.cpp
@@ -88,8 +88,6 @@ void PreferencesDefaults::syncSettings()
 		general->setDefaultFileBehavior(CLOUD_DEFAULT_FILE);
 
 	auto display =  SettingsObjectWrapper::instance()->display_settings;
-
-	//TODO: Verify the 'save or remove special' feature for the divelist font and the font size.
 	display->setDivelistFont(ui->font->currentFont().toString());
 	display->setFontSize(ui->fontsize->value());
 	display->setDisplayInvalidDives(ui->displayinvalid->isChecked());
-- 
2.10.2

From cff62d4ee52fad9202ae396c9ac53c36571b94e0 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <[email protected]>
Date: Tue, 1 Nov 2016 14:17:59 +0100
Subject: [PATCH 6/9] Remember to load the language

Signed-off-by: Tomaz Canabrava <[email protected]>
---
 core/subsurface-qt/SettingsObjectWrapper.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp
index ec5e041..9e9c2ec 100644
--- a/core/subsurface-qt/SettingsObjectWrapper.cpp
+++ b/core/subsurface-qt/SettingsObjectWrapper.cpp
@@ -2288,6 +2288,7 @@ void SettingsObjectWrapper::load()
 	s.endGroup();
 
 	s.beginGroup("Language");
+	prefs.locale.language = copy_string(qPrintable(s.value("UiLanguage").toString()));
 	prefs.locale.lang_locale = copy_string(qPrintable(s.value("UiLangLocale").toString()));
 	prefs.time_format = copy_string(qPrintable(s.value("time_format").toString()));
 	prefs.date_format = copy_string(qPrintable(s.value("date_format").toString()));
-- 
2.10.2

From 5b797f756c5d70a3856af99283794969f8f0b928 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <[email protected]>
Date: Tue, 1 Nov 2016 14:22:43 +0100
Subject: [PATCH 7/9] Load use_system_language

Forgot to load use_system_language, wich borked the preferences.

Signed-off-by: Tomaz Canabrava <[email protected]>
---
 core/subsurface-qt/SettingsObjectWrapper.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp
index 9e9c2ec..d61200b 100644
--- a/core/subsurface-qt/SettingsObjectWrapper.cpp
+++ b/core/subsurface-qt/SettingsObjectWrapper.cpp
@@ -2288,6 +2288,7 @@ void SettingsObjectWrapper::load()
 	s.endGroup();
 
 	s.beginGroup("Language");
+	prefs.locale.use_system_language = s.value("UseSystemLanguage").toBool();
 	prefs.locale.language = copy_string(qPrintable(s.value("UiLanguage").toString()));
 	prefs.locale.lang_locale = copy_string(qPrintable(s.value("UiLangLocale").toString()));
 	prefs.time_format = copy_string(qPrintable(s.value("time_format").toString()));
-- 
2.10.2

From 0a5917351d528618e3a916ea8020d8da84e9a846 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <[email protected]>
Date: Tue, 1 Nov 2016 14:35:56 +0100
Subject: [PATCH 8/9] use GET_* macros for getting settings

Those macros are nice because they take into consideration
the default preferences.

Signed-off-by: Tomaz Canabrava <[email protected]>
---
 core/subsurface-qt/SettingsObjectWrapper.cpp | 46 +++++++++++++++-------------
 1 file changed, 24 insertions(+), 22 deletions(-)

diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp
index d61200b..e8d1e7d 100644
--- a/core/subsurface-qt/SettingsObjectWrapper.cpp
+++ b/core/subsurface-qt/SettingsObjectWrapper.cpp
@@ -2249,28 +2249,30 @@ void SettingsObjectWrapper::load()
 	s.endGroup();
 
 	s.beginGroup("Planner");
-	prefs.last_stop = s.value("last_stop", prefs.last_stop).toBool();
-	prefs.verbatim_plan = s.value("verbatim_plan", prefs.verbatim_plan).toBool();
-	prefs.display_duration = s.value("display_duration", prefs.display_duration).toBool();
-	prefs.display_runtime = s.value("display_runtime", prefs.display_runtime).toBool();
-	prefs.display_transitions = s.value("display_transitions", prefs.display_transitions).toBool();
-	prefs.deco_mode = deco_mode(s.value("deco_mode", prefs.deco_mode).toInt());
-	prefs.safetystop = s.value("safetystop", prefs.safetystop).toBool();
-	prefs.reserve_gas = s.value("reserve_gas", prefs.reserve_gas).toInt();
-	prefs.ascrate75 = s.value("ascrate75", prefs.ascrate75).toInt();
-	prefs.ascrate50 = s.value("ascrate50", prefs.ascrate50).toInt();
-	prefs.ascratestops = s.value("ascratestops", prefs.ascratestops).toInt();
-	prefs.ascratelast6m = s.value("ascratelast6m", prefs.ascratelast6m).toInt();
-	prefs.descrate = s.value("descrate", prefs.descrate).toInt();
-	prefs.bottompo2 = s.value("bottompo2", prefs.bottompo2).toInt();
-	prefs.decopo2 = s.value("decopo2", prefs.decopo2).toInt();
-	prefs.bestmixend.mm = s.value("bestmixend", prefs.bestmixend.mm).toInt();
-	prefs.doo2breaks = s.value("doo2breaks", prefs.doo2breaks).toBool();
-	prefs.switch_at_req_stop = s.value("switch_at_req_stop", prefs.switch_at_req_stop).toBool();
-	prefs.min_switch_duration = s.value("min_switch_duration", prefs.min_switch_duration).toInt();
-	prefs.drop_stone_mode = s.value("drop_stone_mode", prefs.drop_stone_mode).toBool();
-	prefs.bottomsac = s.value("bottomsac", prefs.bottomsac).toInt();
-	prefs.decosac = s.value("decosac", prefs.decosac).toInt();
+	GET_BOOL("last_stop", last_stop);
+	GET_BOOL("verbatim_plan", verbatim_plan);
+	GET_BOOL("display_duration", display_duration);
+	GET_BOOL("display_runtime", display_runtime);
+	GET_BOOL("display_transitions", display_transitions);
+	GET_BOOL("safetystop", safetystop);
+	GET_BOOL("doo2breaks", doo2breaks);
+	GET_BOOL("switch_at_req_stop",switch_at_req_stop);
+	GET_BOOL("drop_stone_mode", drop_stone_mode);
+
+	GET_INT("reserve_gas", reserve_gas);
+	GET_INT("ascrate75", ascrate75);
+	GET_INT("ascrate50", ascrate50);
+	GET_INT("ascratestops", ascratestops);
+	GET_INT("ascratelast6m", ascratelast6m);
+	GET_INT("descrate", descrate);
+	GET_INT("bottompo2", bottompo2);
+	GET_INT("decopo2", decopo2);
+	GET_INT("bestmixend", bestmixend.mm);
+	GET_INT("min_switch_duration", min_switch_duration);
+	GET_INT("bottomsac", bottomsac);
+	GET_INT("decosac", decosac);
+
+	prefs.deco_mode = deco_mode(s.value("deco_mode", default_prefs.deco_mode).toInt());
 	s.endGroup();
 
 	s.beginGroup("DiveComputer");
-- 
2.10.2

From df4cd200f22e5798b797a5f96a5f66cebf9cd381 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <[email protected]>
Date: Tue, 1 Nov 2016 14:42:26 +0100
Subject: [PATCH 9/9] Use default prefs for the prefs that where missing

This patch fixes all the cases that I didn't checked for
the default prefs.

Signed-off-by: Tomaz Canabrava <[email protected]>
---
 core/subsurface-qt/SettingsObjectWrapper.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp
index e8d1e7d..68fdf19 100644
--- a/core/subsurface-qt/SettingsObjectWrapper.cpp
+++ b/core/subsurface-qt/SettingsObjectWrapper.cpp
@@ -2284,18 +2284,18 @@ void SettingsObjectWrapper::load()
 
 	s.beginGroup("UpdateManager");
 	prefs.update_manager.dont_check_exists = s.contains("DontCheckForUpdates");
-	prefs.update_manager.dont_check_for_updates = s.value("DontCheckForUpdates").toBool();
-	prefs.update_manager.last_version_used = copy_string(qPrintable(s.value("LastVersionUsed").toString()));
+	GET_BOOL("DontCheckForUpdates", update_manager.dont_check_for_updates);
+	GET_TXT("LastVersionUsed", update_manager.last_version_used);
 	prefs.update_manager.next_check = copy_string(qPrintable(s.value("NextCheck").toDate().toString("dd/MM/yyyy")));
 	s.endGroup();
 
 	s.beginGroup("Language");
-	prefs.locale.use_system_language = s.value("UseSystemLanguage").toBool();
-	prefs.locale.language = copy_string(qPrintable(s.value("UiLanguage").toString()));
-	prefs.locale.lang_locale = copy_string(qPrintable(s.value("UiLangLocale").toString()));
-	prefs.time_format = copy_string(qPrintable(s.value("time_format").toString()));
-	prefs.date_format = copy_string(qPrintable(s.value("date_format").toString()));
-	prefs.date_format_short = copy_string(qPrintable(s.value("date_format_short").toString()));
+	GET_BOOL("UseSystemLanguage", locale.use_system_language);
+	GET_TXT("UiLanguage", locale.language);
+	GET_TXT("UiLangLocale", locale.lang_locale);
+	GET_TXT("time_format", time_format);
+	GET_TXT("date_format", date_format);
+	GET_TXT("date_format_short", date_format_short);
 	s.endGroup();
 }
 
-- 
2.10.2

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to