From 5b0a6bfa800cf222e6687329682ee5d2f4800d89 Mon Sep 17 00:00:00 2001 From: nirvn Date: Thu, 27 Dec 2018 11:23:31 +0700 Subject: [PATCH] Only add option list widget styling for default theme (This allows customized styling for non-default themes, fixes white background on white text issue et cie) --- src/app/qgisapp.cpp | 2 +- src/app/qgisappstylesheet.cpp | 41 ++++++++++++++++++++--------------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index 66f7b57da0a..f6db2a4bb90 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -760,7 +760,6 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, bool skipVersionCh mStyleSheetBuilder = new QgisAppStyleSheet( this ); connect( mStyleSheetBuilder, &QgisAppStyleSheet::appStyleSheetChanged, this, &QgisApp::setAppStyleSheet ); - mStyleSheetBuilder->buildStyleSheet( mStyleSheetBuilder->defaultOptions() ); endProfile(); QWidget *centralWidget = this->centralWidget(); @@ -3253,6 +3252,7 @@ void QgisApp::setTheme( const QString &themeName ) #endif #endif + mStyleSheetBuilder->buildStyleSheet( mStyleSheetBuilder->defaultOptions() ); QgsApplication::setUITheme( theme ); //QgsDebugMsg("Setting theme to \n" + themeName); diff --git a/src/app/qgisappstylesheet.cpp b/src/app/qgisappstylesheet.cpp index 811145054bb..f695723760a 100644 --- a/src/app/qgisappstylesheet.cpp +++ b/src/app/qgisappstylesheet.cpp @@ -89,6 +89,7 @@ QMap QgisAppStyleSheet::defaultOptions() void QgisAppStyleSheet::buildStyleSheet( const QMap &opts ) { + QgsSettings settings; QString ss; // QgisApp-wide font @@ -120,24 +121,28 @@ void QgisAppStyleSheet::buildStyleSheet( const QMap &opts ) ss += QLatin1String( "QGroupBox{ font-weight: 600; }" ); - //sidebar style - QString style = "QListWidget#mOptionsListWidget {" - " background-color: rgb(69, 69, 69, 0);" - " outline: 0;" - "}" - "QFrame#mOptionsListFrame {" - " background-color: rgb(69, 69, 69, 220);" - "}" - "QListWidget#mOptionsListWidget::item {" - " color: white;" - " padding: 3px;" - "}" - "QListWidget#mOptionsListWidget::item::selected {" - " color: black;" - " background-color:palette(Window);" - " padding-right: 0px;" - "}"; - ss += style; + QString themeName = settings.value( QStringLiteral( "UI/UITheme" ), "default" ).toString(); + if ( themeName == QStringLiteral( "default" ) ) + { + //sidebar style + QString style = "QListWidget#mOptionsListWidget {" + " background-color: rgb(69, 69, 69, 0);" + " outline: 0;" + "}" + "QFrame#mOptionsListFrame {" + " background-color: rgb(69, 69, 69, 220);" + "}" + "QListWidget#mOptionsListWidget::item {" + " color: white;" + " padding: 3px;" + "}" + "QListWidget#mOptionsListWidget::item::selected {" + " color: black;" + " background-color:palette(Window);" + " padding-right: 0px;" + "}"; + ss += style; + } // Fix selection color on losing focus (Windows) const QPalette palette = qApp->palette();