Terminate user color calculation, when no solution can be found

fixes #172
This commit is contained in:
Nicolas Werner 2020-04-22 23:31:50 +02:00
parent 0e1bb5137b
commit 35601b6bef
2 changed files with 7 additions and 0 deletions

View file

@ -12,6 +12,7 @@
- Fix crash when trying to maximize image, that wasn't downloaded yet. - Fix crash when trying to maximize image, that wasn't downloaded yet.
- Fix Binding restorMode flooding logs on Qt 5.14.2+ - Fix Binding restorMode flooding logs on Qt 5.14.2+
- Fix with some qml styles hidden menu items leave empty space - 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 ## [0.7.0] -- 2020-04-19

View file

@ -540,6 +540,7 @@ utils::generateContrastingHexColor(const QString &input, const QString &backgrou
// If the contrast doesn't meet our criteria, // If the contrast doesn't meet our criteria,
// try again and again until they do by modifying first // try again and again until they do by modifying first
// the lightness and then the saturation of the color. // the lightness and then the saturation of the color.
int iterationCount = 9;
while (contrast < 5) { while (contrast < 5) {
// if our lightness is at it's bounds, try changing // if our lightness is at it's bounds, try changing
// saturation instead. // 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. // get the hex value of the generated color.