From ef2e609b9c3c4b568e1d04360f81b5f614fa6bd8 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Thu, 28 May 2020 17:17:26 +0200 Subject: tdf#103602 xmloff: ODF export of page style: don't export draw:fill ... attributes on page-layout-properties in strict ODF. Change-Id: Id7c440bf86f78f5f8bb95b9463874787372d5ae8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95053 Tested-by: Jenkins Reviewed-by: Michael Stahl --- xmloff/inc/XMLBackgroundImageExport.hxx | 4 ++-- xmloff/source/style/PageMasterExportPropMapper.cxx | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'xmloff') diff --git a/xmloff/inc/XMLBackgroundImageExport.hxx b/xmloff/inc/XMLBackgroundImageExport.hxx index a186399df7cd..89a8b8af206d 100644 --- a/xmloff/inc/XMLBackgroundImageExport.hxx +++ b/xmloff/inc/XMLBackgroundImageExport.hxx @@ -33,10 +33,10 @@ class XMLBackgroundImageExport { SvXMLExport& rExport; - SvXMLExport& GetExport() { return rExport; } - public: + SvXMLExport& GetExport() const { return rExport; } + XMLBackgroundImageExport( SvXMLExport& rExport ); ~XMLBackgroundImageExport(); diff --git a/xmloff/source/style/PageMasterExportPropMapper.cxx b/xmloff/source/style/PageMasterExportPropMapper.cxx index d4c6abbc356f..22078b2376a1 100644 --- a/xmloff/source/style/PageMasterExportPropMapper.cxx +++ b/xmloff/source/style/PageMasterExportPropMapper.cxx @@ -20,6 +20,7 @@ #include "PageMasterExportPropMapper.hxx" #include #include +#include #include #include #include @@ -335,6 +336,9 @@ void XMLPageMasterExportPropMapper::ContextFilter( rtl::Reference < XMLPropertySetMapper > aPropMapper(getPropertySetMapper()); + // distinguish 2 cases: drawing-page export has CTF_PM_FILL, page-layout-properties export does not + bool const isDrawingPageExport(aPropMapper->FindEntryIndex(CTF_PM_FILL) != -1); + for( auto& rProp : rPropState ) { XMLPropertyState *pProp = &rProp; @@ -343,6 +347,17 @@ void XMLPageMasterExportPropMapper::ContextFilter( sal_Int16 nSimpleId = nContextId & (~CTF_PM_FLAGMASK | XML_PM_CTF_START); sal_Int16 nPrintId = nContextId & CTF_PM_PRINTMASK; + + // tdf#103602 don't export draw:fill attributes on page-layout-properteis in strict ODF + if (!isDrawingPageExport + && aPropMapper->GetEntryAPIName(rProp.mnIndex).startsWith("Fill") + && ((aBackgroundImageExport.GetExport().getSaneDefaultVersion() + & SvtSaveOptions::ODFSVER_EXTENDED) == 0)) + { + lcl_RemoveState(&rProp); + continue; + } + XMLPropertyStateBuffer* pBuffer; switch( nFlag ) { -- cgit