diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/pref.h | 17 | ||||
-rw-r--r-- | core/settings/qPrefDisplay.cpp | 24 | ||||
-rw-r--r-- | core/settings/qPrefDisplay.h | 5 |
3 files changed, 41 insertions, 5 deletions
diff --git a/core/pref.h b/core/pref.h index 90a442b9c..093d346b4 100644 --- a/core/pref.h +++ b/core/pref.h @@ -66,6 +66,12 @@ enum unit_system_values { PERSONALIZE }; +enum headerstyle_color_values { + MEDIUMBLUE, + LIGHTBLUE, + BLACK +}; + // ********** PREFERENCES ********** // This struct is kept global for all of ssrf // most of the fields are loaded from git as @@ -100,11 +106,12 @@ struct preferences { dive_computer_prefs_t dive_computer4; // ********** Display ************* - bool display_invalid_dives; - const char *divelist_font; - double font_size; - double mobile_scale; - bool show_developer; + bool display_invalid_dives; + const char *divelist_font; + double font_size; + double mobile_scale; + bool show_developer; + enum headerstyle_color_values headerstyle_color; // ********** Equipment tab ******* const char *default_cylinder; diff --git a/core/settings/qPrefDisplay.cpp b/core/settings/qPrefDisplay.cpp index c733b0c6b..9425062dc 100644 --- a/core/settings/qPrefDisplay.cpp +++ b/core/settings/qPrefDisplay.cpp @@ -55,6 +55,7 @@ void qPrefDisplay::loadSync(bool doSync) disk_mobile_scale(doSync); disk_display_invalid_dives(doSync); disk_show_developer(doSync); + disk_headerstyle_color(doSync); if (!doSync) { load_tooltip_position(); load_theme(); @@ -176,6 +177,29 @@ void qPrefDisplay::setCorrectFont() prefs.display_invalid_dives = qPrefPrivate::propValue(keyFromGroupAndName(group, "displayinvalid"), default_prefs.display_invalid_dives).toBool(); } +void qPrefDisplay::set_headerstyle_color(enum headerstyle_color_values value) +{ + if (value != prefs.headerstyle_color) { + prefs.headerstyle_color = value; + disk_headerstyle_color(true); + emit instance()->headerstyle_colorChanged(value); + } +} + +void qPrefDisplay::disk_headerstyle_color(bool doSync) +{ + static enum headerstyle_color_values current_state; + if (doSync) { + if (current_state != prefs.headerstyle_color) { + current_state = prefs.headerstyle_color; + qPrefPrivate::propSetValue(keyFromGroupAndName(group, "headerstyle_color"), prefs.headerstyle_color, default_prefs.headerstyle_color); + } + } else { + prefs.headerstyle_color = (enum headerstyle_color_values)qPrefPrivate::propValue(keyFromGroupAndName(group, "headerstyle_color"), default_prefs.headerstyle_color).toInt(); + current_state = prefs.headerstyle_color; + } +} + HANDLE_PROP_QSTRING(Display, "FileDialog/LastDir", lastDir); HANDLE_PROP_QSTRING(Display, "Theme/currentTheme", theme); diff --git a/core/settings/qPrefDisplay.h b/core/settings/qPrefDisplay.h index 61fa5dbaf..6c265c593 100644 --- a/core/settings/qPrefDisplay.h +++ b/core/settings/qPrefDisplay.h @@ -8,6 +8,7 @@ class qPrefDisplay : public QObject { Q_OBJECT + Q_PROPERTY(enum headerstyle_color_values headerstyle_color READ headerstyle_color WRITE set_headerstyle_color NOTIFY headerstyle_colorChanged) Q_PROPERTY(int animation_speed READ animation_speed WRITE set_animation_speed NOTIFY animation_speedChanged) Q_PROPERTY(QString divelist_font READ divelist_font WRITE set_divelist_font NOTIFY divelist_fontChanged) Q_PROPERTY(double font_size READ font_size WRITE set_font_size NOTIFY font_sizeChanged) @@ -35,6 +36,7 @@ public: static void sync() { loadSync(true); } public: + static enum headerstyle_color_values headerstyle_color() { return prefs.headerstyle_color; } static int animation_speed() { return prefs.animation_speed; } static QString divelist_font() { return prefs.divelist_font; } static double font_size() { return prefs.font_size; } @@ -54,6 +56,7 @@ public: static bool singleColumnPortrait() { return st_singleColumnPortrait; } public slots: + static void set_headerstyle_color(enum headerstyle_color_values value); static void set_animation_speed(int value); static void set_divelist_font(const QString &value); static void set_font_size(double value); @@ -73,6 +76,7 @@ public slots: static void set_singleColumnPortrait(bool value); signals: + void headerstyle_colorChanged(enum headerstyle_color_values value); void animation_speedChanged(int value); void divelist_fontChanged(const QString &value); void font_sizeChanged(double value); @@ -95,6 +99,7 @@ private: qPrefDisplay() {} // functions to load/sync variable with disk + static void disk_headerstyle_color(bool doSync); static void disk_animation_speed(bool doSync); static void disk_divelist_font(bool doSync); static void disk_font_size(bool doSync); |