diff options
Diffstat (limited to 'core/settings/qPrefDisplay.cpp')
-rw-r--r-- | core/settings/qPrefDisplay.cpp | 87 |
1 files changed, 72 insertions, 15 deletions
diff --git a/core/settings/qPrefDisplay.cpp b/core/settings/qPrefDisplay.cpp index 809a4fe77..680fdc923 100644 --- a/core/settings/qPrefDisplay.cpp +++ b/core/settings/qPrefDisplay.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 #include "core/subsurface-string.h" -#include "qPref.h" +#include "qPrefDisplay.h" #include "qPrefPrivate.h" #include <QApplication> @@ -8,6 +8,39 @@ static const QString group = QStringLiteral("Display"); +QPointF qPrefDisplay::st_tooltip_position; +static const QPointF st_tooltip_position_default = QPointF(0,0); + +QString qPrefDisplay::st_lastDir; +static const QString st_lastDir_default = ""; + +QString qPrefDisplay::st_theme; +static const QString st_theme_default = "Blue"; + +QString qPrefDisplay::st_UserSurvey; +static const QString st_UserSurvey_default = ""; + +QByteArray qPrefDisplay::st_mainSplitter; +static const QByteArray st_mainSplitter_default = ""; + +QByteArray qPrefDisplay::st_topSplitter; +static const QByteArray st_topSplitter_default = ""; + +QByteArray qPrefDisplay::st_bottomSplitter; +static const QByteArray st_bottomSplitter_default = ""; + +bool qPrefDisplay::st_maximized; +static bool st_maximized_default = false; + +QByteArray qPrefDisplay::st_geometry; +static const QByteArray st_geometry_default = 0; + +QByteArray qPrefDisplay::st_windowState; +static const QByteArray st_windowState_default = 0; + +int qPrefDisplay::st_lastState; +static int st_lastState_default = false; + qPrefDisplay::qPrefDisplay(QObject *parent) : QObject(parent) { } @@ -19,11 +52,16 @@ qPrefDisplay *qPrefDisplay::instance() void qPrefDisplay::loadSync(bool doSync) { + disk_animation_speed(doSync); disk_divelist_font(doSync); disk_font_size(doSync); disk_display_invalid_dives(doSync); disk_show_developer(doSync); - disk_theme(doSync); + if (!doSync) { + load_tooltip_position(); + load_theme(); + load_UserSurvey(); + } } void qPrefDisplay::set_divelist_font(const QString &value) @@ -38,13 +76,13 @@ void qPrefDisplay::set_divelist_font(const QString &value) disk_divelist_font(true); qApp->setFont(QFont(newValue)); - emit divelist_font_changed(value); + emit instance()->divelist_font_changed(value); } } void qPrefDisplay::disk_divelist_font(bool doSync) { if (doSync) - qPrefPrivate::instance()->setting.setValue(group + "/divelist_font", prefs.divelist_font); + qPrefPrivate::propSetValue(group + "/divelist_font", prefs.divelist_font); else setCorrectFont(); } @@ -58,38 +96,35 @@ void qPrefDisplay::set_font_size(double value) QFont defaultFont = qApp->font(); defaultFont.setPointSizeF(prefs.font_size); qApp->setFont(defaultFont); - emit font_size_changed(value); + emit instance()->font_size_changed(value); } } void qPrefDisplay::disk_font_size(bool doSync) { if (doSync) - qPrefPrivate::instance()->setting.setValue(group + "/font_size", prefs.font_size); + qPrefPrivate::propSetValue(group + "/font_size", prefs.font_size); else setCorrectFont(); } +//JAN static const QString group = QStringLiteral("Animations"); +HANDLE_PREFERENCE_INT(Display, "/animation_speed", animation_speed); + 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() { - QSettings s; - QVariant v; - // get the font from the settings or our defaults // respect the system default font size if none is explicitly set - QFont defaultFont = s.value(group + "/divelist_font", prefs.divelist_font).value<QFont>(); + QFont defaultFont = qPrefPrivate::propValue(group + "/divelist_font", prefs.divelist_font).value<QFont>(); 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 } - prefs.font_size = s.value(group + "/font_size", prefs.font_size).toFloat(); + prefs.font_size = qPrefPrivate::propValue(group + "/font_size", prefs.font_size).toFloat(); // painful effort to ignore previous default fonts on Windows - ridiculous QString fontName = defaultFont.toString(); if (fontName.contains(",")) @@ -103,5 +138,27 @@ void qPrefDisplay::setCorrectFont() defaultFont.setPointSizeF(prefs.font_size); qApp->setFont(defaultFont); - prefs.display_invalid_dives = qPrefPrivate::instance()->setting.value(group + "/displayinvalid", default_prefs.display_invalid_dives).toBool(); + prefs.display_invalid_dives = qPrefPrivate::propValue(group + "/displayinvalid", default_prefs.display_invalid_dives).toBool(); } + +HANDLE_PROP_QSTRING(Display, "FileDialog/LastDir", lastDir); + +HANDLE_PROP_QSTRING(Display, "Theme/currentTheme", theme); + +HANDLE_PROP_QPOINTF(Display, "ProfileMap/tooltip_position", tooltip_position); + +HANDLE_PROP_QSTRING(Display, "UserSurvey/SurveyDone", UserSurvey); + +HANDLE_PROP_QBYTEARRAY(Display, "MainWindow/mainSplitter", mainSplitter); + +HANDLE_PROP_QBYTEARRAY(Display, "MainWindow/topSplitter", topSplitter); + +HANDLE_PROP_QBYTEARRAY(Display, "MainWindow/bottomSplitter", bottomSplitter); + +HANDLE_PROP_BOOL(Display, "MainWindow/maximized", maximized); + +HANDLE_PROP_QBYTEARRAY(Display, "MainWindow/geometry", geometry); + +HANDLE_PROP_QBYTEARRAY(Display, "MainWindow/windowState", windowState); + +HANDLE_PROP_INT(Display, "MainWindow/lastState", lastState); |