mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
desktop: generalize the colorization of the tab widget
Instead of doing it just for the Information tab, do it for all of the tabs. There's still room for improvement. But this certainly feels more consistent. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
7d18a525f1
commit
814cda7183
6 changed files with 80 additions and 15 deletions
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue