diff --git a/src/settings.cpp b/src/settings.cpp index f8cecdda6943a90af1b0ebc7a84fcd4ccb44e806..9185b2e79c42ea50d9626dc47af59d01b8b8d3f9 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -8,12 +8,15 @@ #include "settings.h" +#include + #include #include #include #include #include +#include #include @@ -290,15 +293,15 @@ QDBusVariant SettingsPortal::readProperty(const QString &group, const QString &k QDBusVariant SettingsPortal::readFdoColorScheme() { - const KConfigGroup general = m_kdeglobals->group(QStringLiteral("General")); - const QString colorSchemeName = general.readEntry(QStringLiteral("ColorScheme"), QStringLiteral("Breeze")); + const QPalette palette = QApplication::palette(); + const int windowBackgroundGray = qGray(palette.window().color().rgb()); - uint result = 0; + uint result = 0; // no preference - if (colorSchemeName == QLatin1String("Breeze") || colorSchemeName == QLatin1String("BreezeLight") || colorSchemeName == QLatin1String("BreezeClassic")) { - result = 2; - } else if (colorSchemeName == QLatin1String("BreezeDark")) { - result = 1; + if (windowBackgroundGray < 192) { + result = 1; // prefer dark + } else { + result = 2; // prefer light } return QDBusVariant(result);