summaryrefslogtreecommitdiffstats
path: root/core/settings/qPrefDisplay.cpp
diff options
context:
space:
mode:
authorGravatar jan Iversen <jani@apache.org>2018-07-04 22:46:59 +0200
committerGravatar jan Iversen <jani@apache.org>2018-07-12 18:44:31 +0200
commit928fc1ee79a4391384f448cb75369ddb5e03ef28 (patch)
treef848c4adc1ad14843e68c088d809fbdbf4ef8636 /core/settings/qPrefDisplay.cpp
parent9732194bf8e018d93fc3b0244992b23d2cdd2859 (diff)
downloadsubsurface-928fc1ee79a4391384f448cb75369ddb5e03ef28.tar.gz
core: move load of display variables to qPrefDisplay from SettingsObjectWrapper
ensure SettingsObjectWrapper load() loads all display variables. Copy font setting code from SettingsObjectWrapper to qPrefDisplay Signed-off-by: Jan Iversen <jani@apache.org>
Diffstat (limited to 'core/settings/qPrefDisplay.cpp')
-rw-r--r--core/settings/qPrefDisplay.cpp36
1 files changed, 34 insertions, 2 deletions
diff --git a/core/settings/qPrefDisplay.cpp b/core/settings/qPrefDisplay.cpp
index cf0a4e54d..fee960f97 100644
--- a/core/settings/qPrefDisplay.cpp
+++ b/core/settings/qPrefDisplay.cpp
@@ -39,7 +39,12 @@ void qPrefDisplay::set_divelist_font(const QString& value)
emit divelist_font_changed(value);
}
}
-DISK_LOADSYNC_TXT(Display, "/divelist_font", divelist_font);
+void qPrefDisplay::disk_divelist_font(bool doSync)
+{
+ LOADSYNC_TXT("/divelist_font", divelist_font);
+ if (!doSync)
+ setCorrectFont();
+}
GET_PREFERENCE_DOUBLE(Display, font_size);
void qPrefDisplay::set_font_size(double value)
@@ -53,10 +58,37 @@ void qPrefDisplay::set_font_size(double value)
emit font_size_changed(value);
}
}
-DISK_LOADSYNC_DOUBLE(Display, "/font_size", font_size);
+void qPrefDisplay::disk_font_size(bool doSync)
+{
+ LOADSYNC_DOUBLE("/font_size", font_size);
+ if (!doSync)
+ setCorrectFont();
+}
HANDLE_PREFERENCE_BOOL(Display, "/displayinvalid", display_invalid_dives);
HANDLE_PREFERENCE_BOOL(Display, "/show_developer", show_developer);
HANDLE_PREFERENCE_TXT(Display, "/theme", theme);
+
+
+void qPrefDisplay::setCorrectFont()
+{
+ // get the font from the settings or our defaults
+ // respect the system default font size if none is explicitly set
+ QFont defaultFont(prefs.divelist_font);
+ if (IS_FP_SAME(system_divelist_default_font_size, -1.0)) {
+ prefs.font_size = qApp->font().pointSizeF();
+ system_divelist_default_font_size = prefs.font_size; // this way we don't save it on exit
+ }
+ // painful effort to ignore previous default fonts on Windows - ridiculous
+ QString fontName = defaultFont.toString();
+ if (fontName.contains(","))
+ fontName = fontName.left(fontName.indexOf(","));
+ if (subsurface_ignore_font(qPrintable(fontName)))
+ defaultFont = QFont(prefs.divelist_font);
+ else
+ COPY_TXT(divelist_font, fontName);
+ defaultFont.setPointSizeF(prefs.font_size);
+ qApp->setFont(defaultFont);
+}