From 502c47820a3285b3b3c85365a9843aeb7b76235d Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Wed, 24 Aug 2022 16:09:22 +0800 Subject: [PATCH] qt_fusionPalette: make links more legible on dark backgrounds QPalette's default for Link is Qt::blue, which is difficult to read on dark backgrounds. Use the same blue that is already used for Highlight, as it is consistent and easy to read. Task-number: QTBUG-90504 Pick-to: 6.4 Change-Id: Ic7aceafb2bd0e57b65448917c352e3551ad26610 Reviewed-by: Volker Hilsheimer --- src/gui/kernel/qplatformtheme.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qplatformtheme.cpp b/src/gui/kernel/qplatformtheme.cpp index e0ec31d204..fe044bd1be 100644 --- a/src/gui/kernel/qplatformtheme.cpp +++ b/src/gui/kernel/qplatformtheme.cpp @@ -356,6 +356,7 @@ Q_GUI_EXPORT QPalette qt_fusionPalette() const QColor dark = backGround.darker(150); const QColor darkDisabled = QColor(209, 209, 209).darker(110); const QColor text = darkAppearance ? windowText : Qt::black; + const QColor highlight = QColor(48, 140, 198); const QColor hightlightedText = darkAppearance ? windowText : Qt::white; const QColor disabledText = darkAppearance ? QColor(130, 130, 130) : QColor(190, 190, 190); const QColor button = backGround; @@ -377,12 +378,16 @@ Q_GUI_EXPORT QPalette qt_fusionPalette() fusionPalette.setBrush(QPalette::Disabled, QPalette::Dark, darkDisabled); fusionPalette.setBrush(QPalette::Disabled, QPalette::Shadow, disabledShadow); - fusionPalette.setBrush(QPalette::Active, QPalette::Highlight, QColor(48, 140, 198)); - fusionPalette.setBrush(QPalette::Inactive, QPalette::Highlight, QColor(48, 140, 198)); + fusionPalette.setBrush(QPalette::Active, QPalette::Highlight, highlight); + fusionPalette.setBrush(QPalette::Inactive, QPalette::Highlight, highlight); fusionPalette.setBrush(QPalette::Disabled, QPalette::Highlight, QColor(145, 145, 145)); fusionPalette.setBrush(QPalette::PlaceholderText, placeholder); + // Use a more legible light blue on dark backgrounds than the default Qt::blue. + if (darkAppearance) + fusionPalette.setBrush(QPalette::Link, highlight); + return fusionPalette; }