aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/context2d/qquickcontext2d.cpp2
-rw-r--r--tests/auto/quick/qquickcanvasitem/data/tst_context.qml18
2 files changed, 19 insertions, 1 deletions
diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp
index 4aa3b1c8d0..c71a354e0c 100644
--- a/src/quick/items/context2d/qquickcontext2d.cpp
+++ b/src/quick/items/context2d/qquickcontext2d.cpp
@@ -189,7 +189,7 @@ QColor qt_color_from_string(const QV4::Value &name)
if (isRgb)
return QColor::fromRgba(qRgba(qClamp(rh, 0, 255), qClamp(gs, 0, 255), qClamp(bl, 0, 255), qClamp(alpha, 0, 255)));
else if (isHsl)
- return QColor::fromHsl(qClamp(rh, 0, 255), qClamp(gs, 0, 255), qClamp(bl, 0, 255), qClamp(alpha, 0, 255));
+ return QColor::fromHsl(qClamp(rh, 0, 359), qClamp(gs, 0, 255), qClamp(bl, 0, 255), qClamp(alpha, 0, 255));
}
return QColor();
}
diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_context.qml b/tests/auto/quick/qquickcanvasitem/data/tst_context.qml
index f266c16d76..566ad9d3d5 100644
--- a/tests/auto/quick/qquickcanvasitem/data/tst_context.qml
+++ b/tests/auto/quick/qquickcanvasitem/data/tst_context.qml
@@ -182,4 +182,22 @@ Canvas {
}
}
}
+
+ TestCase {
+ name: "Colors"
+ when: canvas.available
+
+ function test_colors() {
+ wait(100);
+ compare(contextSpy.count, 1);
+
+ var ctx = canvas.getContext("2d");
+ // QTBUG-47894
+ ctx.strokeStyle = 'hsl(255, 100%, 50%)';
+ var c1 = ctx.strokeStyle.toString();
+ ctx.strokeStyle = 'hsl(320, 100%, 50%)';
+ var c2 = ctx.strokeStyle.toString();
+ verify(c1 !== c2);
+ }
+ }
}