diff options
author | willemferguson <willemferguson@zoology.up.ac.za> | 2020-11-01 20:43:54 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-11-03 23:08:39 -0800 |
commit | 8b36cf10518c54d76134686a3e079bbde176022b (patch) | |
tree | 2ad17a80d75c585ba6ac2887c9dc2a427a65e15c /desktop-widgets | |
parent | 1ff488a4392f4d9a41cf1652c351e7b59bc03928 (diff) | |
download | subsurface-8b36cf10518c54d76134686a3e079bbde176022b.tar.gz |
desktop: offer different colors for info tab titles
Add a preference option to set the color of the text on the information tab to
either MediumBlue, LightBlue or Black. The last two of these colors are meant
to enable areadable font contrast on displays with dark mode.
The choice is saved with the other preferences.
[Dirk Hohndel: this isn't really about dark mode, so changed many of the types
and variable names, changed the user visible texts, and
addressed some whitespace issues]
Signed-off-by: willemferguson <willemferguson@zoology.up.ac.za>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'desktop-widgets')
-rw-r--r-- | desktop-widgets/preferences/preferences_defaults.cpp | 3 | ||||
-rw-r--r-- | desktop-widgets/preferences/preferences_defaults.ui | 73 | ||||
-rw-r--r-- | desktop-widgets/tab-widgets/TabDiveInformation.cpp | 19 |
3 files changed, 92 insertions, 3 deletions
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); } |