666f252457
Extend SVGTextWriter::setTextPosition(), so when it looks for a text action in a metafile, it recurses into transparency groups, so the text is not lost. Extract part of SVGActionWriter::ImplWriteMask() into a new StartMask(), so we can detect the case when the transparency group has a constant alpha, i.e. no complex mask is needed, just an opacity value. When looking for text, remember if we saw a request for text opacity and make the transparency group writing in SVGActionWriter::ImplWriteMask() conditional to avoid duplication. This is needed because once we're inside <text>, we don't want to write an invalid transparency group via <g>, rather we want a fill-opacity on the existing <tspan>. With this, the SVG export is on par with PDF export for semi-transparent shape text. Change-Id: If43b0ab3446015299acc4b37590358867c5fac5f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98937 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins |
||
---|---|---|
.. | ||
inc | ||
qa | ||
source | ||
uiconfig/ui | ||
AllLangMoTarget_flt.mk | ||
Configuration_filter.mk | ||
CppunitTest_filter_dialogs_test.mk | ||
CppunitTest_filter_dxf_test.mk | ||
CppunitTest_filter_eps_test.mk | ||
CppunitTest_filter_met_test.mk | ||
CppunitTest_filter_msfilter.mk | ||
CppunitTest_filter_pcd_test.mk | ||
CppunitTest_filter_pcx_test.mk | ||
CppunitTest_filter_pict_test.mk | ||
CppunitTest_filter_ppm_test.mk | ||
CppunitTest_filter_priority.mk | ||
CppunitTest_filter_psd_test.mk | ||
CppunitTest_filter_ras_test.mk | ||
CppunitTest_filter_svg.mk | ||
CppunitTest_filter_textfilterdetect.mk | ||
CppunitTest_filter_tga_test.mk | ||
CppunitTest_filter_tiff_test.mk | ||
CppunitTest_filter_xslt.mk | ||
CustomTarget_svg.mk | ||
IwyuFilter_filter.yaml | ||
JunitTest_filter_complex.mk | ||
Library_filterconfig.mk | ||
Library_gie.mk | ||
Library_graphicfilter.mk | ||
Library_icg.mk | ||
Library_msfilter.mk | ||
Library_odfflatxml.mk | ||
Library_pdffilter.mk | ||
Library_storagefd.mk | ||
Library_svgfilter.mk | ||
Library_t602filter.mk | ||
Library_textfd.mk | ||
Library_xmlfa.mk | ||
Library_xmlfd.mk | ||
Library_xsltdlg.mk | ||
Library_xsltfilter.mk | ||
Makefile | ||
Module_filter.mk | ||
Package_docbook.mk | ||
Package_xhtml.mk | ||
Package_xslt.mk | ||
README | ||
UIConfig_filter.mk |
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.