diff options
author | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2013-02-11 15:24:23 +0100 |
---|---|---|
committer | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2013-02-11 15:39:47 +0100 |
commit | 7b384313399ee8199cd7241527c3dbc1d50694a2 (patch) | |
tree | ff26e62a4d849c8ac0565c2b79084f062f50bac1 | |
parent | 049cf7c753339f761cd49b83744abab6aa820ea4 (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.
-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 94ba00bd2c4f..d85ca00f72f5 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> @@ -639,8 +640,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& ) |