summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/unotools/docinfohelper.hxx3
-rw-r--r--oox/source/core/xmlfilterbase.cxx5
-rw-r--r--sw/qa/extras/ooxmlexport/data/tdf89790.docxbin0 -> 4673 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport5.cxx7
-rw-r--r--unotools/source/config/docinfohelper.cxx50
5 files changed, 45 insertions, 20 deletions
diff --git a/include/unotools/docinfohelper.hxx b/include/unotools/docinfohelper.hxx
index ddc28b05279b..320b3b542d48 100644
--- a/include/unotools/docinfohelper.hxx
+++ b/include/unotools/docinfohelper.hxx
@@ -29,7 +29,8 @@ class UNOTOOLS_DLLPUBLIC DocInfoHelper
{
public:
static OUString GetGeneratorString();
-
+ static OUString GetApplicationString();
+ static OUString GetVersionString();
};
} // namespace utl
diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx
index 4ff011aa9161..772142b7bf4c 100644
--- a/oox/source/core/xmlfilterbase.cxx
+++ b/oox/source/core/xmlfilterbase.cxx
@@ -58,6 +58,7 @@
#include <tools/datetime.hxx>
#include <com/sun/star/util/Duration.hpp>
#include <sax/tools/converter.hxx>
+#include <unotools/configmgr.hxx>
using ::com::sun::star::xml::dom::DocumentBuilder;
using ::com::sun::star::xml::dom::XDocument;
@@ -692,9 +693,9 @@ writeAppProperties( XmlFilterBase& rSelf, Reference< XDocumentProperties > xProp
writeElement( pAppProps, XML_HyperlinksChanged, "hyperlinks changed" );
writeElement( pAppProps, XML_DigSig, "digital signature" );
#endif /* def OOXTODO */
- writeElement( pAppProps, XML_Application, utl::DocInfoHelper::GetGeneratorString() );
+ writeElement( pAppProps, XML_Application, utl::ConfigManager::getProductName() );
+ writeElement( pAppProps, XML_AppVersion, utl::DocInfoHelper::GetVersionString() );
#ifdef OOXTODO
- writeElement( pAppProps, XML_AppVersion, "app version" );
writeElement( pAppProps, XML_DocSecurity, "doc security" );
#endif /* def OOXTODO */
diff --git a/sw/qa/extras/ooxmlexport/data/tdf89790.docx b/sw/qa/extras/ooxmlexport/data/tdf89790.docx
new file mode 100644
index 000000000000..180951e854e9
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/tdf89790.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx
index 6964c90a07aa..89a1502ba6ec 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx
@@ -795,6 +795,13 @@ DECLARE_OOXMLEXPORT_TEST(testSectionHeader, "sectionprot.odt")
}
}
+DECLARE_OOXMLEXPORT_TEST(testTdf89790, "tdf89790.docx")
+{
+ if (xmlDocPtr pXmlDoc = parseExport("docProps/app.xml"))
+
+ assertXPath(pXmlDoc, "/extended-properties:Properties/extended-properties:AppVersion");
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/unotools/source/config/docinfohelper.cxx b/unotools/source/config/docinfohelper.cxx
index b5d0cf9aa7b4..0ea143cf89ec 100644
--- a/unotools/source/config/docinfohelper.cxx
+++ b/unotools/source/config/docinfohelper.cxx
@@ -41,30 +41,45 @@ OUString DocInfoHelper::GetGeneratorString()
{
aResult.append( aValue.replace( ' ', '_' ) );
aResult.append( '/' );
+ }
+
+ aValue = GetVersionString();
+ if ( !aValue.isEmpty() )
+ {
+ aResult.append( aValue );
+ }
+
+ return aResult.makeStringAndClear();
+}
+
+
+OUString DocInfoHelper::GetVersionString()
+{
+ OUStringBuffer aResult;
- aValue = utl::ConfigManager::getProductVersion();
+ // version is <product_versions>_<product_extension>$<platform>
+ OUString aValue( utl::ConfigManager::getProductVersion() );
+ if ( !aValue.isEmpty() )
+ {
+ aResult.append( aValue.replace( ' ', '_' ) );
+
+ aValue = utl::ConfigManager::getProductExtension();
if ( !aValue.isEmpty() )
{
aResult.append( aValue.replace( ' ', '_' ) );
-
- aValue = utl::ConfigManager::getProductExtension();
- if ( !aValue.isEmpty() )
- {
- aResult.append( aValue.replace( ' ', '_' ) );
- }
}
-
- OUString os( "$_OS" );
- OUString arch( "$_ARCH" );
- ::rtl::Bootstrap::expandMacros(os);
- ::rtl::Bootstrap::expandMacros(arch);
- aResult.append( '$' );
- aResult.append( os );
- aResult.append( '_' );
- aResult.append( arch );
- aResult.append( ' ' );
}
+ OUString os( "$_OS" );
+ OUString arch( "$_ARCH" );
+ ::rtl::Bootstrap::expandMacros(os);
+ ::rtl::Bootstrap::expandMacros(arch);
+ aResult.append( '$' );
+ aResult.append( os );
+ aResult.append( '_' );
+ aResult.append( arch );
+ aResult.append( ' ' );
+
// second product: LibreOffice_project/<build_information>
// build_information has '(' and '[' encoded as '$', ')' and ']' ignored
// and ':' replaced by '-'
@@ -97,6 +112,7 @@ OUString DocInfoHelper::GetGeneratorString()
return aResult.makeStringAndClear();
}
+
} // end of namespace utl
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */