summaryrefslogtreecommitdiff
path: root/svgio
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2023-08-17 09:24:18 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2023-08-18 01:09:04 +0200
commit8b9643960117612b7e1cae1ed8325c2630232d0f (patch)
treeded1b1ac626a625a4c143fa23f211bb4c3c7acf8 /svgio
parente79f0f65ab06baafc7e8a6aeb1d89ca748087b24 (diff)
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>
Diffstat (limited to 'svgio')
-rw-r--r--svgio/qa/cppunit/SvgImportTest.cxx21
-rw-r--r--svgio/qa/cppunit/data/tdf117920.svg7
-rw-r--r--svgio/source/svgreader/svgdocumenthandler.cxx7
3 files changed, 29 insertions, 6 deletions
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx
index 31e5bdb3ef13..2297367ee778 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 000000000000..487e0f6cb925
--- /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 0b66a4bb44da..9c8ab88f2f62 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);