sc/source/filter/xml/XMLTableMasterPageExport.cxx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)
New commits: commit 71081a2a79a7b5a1eefec60fc687c533a95d190d Author: Eike Rathke <er...@redhat.com> AuthorDate: Wed Nov 2 00:12:30 2022 +0100 Commit: Eike Rathke <er...@redhat.com> CommitDate: Wed Nov 2 01:07:41 2022 +0100 Resolves: tdf#147141 style:header-first/footer-first only ODF 1.3|1.2-extended For ODF 1.2-extended write with loext namespace, for ODF 1.2 and earlier do not write them at all. LO versions <7.2.5 not having the fix for tdf#144940 need ODF 1.2 written (without header-first and footer-first) to not lose the header/footer. Change-Id: Id856459eac487ddd8ba0c6963db5d4e227d82093 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142127 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Jenkins diff --git a/sc/source/filter/xml/XMLTableMasterPageExport.cxx b/sc/source/filter/xml/XMLTableMasterPageExport.cxx index 59b29378ea16..61899e651e53 100644 --- a/sc/source/filter/xml/XMLTableMasterPageExport.cxx +++ b/sc/source/filter/xml/XMLTableMasterPageExport.cxx @@ -68,6 +68,17 @@ void XMLTableMasterPageExport::exportHeaderFooter(const css::uno::Reference < cs if( !xHeaderFooter.is() ) return; + sal_uInt16 nNameSpace = XML_NAMESPACE_STYLE; + if (aName == XML_HEADER_FIRST || aName == XML_FOOTER_FIRST) + { + // Since ODF 1.3 OFFICE-3789 or 1.2-extended. + auto const nVersion(GetExport().getSaneDefaultVersion()); + if (nVersion <= SvtSaveOptions::ODFSVER_012) + return; + if (nVersion < SvtSaveOptions::ODFSVER_013) + nNameSpace = XML_NAMESPACE_LO_EXT; + } + Reference < XText > xCenter(xHeaderFooter->getCenterText()); Reference < XText > xLeft(xHeaderFooter->getLeftText()); Reference < XText > xRight(xHeaderFooter->getRightText()); @@ -81,7 +92,7 @@ void XMLTableMasterPageExport::exportHeaderFooter(const css::uno::Reference < cs if( !bDisplay ) GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_DISPLAY, XML_FALSE ); - SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE, + SvXMLElementExport aElem( GetExport(), nNameSpace, aName, true, true ); if (!sCenter.isEmpty() && sLeft.isEmpty() && sRight.isEmpty()) exportHeaderFooterContent( xCenter, false, false );