summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/tab-widgets/maintab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'desktop-widgets/tab-widgets/maintab.cpp')
-rw-r--r--desktop-widgets/tab-widgets/maintab.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/desktop-widgets/tab-widgets/maintab.cpp b/desktop-widgets/tab-widgets/maintab.cpp
index 0a9799b65..ab4b4f28b 100644
--- a/desktop-widgets/tab-widgets/maintab.cpp
+++ b/desktop-widgets/tab-widgets/maintab.cpp
@@ -72,6 +72,9 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
extraWidgets << new TabDiveComputer(this);
ui.tabWidget->addTab(extraWidgets.last(), tr("Device names"));
+ // call colorsChanged() for the initial setup now that the extraWidgets are loaded
+ colorsChanged();
+
updateDateTimeFields();
closeMessage();
@@ -701,8 +704,32 @@ void MainTab::clearTabs()
widget->clear();
}
+// setup the colors of 'header' elements in the tab widget
void MainTab::colorsChanged()
{
+ // 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 + " ;}";
+
+ // only set the color if the widget is enabled
+ QString CSSLabelcolor = "QLabel:enabled { color: " + lastpart;
+ QString CSSTitlecolor = "QGroupBox::title:enabled { color: " + lastpart ;
+
+ // apply to all the group boxes
+ QList<QGroupBox *>groupBoxes = this->findChildren<QGroupBox *>();
+ for (QGroupBox *gb: groupBoxes)
+ gb->setStyleSheet(QString(CSSTitlecolor));
+
+ // apply to all labels that are marked as headers in the .ui file
+ QList<QLabel *>labels = this->findChildren<QLabel *>();
+ for (QLabel *ql: labels) {
+ if (ql->property("isHeader").toBool())
+ ql->setStyleSheet(QString(CSSLabelcolor));
+ }
+
+ // finally call the individual updateUi() functions so they can overwrite these style sheets
for (TabBase *widget: extraWidgets)
widget->updateUi();
}