Open the bugdoc, try to export as SVG, results in an assertion failure in debug builds, the produced XML would not be well-formed. Commit 666f252457bdb4371d15380a0289e107b2dfbe84 (SVG export: fix lost semi-transparent text on shapes, 2020-07-17) added support for text opacity on shapes, but this assumes that the entire shape has the same opacity, while this shape has 3 paragraphs and only the middle one has an opacity set, at a text span level. Additionally, it's a bullet, so the text (for the bullet, has no transparency set) starts before the transparency metafile action would start. This means that the existing logic won't realize that opacity should be exported using the fill-opacity attribute instead of a <g> element. Fix the problem by checking for the isTextShapeStarted() case in SVGActionWriter::ImplWriteMask(): if we're already inside text, then we always want to map a transparency mask to the fill-opacity attribute instead of a <g> element. Leave the shape-level code at SVGTextWriter::setTextPosition() unchanged, that continues to deal with per-shape text opacity. Change-Id: I8cb0ca2e839fba911a75e1925cf79145f69af151 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172856 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
LibreOffice Filters
Filter registration and some simple filters (also descriptions).
Desperate splitting of code into small shared libraries for historical
reasons presumably (OS/2 and Windows 3.x). The libraries produced from
the code in each subdirectory of filter/source/graphicfilter are
graphic format import or export filters. But they don't have uniform
API. Some have either a GraphicImport or GraphicExport entry point,
and are loaded and used in a uniform fashion from code in
svtools/source/filter/filter.cxx. Others have different API and are
loaded from other places. For instance icgm has ImportCGM, and is
loaded and used by sd/source/filter/cgm/sdcgmfilter.cxx (!).
Svgreader is used for "File -> Open" and then to choose the svg file.
For "Insert -> Picture -> From File", see svgio/source/svgreader directory.
Filter Configuration
The filter configuration consists of two parts, the type definition in
filter/source/config/fragments/types/ and the actual filter definition
in filter/source/config/fragments/filters/.
Each file type e.g. text file should be represented by exactly one type definition. This type can then be referenced by several different filters, e.g. calc text, writer text.