svgio/qa/cppunit/SvgImportTest.cxx | 9 +++++++++ svgio/qa/cppunit/data/transparentColor.svg | 3 +++ svgio/source/svgreader/svgtools.cxx | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-)
New commits: commit 6f71c77d1d5e1b5760915ce94e252b250da835d3 Author: Xisco Fauli <[email protected]> AuthorDate: Sat Jun 21 15:23:34 2025 +0200 Commit: Adolfo Jayme Barrientos <[email protected]> CommitDate: Wed Jun 25 09:01:55 2025 +0200 tdf#167147: Support transparent fill color Change-Id: I5a38a52f2720f58bc2762d328fb6a5e4090c6dde Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186780 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 42e566654aa926caf51457b78a3b0dbb81b2f6a2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186782 Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx index 49465dc4db03..70be705d4545 100644 --- a/svgio/qa/cppunit/SvgImportTest.cxx +++ b/svgio/qa/cppunit/SvgImportTest.cxx @@ -995,6 +995,15 @@ CPPUNIT_TEST_FIXTURE(Test, testNoneColor) assertXPath(pDocument, "/primitive2D/transform/mask/polypolygonstroke/line", "width", u"3"); } +CPPUNIT_TEST_FIXTURE(Test, testTransparentColor) +{ + xmlDocUniquePtr pDocument = dumpAndParseSvg(u"/svgio/qa/cppunit/data/transparentColor.svg"); + + //No polypolygoncolor exists + assertXPath(pDocument, "/primitive2D/transform/mask/polypolygoncolor", 0); + assertXPath(pDocument, "/primitive2D/transform/mask/polypolygonstroke/line", "color", u"#000000"); + assertXPath(pDocument, "/primitive2D/transform/mask/polypolygonstroke/line", "width", u"3"); +} CPPUNIT_TEST_FIXTURE(Test, testTdf117920) { xmlDocUniquePtr pDocument = dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf117920.svg"); diff --git a/svgio/qa/cppunit/data/transparentColor.svg b/svgio/qa/cppunit/data/transparentColor.svg new file mode 100644 index 000000000000..ffd0fadb973c --- /dev/null +++ b/svgio/qa/cppunit/data/transparentColor.svg @@ -0,0 +1,3 @@ +<svg width="400" height="110"> + <rect fill="red" width="300" height="100" style="fill:transparent;stroke-width:3;stroke:rgb(0,0,0)" /> +</svg> diff --git a/svgio/source/svgreader/svgtools.cxx b/svgio/source/svgreader/svgtools.cxx index 3918660fb7bd..8ed821c1a0ad 100644 --- a/svgio/source/svgreader/svgtools.cxx +++ b/svgio/source/svgreader/svgtools.cxx @@ -1148,7 +1148,8 @@ namespace svgio::svgreader } else { - if(o3tl::equalsIgnoreAsciiCase(o3tl::trim(rCandidate), u"none")) + if(o3tl::equalsIgnoreAsciiCase(o3tl::trim(rCandidate), u"none") || + o3tl::equalsIgnoreAsciiCase(o3tl::trim(rCandidate), u"transparent")) { rSvgPaint = SvgPaint(aColor, true, false, false); return true;
