summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Wiercinski <[email protected]>2025-05-30 13:22:39 +0200
committerPiotr WierciƄski <[email protected]>2025-06-05 12:37:54 +0000
commit5618710d63db673443ba3872463f4663c09fe204 (patch)
tree8bd12cfdf683b839a76eb6651abf5cd7d2893ccd
parent9b9511c3548c43ce30117edb800af0c824fae26e (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.cpp8
-rw-r--r--src/widgets/styles/qfusionstyle_p.h1
-rw-r--r--src/widgets/styles/qfusionstyle_p_p.h10
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()