summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-07-21 16:20:55 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-07-24 00:30:22 +0000
commit57015d8551ab5fe92481f9ebbe6eb80a2e831063 (patch)
treeb42ca9a9341bd859bf03acc68ac90c203b9ac3de
parent23a20fb293c5b3276a6aca77d77a886f3414548d (diff)
Remove special casing of HSL QColor comparison
All other equality comparisons except floating-point are value comparisons, not interpretation comparisons. [ChangeLog][QColor] Equality on HSL colors is now raw value based like other color-formats, instead of being partially interpretation based. Change-Id: I391464da172af6a2d69178b94203d36f7ce2c07d Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 162d486c0d79ce3b2a460782319bf4c71d88398c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/gui/painting/qcolor.cpp15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/gui/painting/qcolor.cpp b/src/gui/painting/qcolor.cpp
index 8e5f6e31c7..c012cf29bf 100644
--- a/src/gui/painting/qcolor.cpp
+++ b/src/gui/painting/qcolor.cpp
@@ -2881,16 +2881,7 @@ QColor &QColor::operator=(Qt::GlobalColor color) noexcept
*/
bool QColor::operator==(const QColor &color) const noexcept
{
- if (cspec == Hsl && cspec == color.cspec) {
- return (ct.argb.alpha == color.ct.argb.alpha
- && ct.ahsl.hue % 36000 == color.ct.ahsl.hue % 36000
- && (qAbs(ct.ahsl.saturation - color.ct.ahsl.saturation) < 50
- || ct.ahsl.lightness == 0
- || color.ct.ahsl.lightness == 0
- || ct.ahsl.lightness == USHRT_MAX
- || color.ct.ahsl.lightness == USHRT_MAX)
- && (qAbs(ct.ahsl.lightness - color.ct.ahsl.lightness)) < 50);
- } else if ((cspec == ExtendedRgb || color.cspec == ExtendedRgb) &&
+ if ((cspec == ExtendedRgb || color.cspec == ExtendedRgb) &&
(cspec == color.cspec || cspec == Rgb || color.cspec == Rgb)) {
return qFuzzyCompare(alphaF(), color.alphaF())
&& qFuzzyCompare(redF(), color.redF())
@@ -2899,9 +2890,9 @@ bool QColor::operator==(const QColor &color) const noexcept
} else {
return (cspec == color.cspec
&& ct.argb.alpha == color.ct.argb.alpha
- && (((cspec == QColor::Hsv)
+ && (((cspec == QColor::Hsv || cspec == QColor::Hsl)
&& ((ct.ahsv.hue % 36000) == (color.ct.ahsv.hue % 36000)))
- || (ct.ahsv.hue == color.ct.ahsv.hue))
+ || (ct.argb.red == color.ct.argb.red))
&& ct.argb.green == color.ct.argb.green
&& ct.argb.blue == color.ct.argb.blue
&& ct.argb.pad == color.ct.argb.pad);