Skip to content
Permalink
Browse files

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)
  • Loading branch information
nirvn committed Dec 27, 2018
1 parent ea9b09f commit 5b0a6bfa800cf222e6687329682ee5d2f4800d89
Showing with 24 additions and 19 deletions.
  1. +1 −1 src/app/qgisapp.cpp
  2. +23 −18 src/app/qgisappstylesheet.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);
@@ -89,6 +89,7 @@ QMap<QString, QVariant> QgisAppStyleSheet::defaultOptions()

void QgisAppStyleSheet::buildStyleSheet( const QMap<QString, QVariant> &opts )
{
QgsSettings settings;
QString ss;

// QgisApp-wide font
@@ -120,24 +121,28 @@ void QgisAppStyleSheet::buildStyleSheet( const QMap<QString, QVariant> &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();

0 comments on commit 5b0a6bf

Please sign in to comment.
You can’t perform that action at this time.