diff options
author | Marco Cecchetti <marco.cecchetti@collabora.com> | 2021-02-15 17:57:00 +0100 |
---|---|---|
committer | Marco Cecchetti <marco.cecchetti@collabora.com> | 2021-02-17 13:19:34 +0100 |
commit | 0cfd16cbb8e0ad712caf1fc05fba4797749ba106 (patch) | |
tree | a55fed211eed7c8eb0ea1549f3e75bd917eb7ae3 | |
parent | f7487b871b7ee13f98cd5821a09c08e599a879e6 (diff) |
filter: svg: text field: placeholder localization issue
The text content for a placeholder is localized,
so in case a French locale is used, the placeholder
for a PageNumber text field is <numéro> instead of
<number>.
Change-Id: If1d31fee98d044775995b5b80567296f78d2a6c8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110944
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Ashod Nakashian <ash@collabora.com>
Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com>
-rw-r--r-- | filter/source/svg/svgwriter.cxx | 16 | ||||
-rw-r--r-- | filter/source/svg/svgwriter.hxx | 1 |
2 files changed, 16 insertions, 1 deletions
diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx index 1d7b62153d94..39bd446a31b0 100644 --- a/filter/source/svg/svgwriter.cxx +++ b/filter/source/svg/svgwriter.cxx @@ -1111,6 +1111,7 @@ bool SVGTextWriter::nextTextPortion() #endif msPageCount = ""; msDateTimeType = ""; + msTextFieldType = ""; if( xPortionTextRange.is() ) { #if OSL_DEBUG_LEVEL > 0 @@ -1154,6 +1155,7 @@ bool SVGTextWriter::nextTextPortion() ++pNames; } + msTextFieldType = sFieldName; #if OSL_DEBUG_LEVEL > 0 sInfo += "text field type: " + sFieldName + "; content: " + xTextField->getPresentation( /* show command: */ false ) + "; "; #endif @@ -1688,7 +1690,6 @@ void SVGTextWriter::implWriteTextPortion( const Point& rPos, if( mbIsPlaceholderShape ) { mrExport.AddAttribute( XML_NAMESPACE_NONE, "class", "PlaceholderText" ); - mbIsPlaceholderShape = false; } addFontAttributes( /* isTexTContainer: */ false ); @@ -1721,6 +1722,19 @@ void SVGTextWriter::implWriteTextPortion( const Point& rPos, SvXMLElementExport aSVGTspanElem( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS ); mrExport.GetDocHandler()->characters( msDateTimeType ); } + else if( mbIsPlaceholderShape && rText.startsWith("<") && rText.endsWith(">") ) + { + OUString sContent; + if( msTextFieldType == "PageNumber" ) + sContent = "<number>"; + else if( msTextFieldType == "PageName" ) + sContent = "<slide-name>"; + else + sContent = rText; + + SvXMLElementExport aSVGTspanElem( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS ); + mrExport.GetDocHandler()->characters( sContent ); + } else { SvXMLElementExport aSVGTspanElem( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS ); diff --git a/filter/source/svg/svgwriter.hxx b/filter/source/svg/svgwriter.hxx index ba8037d1ea91..d7458d053120 100644 --- a/filter/source/svg/svgwriter.hxx +++ b/filter/source/svg/svgwriter.hxx @@ -252,6 +252,7 @@ class SVGTextWriter final OUString msHyperlinkIdList; OUString msPageCount; OUString msDateTimeType; + OUString msTextFieldType; bool mbIsPlaceholderShape; static const bool mbIWS = false; vcl::Font maCurrentFont; |