svgio/qa/cppunit/SvgImportTest.cxx | 21 ++++++++++++++++++--- svgio/qa/cppunit/data/tdf159594.svg | 7 +++++++ svgio/source/svgreader/svgsymbolnode.cxx | 8 +++----- 3 files changed, 28 insertions(+), 8 deletions(-)
New commits: commit acbf0d017b774e9779503f1aef943c6d7f88ec39 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Tue Feb 6 12:50:59 2024 +0100 Commit: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> CommitDate: Thu Feb 15 21:34:05 2024 +0100 tdf#159601, tdf#159594: reuse target for symbols' children Regression from e7186b49a9a0b24ddc3b1c5384b5d9facb03518c "tdf#158445: support viewBox in symbol elements" Change-Id: Ie2198c47149def17fa3cb612046b61bf32e873bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163046 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> (cherry picked from commit 8b7dbf40a06bc900562887889c17606ae5ef0587) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163015 Tested-by: Xisco Fauli <xiscofa...@libreoffice.org> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163127 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> (cherry picked from commit 81454c1c3a98860a82fa54fd3a417d3bcb72f8ae) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163276 Tested-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx index b485aa16e38c..661c1520a457 100644 --- a/svgio/qa/cppunit/SvgImportTest.cxx +++ b/svgio/qa/cppunit/SvgImportTest.cxx @@ -1597,9 +1597,24 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf158445) CPPUNIT_ASSERT (pDocument); - assertXPath(pDocument, "/primitive2D/transform/transform/transform/transform/polypolygoncolor", "color", "#000000"); - assertXPath(pDocument, "/primitive2D/transform/transform/transform/transform/polypolygoncolor/polypolygon", "height", "8.052"); - assertXPath(pDocument, "/primitive2D/transform/transform/transform/transform/polypolygoncolor/polypolygon", "width", "5.328"); + assertXPath(pDocument, "/primitive2D/transform/mask/transform/transform/transform/polypolygoncolor", "color", "#000000"); + assertXPath(pDocument, "/primitive2D/transform/mask/transform/transform/transform/polypolygoncolor/polypolygon", "height", "8.052"); + assertXPath(pDocument, "/primitive2D/transform/mask/transform/transform/transform/polypolygoncolor/polypolygon", "width", "5.328"); +} + +CPPUNIT_TEST_FIXTURE(Test, testTdf159594) +{ + Primitive2DSequence aSequence = parseSvg(u"/svgio/qa/cppunit/data/tdf159594.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/polypolygoncolor", "color", "#000000"); + assertXPath(pDocument, "/primitive2D/transform/transform/polypolygoncolor/polypolygon", "height", "11.671875"); + assertXPath(pDocument, "/primitive2D/transform/transform/polypolygoncolor/polypolygon", "width", "7.5"); } CPPUNIT_TEST_FIXTURE(Test, testTdf97663) diff --git a/svgio/qa/cppunit/data/tdf159594.svg b/svgio/qa/cppunit/data/tdf159594.svg new file mode 100644 index 000000000000..c2b470ec0fdc --- /dev/null +++ b/svgio/qa/cppunit/data/tdf159594.svg @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100" version="1.1"> +<symbol overflow="visible" id="glyph"> +<path style="stroke:none;" d="M 1.3125 -11.671875 L 8.8125 -11.671875 L 8.8125 -11 L 4.578125 0 L 2.9375 0 L 6.921875 -10.34375 L 1.3125 -10.34375 Z M 1.3125 -11.671875 "/> +</symbol> +<use xlink:href="#glyph" x="40" y="30"/> +</svg> diff --git a/svgio/source/svgreader/svgsymbolnode.cxx b/svgio/source/svgreader/svgsymbolnode.cxx index b5125357f61c..222880d1cba2 100644 --- a/svgio/source/svgreader/svgsymbolnode.cxx +++ b/svgio/source/svgreader/svgsymbolnode.cxx @@ -126,12 +126,10 @@ namespace svgio::svgreader void SvgSymbolNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer& rTarget, bool bReferenced) const { - drawinglayer::primitive2d::Primitive2DContainer aNewTarget; - // decompose children - SvgNode::decomposeSvgNode(aNewTarget, bReferenced); + SvgNode::decomposeSvgNode(rTarget, bReferenced); - if(aNewTarget.empty()) + if (rTarget.empty()) return; if(getViewBox()) @@ -157,7 +155,7 @@ namespace svgio::svgreader const drawinglayer::primitive2d::Primitive2DReference xRef( new drawinglayer::primitive2d::TransformPrimitive2D( aEmbeddingTransform, - std::move(aNewTarget))); + drawinglayer::primitive2d::Primitive2DContainer(rTarget))); rTarget.push_back(xRef); }