include/xmloff/xmlexp.hxx                  |    3 ++
 xmloff/source/core/xmlexp.cxx              |   34 +++++++++++++++++------------
 xmloff/source/meta/MetaExportComponent.cxx |   13 -----------
 3 files changed, 24 insertions(+), 26 deletions(-)

New commits:
commit 86cd3af48f8c00300d9826f3b7364e8447adb34e
Author:     Michael Stahl <michael.st...@cib.de>
AuthorDate: Tue Apr 28 15:02:08 2020 +0200
Commit:     Michael Stahl <michael.st...@cib.de>
CommitDate: Fri May 15 17:52:10 2020 +0200

    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.st...@cib.de>

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,
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to