diff options
author | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2021-11-19 07:32:05 +0100 |
---|---|---|
committer | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2021-11-19 09:33:11 +0100 |
commit | d180cb47b147ca07874b7defe1ed2771d5cb73fc (patch) | |
tree | b0259a52d83347c8ad9126e01c5a21ea938b10bc /tests | |
parent | a0cee2d79550979638ed3e1ef5ffa2fe43367a99 (diff) | |
download | qtsvg-d180cb47b147ca07874b7defe1ed2771d5cb73fc.tar.gz |
Fix boundsOnElement() for text nodes having transformations
Text layout calculations are done with a local scaling, and that was
mixed up with the node transformation when computing the bounds.
Fixes: QTBUG-98139
Pick-to: 6.2
Change-Id: Id3ab0500cfba4578989b5766677a53340e8cecde
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp index e368444..fca52ea 100644 --- a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp +++ b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp @@ -599,6 +599,8 @@ void tst_QSvgRenderer::boundsOnElement() const "<use x=\"0\" y=\"0\" transform=\"rotate(45)\" xlink:href=\"#baconost\"/>" "</g>" "</g>" + "<text id=\"textA\" x=\"50\" y=\"100\">Lorem ipsum</text>" + "<text id=\"textB\" transform=\"matrix(1 0 0 1 50 100)\">Lorem ipsum</text>" "</svg>"); qreal sqrt2 = qSqrt(2); @@ -610,6 +612,10 @@ void tst_QSvgRenderer::boundsOnElement() const QCOMPARE(renderer.boundsOnElement(QLatin1String("baconost")), QRectF(-10 * sqrt2, -10 * sqrt2, 20 * sqrt2, 20 * sqrt2)); QCOMPARE(renderer.boundsOnElement(QLatin1String("hapaa")), QRectF(-13, -9, 22, 22)); QCOMPARE(renderer.boundsOnElement(QLatin1String("prim")), QRectF(-10 * sqrt2 - 3, -10 * sqrt2 + 1, 20 * sqrt2, 20 * sqrt2)); + + QRectF textBoundsA = renderer.boundsOnElement(QLatin1String("textA")); + QVERIFY(!textBoundsA.isEmpty()); + QCOMPARE(renderer.boundsOnElement(QLatin1String("textB")), textBoundsA); } void tst_QSvgRenderer::gradientStops() const |