From 2248487c6ca9d5459c70a16868d5aeee07d96157 Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Tue, 29 Jun 2021 11:58:04 +0200 Subject: Add QPlatformTheme::Appearance for detecting light/dark modes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit And implement it on Windows and macOS. Fixes: QTBUG-83908 Fixes: QTBUG-94859 Change-Id: I7b0c062adf5d4dbaefa64c862ab8ab1348809d71 Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/windows/qwindowstheme.cpp | 5 +++++ src/plugins/platforms/windows/qwindowstheme.h | 3 +++ 2 files changed, 8 insertions(+) (limited to 'src/plugins/platforms/windows') diff --git a/src/plugins/platforms/windows/qwindowstheme.cpp b/src/plugins/platforms/windows/qwindowstheme.cpp index 61a885953a..6fbf4183da 100644 --- a/src/plugins/platforms/windows/qwindowstheme.cpp +++ b/src/plugins/platforms/windows/qwindowstheme.cpp @@ -529,6 +529,11 @@ QVariant QWindowsTheme::themeHint(ThemeHint hint) const return QPlatformTheme::themeHint(hint); } +QPlatformTheme::Appearance QWindowsTheme::appearance() const +{ + return QWindowsContext::isDarkMode() ? Appearance::Dark : Appearance::Light; +} + void QWindowsTheme::clearPalettes() { qDeleteAll(m_palettes, m_palettes + NPalettes); diff --git a/src/plugins/platforms/windows/qwindowstheme.h b/src/plugins/platforms/windows/qwindowstheme.h index af28f2878c..9d5fcc92fe 100644 --- a/src/plugins/platforms/windows/qwindowstheme.h +++ b/src/plugins/platforms/windows/qwindowstheme.h @@ -64,6 +64,9 @@ public: QPlatformSystemTrayIcon *createPlatformSystemTrayIcon() const override; #endif QVariant themeHint(ThemeHint) const override; + + Appearance appearance() const override; + const QPalette *palette(Palette type = SystemPalette) const override { return m_palettes[type]; } const QFont *font(Font type = SystemFont) const override -- cgit v1.2.3