tdf#142424: Revert "related tdf#156579: just break for switch element"
This reverts commit e222f60ac2a71032dbdf62d7c7e28978b5a0b19c.
To make the switch element behave like a
group as least, so the transform attribute is parsed
Change-Id: Id8c21ac6da217d8f7bc350ff41022335bf1e0f1f
Change-Id: If1e53f9baad8995f26f9b885cfef6265040736bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155758
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx
index 31e5bdb..2297367 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -991,6 +991,27 @@ CPPUNIT_TEST_FIXTURE(Test, testNoneColor)
assertXPath(pDocument, "/primitive2D/transform/mask/polypolygonstroke/line", "width", "3");
}
CPPUNIT_TEST_FIXTURE(Test, testTdf117920)
{
Primitive2DSequence aSequence = parseSvg(u"/svgio/qa/cppunit/data/tdf117920.svg");
CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(aSequence.getLength()));
drawinglayer::Primitive2dXmlDump dumper;
xmlDocUniquePtr pDocument = dumper.dumpAndParse(Primitive2DContainer(aSequence));
CPPUNIT_ASSERT (pDocument);
assertXPath(pDocument, "/primitive2D/transform/transform", "xy11", "1");
assertXPath(pDocument, "/primitive2D/transform/transform", "xy12", "0");
assertXPath(pDocument, "/primitive2D/transform/transform", "xy13", "-18");
assertXPath(pDocument, "/primitive2D/transform/transform", "xy21", "0");
assertXPath(pDocument, "/primitive2D/transform/transform", "xy22", "1");
assertXPath(pDocument, "/primitive2D/transform/transform", "xy23", "-6");
assertXPath(pDocument, "/primitive2D/transform/transform", "xy31", "0");
assertXPath(pDocument, "/primitive2D/transform/transform", "xy32", "0");
assertXPath(pDocument, "/primitive2D/transform/transform", "xy33", "1");
}
CPPUNIT_TEST_FIXTURE(Test, testTdf97936)
{
// check that both rectangles are rendered in the viewBox
diff --git a/svgio/qa/cppunit/data/tdf117920.svg b/svgio/qa/cppunit/data/tdf117920.svg
new file mode 100644
index 0000000..487e0f6
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf117920.svg
@@ -0,0 +1,7 @@
<svg width="100%" height="100%" viewBox="0 0 100 100"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<switch transform="translate(-18,-6)">
<rect width="13" height="13" x="18" y="6" />
</switch>
</svg>
diff --git a/svgio/source/svgreader/svgdocumenthandler.cxx b/svgio/source/svgreader/svgdocumenthandler.cxx
index 0b66a4b..9c8ab88 100644
--- a/svgio/source/svgreader/svgdocumenthandler.cxx
+++ b/svgio/source/svgreader/svgdocumenthandler.cxx
@@ -199,6 +199,7 @@ namespace
mpTarget->parseAttributes(xAttribs);
break;
}
case SVGToken::Switch: //TODO: Support switch element
case SVGToken::Defs:
case SVGToken::G:
{
@@ -442,12 +443,6 @@ namespace
break;
}
case SVGToken::Switch:
{
//TODO: Support switch element
break;
}
default:
{
mpTarget = new SvgNode(SVGToken::Unknown, maDocument, mpTarget);