Check real palette darkness to detect "dark theme"

`QStyleHints::colorScheme()` returns chosen color scheme even if current style doesn't support it and uses different palette.

PR #21771.
This commit is contained in:
Vladimir Golovnev 2024-11-08 11:45:16 +03:00 committed by GitHub
parent a6c7aef6c1
commit 4bec9b90c4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -47,16 +47,9 @@ namespace
{ {
bool isDarkTheme() bool isDarkTheme()
{ {
switch (qApp->styleHints()->colorScheme()) const QPalette palette = qApp->palette();
{ const QColor &color = palette.color(QPalette::Active, QPalette::Base);
case Qt::ColorScheme::Dark: return (color.lightness() < 127);
return true;
case Qt::ColorScheme::Light:
return false;
default:
// fallback to custom method
return (qApp->palette().color(QPalette::Active, QPalette::Base).lightness() < 127);
}
} }
} }