summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/pref.h17
-rw-r--r--core/settings/qPrefDisplay.cpp24
-rw-r--r--core/settings/qPrefDisplay.h5
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);