diff options
author | Piotr Wiercinski <[email protected]> | 2025-05-30 13:22:39 +0200 |
---|---|---|
committer | Piotr WierciĆski <[email protected]> | 2025-06-05 12:37:54 +0000 |
commit | 5618710d63db673443ba3872463f4663c09fe204 (patch) | |
tree | 8bd12cfdf683b839a76eb6651abf5cd7d2893ccd | |
parent | 9b9511c3548c43ce30117edb800af0c824fae26e (diff) |
fusion: Improve visibility of Checkbox in dark mode
Fixes: QTBUG-136960
Pick-to: 6.8 6.9 6.10
Change-Id: I606fd034ba83011624ff9a38a8c973659c241c26
Reviewed-by: Matthias Rauter <[email protected]>
-rw-r--r-- | src/widgets/styles/qfusionstyle.cpp | 8 | ||||
-rw-r--r-- | src/widgets/styles/qfusionstyle_p.h | 1 | ||||
-rw-r--r-- | src/widgets/styles/qfusionstyle_p_p.h | 10 |
3 files changed, 17 insertions, 2 deletions
diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index ade558b48ce..e9cc250c517 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -591,7 +591,8 @@ void QFusionStyle::drawPrimitive(PrimitiveElement elem, if (option->state & State_HasFocus && option->state & State_KeyboardFocusChange) painter->setPen(highlightedOutline); else - painter->setPen(outline.lighter(110)); + painter->setPen(colorScheme() == Qt::ColorScheme::Dark ? outline.lighter(150) + : outline.lighter(110)); painter->drawRect(rect); QColor checkMarkColor = option->palette.text().color().darker(120); @@ -3558,6 +3559,11 @@ bool QFusionStyle::isHighContrast() const == Qt::ContrastPreference::HighContrast; } +Qt::ColorScheme QFusionStyle::colorScheme() const +{ + return QGuiApplicationPrivate::platformTheme()->colorScheme(); +} + QT_END_NAMESPACE #include "moc_qfusionstyle_p.cpp" diff --git a/src/widgets/styles/qfusionstyle_p.h b/src/widgets/styles/qfusionstyle_p.h index 6c2c8eeef2b..448b541ebdd 100644 --- a/src/widgets/styles/qfusionstyle_p.h +++ b/src/widgets/styles/qfusionstyle_p.h @@ -75,6 +75,7 @@ protected: private: bool isHighContrast() const; + Qt::ColorScheme colorScheme() const; }; #endif // style_fusion diff --git a/src/widgets/styles/qfusionstyle_p_p.h b/src/widgets/styles/qfusionstyle_p_p.h index 10d8969bb33..67abdd74dc8 100644 --- a/src/widgets/styles/qfusionstyle_p_p.h +++ b/src/widgets/styles/qfusionstyle_p_p.h @@ -70,7 +70,10 @@ public: } if (pal.window().style() == Qt::TexturePattern) return QColor(0, 0, 0, 160); - return pal.window().color().darker(140); + if (colorScheme() == Qt::ColorScheme::Dark) + return pal.window().color().lighter(140); + else + return pal.window().color().darker(140); } QColor highlightedOutline(const QPalette &pal) const { @@ -102,6 +105,11 @@ public: }; private: + Qt::ColorScheme colorScheme() const + { + return QGuiApplicationPrivate::platformTheme()->colorScheme(); + } + bool isHighContrast() const { return QGuiApplicationPrivate::platformTheme()->contrastPreference() |