diff options
author | Michael Stahl <Michael.Stahl@cib.de> | 2020-04-28 15:02:08 +0200 |
---|---|---|
committer | Michael Stahl <michael.stahl@cib.de> | 2020-05-15 17:52:10 +0200 |
commit | 86cd3af48f8c00300d9826f3b7364e8447adb34e (patch) | |
tree | 92696a2977ccb8bf6e077367d0f932181e5fd8d3 | |
parent | 5eda583443cd0ec323e925395ea734c20fdbcf13 (diff) |
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 <michael.stahl@cib.de>
-rw-r--r-- | include/xmloff/xmlexp.hxx | 3 | ||||
-rw-r--r-- | xmloff/source/core/xmlexp.cxx | 34 | ||||
-rw-r--r-- | 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, |