From b1922eecb55b233de3e6abaaa644fe9f313cf0f1 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Thu, 27 Aug 2015 15:14:20 +0200 Subject: xmloff: ODF export: actually ODF 1.2 does not allow graphic-properties ... in a style with family "paragraph", as detected by a --with-export-validation build due to the unit test added yesterday. So use the loext namespace for the style:graphic-properties element, and also omit it entirely (and rely on the style:paragraph-properties attributes fo:background-*) if the ODF version is set to 1.2 or 1.1. Also adapt a previous check that was missing the "drawing-page" style family, where the style:graphic-properties is allowed (commit 9746dc9ad62e7f3a39961733f2ac204e90289034) (regression from 7d9bb549d498d6beed2c4050c402d09643febdfa) Change-Id: Iedd66483f63020328bd61e1c1e19c62787b8ff6b --- xmloff/source/style/impastpl.cxx | 1 + xmloff/source/style/styleexp.cxx | 8 +++++++- xmloff/source/style/xmlexppr.cxx | 23 ++++++++++++++++------- 3 files changed, 24 insertions(+), 8 deletions(-) (limited to 'xmloff/source') diff --git a/xmloff/source/style/impastpl.cxx b/xmloff/source/style/impastpl.cxx index 7c98e3ed7c20..51221b355f8b 100644 --- a/xmloff/source/style/impastpl.cxx +++ b/xmloff/source/style/impastpl.cxx @@ -684,6 +684,7 @@ void SvXMLAutoStylePoolP_Impl::exportXML( GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_FAMILY, aStrFamilyName ); if(aStrFamilyName != "graphic" && + aStrFamilyName != "drawing-page" && aStrFamilyName != "presentation" && aStrFamilyName != "chart" ) bExtensionNamespace = true; diff --git a/xmloff/source/style/styleexp.cxx b/xmloff/source/style/styleexp.cxx index c6b62e886306..0ab12cce8c5e 100644 --- a/xmloff/source/style/styleexp.cxx +++ b/xmloff/source/style/styleexp.cxx @@ -316,8 +316,14 @@ bool XMLStyleExport::exportStyle( // ::std::vector< XMLPropertyState > xPropStates = rPropMapper->Filter( xPropSet, true ); + bool const bUseExtensionNamespaceForGraphicProperties( + rXMLFamily != "drawing-page" && + rXMLFamily != "graphic" && + rXMLFamily != "presentation" && + rXMLFamily != "chart"); rPropMapper->exportXML( GetExport(), xPropStates, - SvXmlExportFlags::IGN_WS ); + SvXmlExportFlags::IGN_WS, + bUseExtensionNamespaceForGraphicProperties ); rPropMapper->SetStyleName( OUString() ); diff --git a/xmloff/source/style/xmlexppr.cxx b/xmloff/source/style/xmlexppr.cxx index a7876d4fbe7b..04608346b7f9 100644 --- a/xmloff/source/style/xmlexppr.cxx +++ b/xmloff/source/style/xmlexppr.cxx @@ -749,16 +749,18 @@ void SvXMLExportPropertyMapper::exportXML( SvXMLAttributeList& rAttrList, void SvXMLExportPropertyMapper::exportXML( SvXMLExport& rExport, const ::std::vector< XMLPropertyState >& rProperties, - SvXmlExportFlags nFlags ) const + SvXmlExportFlags nFlags, + bool bUseExtensionNamespaceForGraphicProperties) const { - exportXML( rExport, rProperties, -1, -1, nFlags ); + exportXML(rExport, rProperties, -1, -1, nFlags, bUseExtensionNamespaceForGraphicProperties); } + void SvXMLExportPropertyMapper::exportXML( SvXMLExport& rExport, const ::std::vector< XMLPropertyState >& rProperties, sal_Int32 nPropMapStartIdx, sal_Int32 nPropMapEndIdx, - SvXmlExportFlags nFlags, bool bExtensionNamespace ) const + SvXmlExportFlags nFlags, bool bUseExtensionNamespaceForGraphicProperties) const { sal_uInt16 nPropTypeFlags = 0; for( sal_uInt16 i=0; i aIndexArray; _exportXML( nPropType, nPropTypeFlags, @@ -779,10 +792,6 @@ void SvXMLExportPropertyMapper::exportXML( (nFlags & SvXmlExportFlags::EMPTY) || !aIndexArray.empty() ) { - sal_uInt16 nNamespace = XML_NAMESPACE_STYLE; - if(bExtensionNamespace && aPropTokens[i].eToken == - xmloff::token::XML_GRAPHIC_PROPERTIES) - nNamespace = XML_NAMESPACE_LO_EXT; SvXMLElementExport aElem( rExport, nNamespace, aPropTokens[i].eToken, bool(nFlags & SvXmlExportFlags::IGN_WS), -- cgit