diff --git a/src/Gui/Colors.cpp b/src/Gui/Colors.cpp index 0a61b5918..7c81af65b 100644 --- a/src/Gui/Colors.cpp +++ b/src/Gui/Colors.cpp @@ -444,6 +444,22 @@ QColor GCColor::alternateColor(QColor bgColor) return QColor(Qt::lightGray); } +QColor GCColor::selectedColor(QColor bgColor) +{ + // if foreground is white then we're "dark" if it's + // black the we're "light" so this controls palette + bool dark = invertColor(bgColor) == QColor(Qt::white); + bool isblack = bgColor == QColor(Qt::black); // e.g. mustang theme + + // on select background color + QColor bg_select = bgColor; + if (dark) bg_select = bg_select.lighter(200); + else bg_select = bg_select.darker(200); + if (isblack) bg_select = QColor(30, 30, 30); + + return bg_select; +} + const Colors * GCColor::colorSet() { return ColorList; diff --git a/src/Gui/Colors.h b/src/Gui/Colors.h index 7818831ce..48aee73b3 100644 --- a/src/Gui/Colors.h +++ b/src/Gui/Colors.h @@ -130,6 +130,7 @@ class GCColor : public QObject static double luminance(QColor color); // return the relative luminance static QColor invertColor(QColor); // return the contrasting color static QColor alternateColor(QColor); // return the alternate background + static QColor selectedColor(QColor); // return the on select background color static QColor htmlCode(QColor x) { return x.name(); } // return the alternate background static Themes &themes(); static void applyTheme(int index); diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index ea0c2793a..93215a612 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -2535,15 +2535,21 @@ MainWindow::configChanged(qint32) whatsthis->setStyleSheet(buttonstyle); // All platforms - QPalette tabbarPalette; tabbar->setAutoFillBackground(true); tabbar->setShape(QTabBar::RoundedSouth); tabbar->setDrawBase(false); - tabbarPalette.setBrush(backgroundRole(), GColor(CTOOLBAR)); - tabbarPalette.setBrush(foregroundRole(), GCColor::invertColor(GColor(CTOOLBAR))); - tabbar->setPalette(tabbarPalette); - athleteView->setPalette(tabbarPalette); + // on select + QColor bg_select = GCColor::selectedColor(GColor(CTOOLBAR)); + QColor fg_select = GCColor::invertColor(bg_select); + + tabbar->setStyleSheet(QString("QTabBar::tab { background-color: %1; color: %2;}" + "QTabBar::tab::selected { background-color: %3; color: %4; }").arg(GColor(CTOOLBAR).name()) + .arg(GCColor::invertColor(GColor(CTOOLBAR)).name()) + .arg(bg_select.name()) + .arg(fg_select.name())); + tabbar->setDocumentMode(true); + athleteView->setPalette(tabbar->palette()); head->updateGeometry(); repaint(); diff --git a/src/Gui/NewSideBar.cpp b/src/Gui/NewSideBar.cpp index 03f2d6d7b..f27d42110 100644 --- a/src/Gui/NewSideBar.cpp +++ b/src/Gui/NewSideBar.cpp @@ -218,8 +218,9 @@ static QImage imageRGB(QImage &source, QColor target) void NewSideBarItem::configChanged(qint32) { - QColor col = GColor(CCHROME); - QString style=QString("QWidget { background: rgb(%1,%2,%3); }").arg(col.red()).arg(col.green()).arg(col.blue()); + // set background colors + bg_normal = GColor(CCHROME); + QString style = QString("QWidget { background: rgb(%1,%2,%3); }").arg(bg_normal.red()).arg(bg_normal.green()).arg(bg_normal.blue()); setStyleSheet(style); // set foreground colors @@ -232,16 +233,8 @@ NewSideBarItem::configChanged(qint32) if (dark) fg_disabled = QColor(80,80,80); else fg_disabled = QColor(180,180,180); - // set background colors - col=GColor(CCHROME); - bool isblack = (col == QColor(Qt::black)); // e.g. mustang theme - bg_normal = col; - // on select - bg_select =GColor(CCHROME); - if (dark) bg_select = bg_select.lighter(200); - else bg_select = bg_select.darker(200); - if (isblack) bg_select = QColor(30,30,30); + bg_select = GCColor::selectedColor(bg_normal); fg_select = GCColor::invertColor(bg_select); // on hover diff --git a/src/Gui/SearchBox.cpp b/src/Gui/SearchBox.cpp index 27ee33693..f72848a26 100644 --- a/src/Gui/SearchBox.cpp +++ b/src/Gui/SearchBox.cpp @@ -148,6 +148,9 @@ SearchBox::configChanged(qint32) .arg(clearButton->sizeHint().width() + frameWidth + 12)); } + + toolButton->setStyleSheet(QString("QToolButton { background: transparent; color: %1;}") + .arg(GCColor::invertColor(GColor(CTOOLBAR)).name())); // get suitably formated list QList list;