summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorCédric Bosdonnat <cedric.bosdonnat@free.fr>2013-02-11 15:24:23 +0100
committerCédric Bosdonnat <cedric.bosdonnat@free.fr>2013-02-11 15:39:47 +0100
commit7b384313399ee8199cd7241527c3dbc1d50694a2 (patch)
treeff26e62a4d849c8ac0565c2b79084f062f50bac1 /sfx2
parent049cf7c753339f761cd49b83744abab6aa820ea4 (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.
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/doc/doctemplates.cxx15
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& )