diff options
author | Nicolas Werner <nicolas.werner@hotmail.de> | 2020-04-22 23:31:50 +0200 |
---|---|---|
committer | Nicolas Werner <nicolas.werner@hotmail.de> | 2020-04-22 23:33:27 +0200 |
commit | 35601b6bef6165e254aa0becc38939f1122b0181 (patch) | |
tree | 2d29b5c70a8d958f3ce1c10517af5df871b116dc | |
parent | 0e1bb5137bf2b13d501c243e31c8ca981fc20a1a (diff) |
Terminate user color calculation, when no solution can be found
fixes #172
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | src/Utils.cpp | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index bdd4363c..93a4d9d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - Fix crash when trying to maximize image, that wasn't downloaded yet. - Fix Binding restorMode flooding logs on Qt 5.14.2+ - Fix with some qml styles hidden menu items leave empty space +- Fix hangs when generating colors with some system theme color schemes (#172) ## [0.7.0] -- 2020-04-19 diff --git a/src/Utils.cpp b/src/Utils.cpp index 33b75894..62a1a3c8 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -540,6 +540,7 @@ utils::generateContrastingHexColor(const QString &input, const QString &backgrou // If the contrast doesn't meet our criteria, // try again and again until they do by modifying first // the lightness and then the saturation of the color. + int iterationCount = 9; while (contrast < 5) { // if our lightness is at it's bounds, try changing // saturation instead. @@ -586,6 +587,11 @@ utils::generateContrastingHexColor(const QString &input, const QString &backgrou } } } + + // don't loop forever, just give up at some point! + // Someone smart may find a better solution + if (--iterationCount < 0) + break; } // get the hex value of the generated color. |