summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/pref.h17
-rw-r--r--core/settings/qPrefDisplay.cpp24
-rw-r--r--core/settings/qPrefDisplay.h5
-rw-r--r--desktop-widgets/preferences/preferences_defaults.cpp3
-rw-r--r--desktop-widgets/preferences/preferences_defaults.ui73
-rw-r--r--desktop-widgets/tab-widgets/TabDiveInformation.cpp19
6 files changed, 133 insertions, 8 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);
diff --git a/desktop-widgets/preferences/preferences_defaults.cpp b/desktop-widgets/preferences/preferences_defaults.cpp
index ca1b51acb..3fba8e1b8 100644
--- a/desktop-widgets/preferences/preferences_defaults.cpp
+++ b/desktop-widgets/preferences/preferences_defaults.cpp
@@ -24,6 +24,7 @@ PreferencesDefaults::~PreferencesDefaults()
void PreferencesDefaults::refreshSettings()
{
+ prefs.headerstyle_color == BLACK ? ui->black_text->setChecked(true) : (prefs.headerstyle_color == LIGHTBLUE ? ui->lightblue_text->setChecked(true) : ui->mediumblue_text->setChecked(true));
ui->font->setCurrentFont(qPrefDisplay::divelist_font());
ui->fontsize->setValue(qPrefDisplay::font_size());
ui->velocitySlider->setValue(qPrefDisplay::animation_speed());
@@ -35,4 +36,6 @@ void PreferencesDefaults::syncSettings()
qPrefDisplay::set_divelist_font(ui->font->currentFont().toString());
qPrefDisplay::set_font_size(ui->fontsize->value());
qPrefDisplay::set_animation_speed(ui->velocitySlider->value());
+ qPrefDisplay::set_headerstyle_color(ui->black_text->isChecked() ? BLACK : (ui->lightblue_text->isChecked() ? LIGHTBLUE : MEDIUMBLUE));
+
}
diff --git a/desktop-widgets/preferences/preferences_defaults.ui b/desktop-widgets/preferences/preferences_defaults.ui
index 030bb77d6..b6104b256 100644
--- a/desktop-widgets/preferences/preferences_defaults.ui
+++ b/desktop-widgets/preferences/preferences_defaults.ui
@@ -120,6 +120,77 @@
</item>
<item>
+ <widget class="QGroupBox" name="groupBox_headerstyle">
+ <property name="title">
+ <string>Header text colors</string>
+ </property>
+ <layout class="QVBoxLayout" name="headerModeLayout_4">
+ <property name="margin">
+ <number>5</number>
+ </property>
+
+ <item>
+ <widget class="QLabel" name="label_help_header">
+ <property name="toolTip">
+ <string extracomment="Help info header"/>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Depending on the display mode, sometimes the blue text used in headers in the various information panes is not clearly visible. Select a color that fits the current theme of your computer. For dark mode, select either Light Blue or Black (rendered white using a dark theme). The default is Medium Blue.</string>
+ </property>
+ </widget>
+ </item>
+
+ <item>
+ <layout class="QHBoxLayout" name="darkmodeLayout_5">
+
+ <item>
+ <widget class="QRadioButton" name="mediumblue_text">
+ <property name="text">
+ <string>Medium Blue</string>
+ </property>
+ </widget>
+ </item>
+
+ <item>
+ <widget class="QRadioButton" name="lightblue_text">
+ <property name="text">
+ <string>Light Blue</string>
+ </property>
+ </widget>
+ </item>
+
+ <item>
+ <widget class="QRadioButton" name="black_text">
+ <property name="text">
+ <string>Black</string>
+ </property>
+ </widget>
+ </item>
+
+ </layout>
+ </item>
+
+ </layout>
+ </widget>
+ </item>
+
+ <item>
+ <spacer name="verticalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>0</width>
+ <height>195</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -132,8 +203,10 @@
</property>
</spacer>
</item>
+
</layout>
</widget>
+
<resources/>
<connections>
<connection>
diff --git a/desktop-widgets/tab-widgets/TabDiveInformation.cpp b/desktop-widgets/tab-widgets/TabDiveInformation.cpp
index 5baec3694..78bc7b485 100644
--- a/desktop-widgets/tab-widgets/TabDiveInformation.cpp
+++ b/desktop-widgets/tab-widgets/TabDiveInformation.cpp
@@ -23,7 +23,18 @@ TabDiveInformation::TabDiveInformation(QWidget *parent) : TabBase(parent), ui(ne
connect(&diveListNotifier, &DiveListNotifier::cylinderAdded, this, &TabDiveInformation::cylinderChanged);
connect(&diveListNotifier, &DiveListNotifier::cylinderRemoved, this, &TabDiveInformation::cylinderChanged);
connect(&diveListNotifier, &DiveListNotifier::cylinderEdited, this, &TabDiveInformation::cylinderChanged);
+
+ // Put together appropriate CSS stylesheets: NB: Colors below in same order as the enum in prefs.h
+ QStringList colors = { "mediumblue", "lightblue", "black" }; // If using dark theme, set color appropriately
+ QString colorText = colors[prefs.headerstyle_color];
+
+ QString lastpart = colorText + " ;}";
+ QString CSSLabelColor = "QLabel { color: " + lastpart;
+ QString CSSTitleColor = "QGroupBox::title { color: " + lastpart ;
QStringList atmPressTypes { "mbar", get_depth_unit() ,tr("Use DC")};
+ QString CSSSetSmallLabel = "QLabel { color: ";
+ CSSSetSmallLabel.append(colorText + "; font-size: ");
+ CSSSetSmallLabel.append(QString::number((int)(0.5 + ui->diveHeadingLabel->geometry().height() * 0.66)) + "px;}");
ui->atmPressType->insertItems(0, atmPressTypes);
pressTypeIndex = 0;
ui->waterTypeCombo->insertItems(0, getWaterTypesAsString());
@@ -34,8 +45,10 @@ TabDiveInformation::TabDiveInformation(QWidget *parent) : TabBase(parent), ui(ne
types.append(gettextFromC::tr(divemode_text_ui[i]));
ui->diveType->insertItems(0, types);
connect(ui->diveType, SIGNAL(currentIndexChanged(int)), this, SLOT(diveModeChanged(int)));
- QString CSSSetSmallLabel = "QLabel { font-size: " + // Using label height
- QString::number((int)(0.5 + ui->diveHeadingLabel->geometry().height() * 0.66)) + "px;}"; // .. set CSS font size of star widget subscripts
+ ui->scrollAreaWidgetContents_3->setStyleSheet(CSSTitleColor);
+ ui->diveHeadingLabel->setStyleSheet(CSSLabelColor);
+ ui->gasHeadingLabel->setStyleSheet(CSSLabelColor);
+ ui->environmentHeadingLabel->setStyleSheet(CSSLabelColor);
ui->groupBox_visibility->setStyleSheet(CSSSetSmallLabel);
ui->groupBox_current->setStyleSheet(CSSSetSmallLabel);
ui->groupBox_wavesize->setStyleSheet(CSSSetSmallLabel);
@@ -55,7 +68,7 @@ TabDiveInformation::TabDiveInformation(QWidget *parent) : TabBase(parent), ui(ne
updateWaterTypeWidget();
QPixmap warning (":salinity-warning-icon");
ui->salinityOverWrittenIcon->setPixmap(warning);
- ui->salinityOverWrittenIcon->setToolTip("Water type differs from that of dc");
+ ui->salinityOverWrittenIcon->setToolTip(CSSSetSmallLabel);
ui->salinityOverWrittenIcon->setToolTipDuration(2500);
ui->salinityOverWrittenIcon->setVisible(false);
}