diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2023-02-09 13:46:06 +0100 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2023-02-09 18:55:37 +0100 |
commit | 92f5836fe8611d6f7a70efcc3b0dd5db262ba175 (patch) | |
tree | 851f183b106868f4b0bb901dab6fa7e78db55bc1 | |
parent | 0f50145e433d2ac4ad2f4371ce627d2e0c2e0efd (diff) |
Prepare for replacing Qt::Appearance with Qt::ColorScheme
Based on discussions in the 6.5 API review, where we concluded that
'appearance' is too general. Instead, we follow the CSS standard
and use the term 'color scheme'.
This patch is a first step, only introducing the new API, so that
submodules can port over. The next step will be to remove the old
API and transition the docs and platform themes.
Pick-to: 6.5
Change-Id: I43cdb6bb1ccb49c535c06b1897821467fd83ca60
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
-rw-r--r-- | src/corelib/global/qnamespace.h | 7 | ||||
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 6 | ||||
-rw-r--r-- | src/gui/kernel/qguiapplication_p.h | 1 | ||||
-rw-r--r-- | src/gui/kernel/qplatformtheme.cpp | 5 | ||||
-rw-r--r-- | src/gui/kernel/qplatformtheme.h | 1 | ||||
-rw-r--r-- | src/gui/kernel/qstylehints.cpp | 5 | ||||
-rw-r--r-- | src/gui/kernel/qstylehints.h | 3 |
7 files changed, 28 insertions, 0 deletions
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h index d0bb4a2b85..17d96ec2ac 100644 --- a/src/corelib/global/qnamespace.h +++ b/src/corelib/global/qnamespace.h @@ -52,6 +52,12 @@ namespace Qt { Dark, }; + enum class ColorScheme { + Unknown, + Light, + Dark, + }; + enum MouseButton { NoButton = 0x00000000, LeftButton = 0x00000001, @@ -1758,6 +1764,7 @@ namespace Qt { Q_ENUM_NS(CursorShape) Q_ENUM_NS(GlobalColor) Q_ENUM_NS(Appearance) + Q_ENUM_NS(ColorScheme) Q_ENUM_NS(AspectRatioMode) Q_ENUM_NS(TransformationMode) Q_FLAG_NS(ImageConversionFlags) diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 741a02875a..f37095053e 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -2611,6 +2611,12 @@ Qt::Appearance QGuiApplicationPrivate::appearance() : Qt::Appearance::Unknown; } +Qt::ColorScheme QGuiApplicationPrivate::colorScheme() +{ + return platformTheme() ? platformTheme()->colorScheme() + : Qt::ColorScheme::Unknown; +} + void QGuiApplicationPrivate::handleThemeChanged() { updatePalette(); diff --git a/src/gui/kernel/qguiapplication_p.h b/src/gui/kernel/qguiapplication_p.h index 46bc504f5f..47228a0738 100644 --- a/src/gui/kernel/qguiapplication_p.h +++ b/src/gui/kernel/qguiapplication_p.h @@ -314,6 +314,7 @@ private: friend class QDragManager; static Qt::Appearance appearance(); + static Qt::ColorScheme colorScheme(); static QGuiApplicationPrivate *self; static int m_fakeMouseSourcePointId; diff --git a/src/gui/kernel/qplatformtheme.cpp b/src/gui/kernel/qplatformtheme.cpp index 1639003f5f..84bc3b1f0e 100644 --- a/src/gui/kernel/qplatformtheme.cpp +++ b/src/gui/kernel/qplatformtheme.cpp @@ -441,6 +441,11 @@ Qt::Appearance QPlatformTheme::appearance() const return Qt::Appearance::Unknown; } +Qt::ColorScheme QPlatformTheme::colorScheme() const +{ + return Qt::ColorScheme(appearance()); +} + const QPalette *QPlatformTheme::palette(Palette type) const { Q_D(const QPlatformTheme); diff --git a/src/gui/kernel/qplatformtheme.h b/src/gui/kernel/qplatformtheme.h index c06823addf..98825328aa 100644 --- a/src/gui/kernel/qplatformtheme.h +++ b/src/gui/kernel/qplatformtheme.h @@ -295,6 +295,7 @@ public: #endif virtual Qt::Appearance appearance() const; + virtual Qt::ColorScheme colorScheme() const; virtual const QPalette *palette(Palette type = SystemPalette) const; diff --git a/src/gui/kernel/qstylehints.cpp b/src/gui/kernel/qstylehints.cpp index 259a6927d9..a202c7ebc6 100644 --- a/src/gui/kernel/qstylehints.cpp +++ b/src/gui/kernel/qstylehints.cpp @@ -133,6 +133,11 @@ Qt::Appearance QStyleHints::appearance() const return d->appearance(); } +Qt::ColorScheme QStyleHints::colorScheme() const +{ + return Qt::ColorScheme(appearance()); +} + /*! Sets the \a mousePressAndHoldInterval. \internal diff --git a/src/gui/kernel/qstylehints.h b/src/gui/kernel/qstylehints.h index 779bed67d8..cae5a64f85 100644 --- a/src/gui/kernel/qstylehints.h +++ b/src/gui/kernel/qstylehints.h @@ -53,6 +53,7 @@ class Q_GUI_EXPORT QStyleHints : public QObject FINAL) Q_PROPERTY(int touchDoubleTapDistance READ touchDoubleTapDistance STORED false CONSTANT FINAL) Q_PROPERTY(Qt::Appearance appearance READ appearance NOTIFY appearanceChanged FINAL) + Q_PROPERTY(Qt::ColorScheme colorScheme READ colorScheme NOTIFY colorSchemeChanged FINAL) public: void setMouseDoubleClickInterval(int mouseDoubleClickInterval); @@ -94,6 +95,7 @@ public: void setMouseQuickSelectionThreshold(int threshold); int mouseQuickSelectionThreshold() const; Qt::Appearance appearance() const; + Qt::ColorScheme colorScheme() const; Q_SIGNALS: void cursorFlashTimeChanged(int cursorFlashTime); @@ -108,6 +110,7 @@ Q_SIGNALS: void wheelScrollLinesChanged(int scrollLines); void mouseQuickSelectionThresholdChanged(int threshold); void appearanceChanged(Qt::Appearance appearance); + void colorSchemeChanged(Qt::ColorScheme colorScheme); private: friend class QGuiApplication; |