diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-09-25 15:04:36 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-01-25 20:33:30 +0100 |
commit | 859307d7a590873d8df5f8094e13043370fccaa7 (patch) | |
tree | 23abcc5c6f0a0c8b6403b370f6eb4fa78e9723a1 /src/widgets/styles/qwindowsstyle.cpp | |
parent | eb26563dd5483ab83a7a5addf8f98a4921d1edc1 (diff) |
Windows QPA: Provide an experimental palette for dark mode
Provide a simple palette for dark mode, implementing
dark mode support level 2.
Task-number: QTBUG-72028
Change-Id: I6f71870b251ccb7da30c01abb22c224e600f2b27
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src/widgets/styles/qwindowsstyle.cpp')
-rw-r--r-- | src/widgets/styles/qwindowsstyle.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/widgets/styles/qwindowsstyle.cpp b/src/widgets/styles/qwindowsstyle.cpp index 8496a2c223..497afd17e1 100644 --- a/src/widgets/styles/qwindowsstyle.cpp +++ b/src/widgets/styles/qwindowsstyle.cpp @@ -84,6 +84,7 @@ #include <qpa/qplatformscreen.h> #include <private/qguiapplication_p.h> #include <private/qhighdpiscaling_p.h> +#include <qpa/qplatformnativeinterface.h> #include <private/qwidget_p.h> #include <private/qstylehelper_p.h> @@ -127,6 +128,22 @@ qreal QWindowsStylePrivate::appDevicePixelRatio() return qApp->devicePixelRatio(); } +bool QWindowsStylePrivate::isDarkMode() +{ + bool result = false; +#ifdef Q_OS_WIN + // Windows only: Return whether dark mode style support is desired and + // dark mode is in effect. + if (auto ni = QGuiApplication::platformNativeInterface()) { + const QVariant darkModeStyleP = ni->property("darkModeStyle"); + result = darkModeStyleP.type() == QVariant::Bool + && darkModeStyleP.value<bool>() + && ni->property("darkMode").value<bool>(); + } +#endif + return result; +} + // Returns \c true if the toplevel parent of \a widget has seen the Alt-key bool QWindowsStylePrivate::hasSeenAlt(const QWidget *widget) const { |