From: Claudio Cambra Date: Tue, 5 Nov 2024 08:03:14 +0000 (+0900) Subject: Use registry-based dark mode detection on <= Windows 10 X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~5^2~40^2~6 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5f6712f442d355a89594284d22d553951c5ab7a6;p=nextcloud-desktop.git Use registry-based dark mode detection on <= Windows 10 Signed-off-by: Claudio Cambra --- diff --git a/src/libsync/theme.cpp b/src/libsync/theme.cpp index 44c2789b0..fef629491 100644 --- a/src/libsync/theme.cpp +++ b/src/libsync/theme.cpp @@ -1022,17 +1022,29 @@ QVariantMap Theme::systemPalette() bool Theme::darkMode() { connectToPaletteSignal(); - switch (qGuiApp->styleHints()->colorScheme()) - { - case Qt::ColorScheme::Dark: - return true; - case Qt::ColorScheme::Light: + const auto isDarkFromStyle = [] { + switch (qGuiApp->styleHints()->colorScheme()) + { + case Qt::ColorScheme::Dark: + return true; + case Qt::ColorScheme::Light: + return false; + case Qt::ColorScheme::Unknown: + return Theme::isDarkColor(QGuiApplication::palette().window().color()); + } + return false; - case Qt::ColorScheme::Unknown: - return Theme::isDarkColor(QGuiApplication::palette().window().color()); - } + }; - return false; +#ifdef Q_OS_WIN + static const auto darkModeSubkey = QStringLiteral("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"); + if (!IsWindows11OrGreater() && + Utility::registryKeyExists(HKEY_CURRENT_USER, darkModeSubkey) && + !Utility::registryGetKeyValue(HKEY_CURRENT_USER, darkModeSubkey, QStringLiteral("AppsUseLightTheme")).toBool()) { + return true; + } +#endif + return isDarkFromStyle(); } void Theme::setOverrideServerUrl(const QString &overrideServerUrl)