Kaydet (Commit) 480ca743 authored tarafından Radu Ioan's avatar Radu Ioan Kaydeden (comit) Miklos Vajna

tdf#89790 - DOCX: saving LO version number in correct tag in app.xml

Converted existing method that provides application name and version in two functions

Change-Id: I93b70da7c78ee5db3d6eb710a2a2a9f4b7b4fb86
Reviewed-on: https://gerrit.libreoffice.org/15151Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.co.uk>
üst 861a86df
...@@ -29,7 +29,8 @@ class UNOTOOLS_DLLPUBLIC DocInfoHelper ...@@ -29,7 +29,8 @@ class UNOTOOLS_DLLPUBLIC DocInfoHelper
{ {
public: public:
static OUString GetGeneratorString(); static OUString GetGeneratorString();
static OUString GetApplicationString();
static OUString GetVersionString();
}; };
} // namespace utl } // namespace utl
......
...@@ -58,6 +58,7 @@ ...@@ -58,6 +58,7 @@
#include <tools/datetime.hxx> #include <tools/datetime.hxx>
#include <com/sun/star/util/Duration.hpp> #include <com/sun/star/util/Duration.hpp>
#include <sax/tools/converter.hxx> #include <sax/tools/converter.hxx>
#include <unotools/configmgr.hxx>
using ::com::sun::star::xml::dom::DocumentBuilder; using ::com::sun::star::xml::dom::DocumentBuilder;
using ::com::sun::star::xml::dom::XDocument; using ::com::sun::star::xml::dom::XDocument;
...@@ -692,9 +693,9 @@ writeAppProperties( XmlFilterBase& rSelf, Reference< XDocumentProperties > xProp ...@@ -692,9 +693,9 @@ writeAppProperties( XmlFilterBase& rSelf, Reference< XDocumentProperties > xProp
writeElement( pAppProps, XML_HyperlinksChanged, "hyperlinks changed" ); writeElement( pAppProps, XML_HyperlinksChanged, "hyperlinks changed" );
writeElement( pAppProps, XML_DigSig, "digital signature" ); writeElement( pAppProps, XML_DigSig, "digital signature" );
#endif /* def OOXTODO */ #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 #ifdef OOXTODO
writeElement( pAppProps, XML_AppVersion, "app version" );
writeElement( pAppProps, XML_DocSecurity, "doc security" ); writeElement( pAppProps, XML_DocSecurity, "doc security" );
#endif /* def OOXTODO */ #endif /* def OOXTODO */
......
...@@ -795,6 +795,13 @@ DECLARE_OOXMLEXPORT_TEST(testSectionHeader, "sectionprot.odt") ...@@ -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(); CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -41,30 +41,45 @@ OUString DocInfoHelper::GetGeneratorString() ...@@ -41,30 +41,45 @@ OUString DocInfoHelper::GetGeneratorString()
{ {
aResult.append( aValue.replace( ' ', '_' ) ); aResult.append( aValue.replace( ' ', '_' ) );
aResult.append( '/' ); 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() ) if ( !aValue.isEmpty() )
{ {
aResult.append( aValue.replace( ' ', '_' ) ); 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> // second product: LibreOffice_project/<build_information>
// build_information has '(' and '[' encoded as '$', ')' and ']' ignored // build_information has '(' and '[' encoded as '$', ')' and ']' ignored
// and ':' replaced by '-' // and ':' replaced by '-'
...@@ -97,6 +112,7 @@ OUString DocInfoHelper::GetGeneratorString() ...@@ -97,6 +112,7 @@ OUString DocInfoHelper::GetGeneratorString()
return aResult.makeStringAndClear(); return aResult.makeStringAndClear();
} }
} // end of namespace utl } // end of namespace utl
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment