diff options
author | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2013-02-11 15:24:23 +0100 |
---|---|---|
committer | Tor Lillqvist <tml@iki.fi> | 2013-02-12 08:34:32 +0000 |
commit | df37dd7d3ce201d1ba5a0065c126db107ce18ead (patch) | |
tree | 416aaf5fcc7c7845a14069adb99d5d8be26d232c /sfx2 | |
parent | 8ca739d7b9acbc2fc9eff401ca850027f6e52b66 (diff) |
Fixed SfxDocTplService_Impl::setTitleForURL to keep all streams.
After commit 117fdb98, the setTitleForURL only wrote the meta.xml file
to the odf container, dropping all the other streams. Use storeToStorage
as in the old implementation to fix the problem.
Even though marginal, this problem is important for templates renaming.
Change-Id: Ia9b6abfc112f102e2bd2ae9d3080c4ed827200df
Reviewed-on: https://gerrit.libreoffice.org/2107
Reviewed-by: Tor Lillqvist <tml@iki.fi>
Tested-by: Tor Lillqvist <tml@iki.fi>
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/doc/doctemplates.cxx | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/sfx2/source/doc/doctemplates.cxx b/sfx2/source/doc/doctemplates.cxx index 1313fee8aa03..9720fab35693 100644 --- a/sfx2/source/doc/doctemplates.cxx +++ b/sfx2/source/doc/doctemplates.cxx @@ -32,6 +32,7 @@ #include <comphelper/componentcontext.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/sequenceashashmap.hxx> +#include <comphelper/storagehelper.hxx> #include <comphelper/string.hxx> #include <com/sun/star/beans/PropertyAttribute.hpp> #include <com/sun/star/beans/XPropertySet.hpp> @@ -646,8 +647,18 @@ sal_Bool SfxDocTplService_Impl::setTitleForURL( const OUString& rURL, const OUSt try { m_xDocProps->loadFromMedium(rURL, Sequence<PropertyValue>()); - m_xDocProps->setTitle(aTitle ); - m_xDocProps->storeToMedium(rURL, Sequence<PropertyValue>()); + m_xDocProps->setTitle(aTitle); + + uno::Reference< embed::XStorage > xStorage = ::comphelper::OStorageHelper::GetStorageFromURL( + rURL, embed::ElementModes::READWRITE); + + uno::Sequence<beans::PropertyValue> medium(2); + medium[0].Name = ::rtl::OUString("DocumentBaseURL"); + medium[0].Value <<= rURL; + medium[1].Name = ::rtl::OUString("URL"); + medium[1].Value <<= rURL; + + m_xDocProps->storeToStorage(xStorage, medium); return true; } catch ( Exception& ) |