From 86cd3af48f8c00300d9826f3b7364e8447adb34e Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Tue, 28 Apr 2020 15:02:08 +0200 Subject: xmloff: ODF export: produce office:version="1.3" Change-Id: I422743c6eacf112046141e017d42d78165c36cf2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93089 Tested-by: Jenkins Reviewed-by: Michael Stahl --- include/xmloff/xmlexp.hxx | 3 +++ xmloff/source/core/xmlexp.cxx | 34 ++++++++++++++++++------------ xmloff/source/meta/MetaExportComponent.cxx | 13 +----------- 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/include/xmloff/xmlexp.hxx b/include/xmloff/xmlexp.hxx index 75595d35ea29..58ff24299cec 100644 --- a/include/xmloff/xmlexp.hxx +++ b/include/xmloff/xmlexp.hxx @@ -531,6 +531,9 @@ public: css::uno::Reference< css::embed::XStorage > const & GetTargetStorage() const; + /// returns value of ODF version attribute + char const* GetODFVersionAttributeValue() const; + /// returns the currently configured default version for odf export SvtSaveOptions::ODFDefaultVersion getDefaultVersion() const; diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx index b22b7b58b5c4..a9e49a5a8e34 100644 --- a/xmloff/source/core/xmlexp.cxx +++ b/xmloff/source/core/xmlexp.cxx @@ -107,8 +107,6 @@ using namespace ::com::sun::star::xml::sax; using namespace ::com::sun::star::io; using namespace ::xmloff::token; -char const sXML_1_2[] = "1.2"; - #define XML_MODEL_SERVICE_WRITER "com.sun.star.text.TextDocument" #define XML_MODEL_SERVICE_CALC "com.sun.star.sheet.SpreadsheetDocument" #define XML_MODEL_SERVICE_DRAW "com.sun.star.drawing.DrawingDocument" @@ -1229,6 +1227,25 @@ void SvXMLExport::addChaffWhenEncryptedStorage() } } +auto SvXMLExport::GetODFVersionAttributeValue() const -> char const* +{ + char const* pVersion(nullptr); + switch (getSaneDefaultVersion()) + { + case SvtSaveOptions::ODFSVER_013_EXTENDED: [[fallthrough]]; + case SvtSaveOptions::ODFSVER_013: pVersion = "1.3"; break; + case SvtSaveOptions::ODFSVER_012_EXTENDED: [[fallthrough]]; + case SvtSaveOptions::ODFSVER_012_EXT_COMPAT: [[fallthrough]]; + case SvtSaveOptions::ODFSVER_012: pVersion = "1.2"; break; + case SvtSaveOptions::ODFSVER_011: pVersion = "1.1"; break; + case SvtSaveOptions::ODFSVER_010: break; + + default: + assert(!"xmloff::SvXMLExport::exportDoc(), unexpected odf default version!"); + } + return pVersion; +} + ErrCode SvXMLExport::exportDoc( enum ::xmloff::token::XMLTokenEnum eClass ) { bool bOwnGraphicResolver = false; @@ -1323,18 +1340,7 @@ ErrCode SvXMLExport::exportDoc( enum ::xmloff::token::XMLTokenEnum eClass ) } // office:version = ... - const char* pVersion = nullptr; - switch (getDefaultVersion()) - { - case SvtSaveOptions::ODFVER_LATEST: pVersion = sXML_1_2; break; - case SvtSaveOptions::ODFVER_012_EXT_COMPAT: pVersion = sXML_1_2; break; - case SvtSaveOptions::ODFVER_012: pVersion = sXML_1_2; break; - case SvtSaveOptions::ODFVER_011: pVersion = "1.1"; break; - case SvtSaveOptions::ODFVER_010: break; - - default: - SAL_WARN("xmloff.core", "xmloff::SvXMLExport::exportDoc(), unexpected odf default version!"); - } + const char*const pVersion = GetODFVersionAttributeValue(); if (pVersion) { diff --git a/xmloff/source/meta/MetaExportComponent.cxx b/xmloff/source/meta/MetaExportComponent.cxx index 44620578f1c7..61b6e9a85629 100644 --- a/xmloff/source/meta/MetaExportComponent.cxx +++ b/xmloff/source/meta/MetaExportComponent.cxx @@ -134,18 +134,7 @@ ErrCode XMLMetaExportComponent::exportDoc( enum XMLTokenEnum ) nPos = GetNamespaceMap().GetNextKey( nPos ); } - const char* pVersion = nullptr; - switch( getDefaultVersion() ) - { - case SvtSaveOptions::ODFVER_LATEST: pVersion = "1.2"; break; - case SvtSaveOptions::ODFVER_012_EXT_COMPAT: pVersion = "1.2"; break; - case SvtSaveOptions::ODFVER_012: pVersion = "1.2"; break; - case SvtSaveOptions::ODFVER_011: pVersion = "1.1"; break; - case SvtSaveOptions::ODFVER_010: break; - - default: - OSL_FAIL("xmloff::XMLMetaExportComponent::exportDoc(), unexpected odf default version!"); - } + const char*const pVersion = GetODFVersionAttributeValue(); if( pVersion ) AddAttribute( XML_NAMESPACE_OFFICE, XML_VERSION, -- cgit