summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorCédric Bosdonnat <cedric.bosdonnat@free.fr>2013-02-11 15:24:23 +0100
committerTor Lillqvist <tml@iki.fi>2013-02-12 08:34:32 +0000
commitdf37dd7d3ce201d1ba5a0065c126db107ce18ead (patch)
tree416aaf5fcc7c7845a14069adb99d5d8be26d232c /sfx2
parent8ca739d7b9acbc2fc9eff401ca850027f6e52b66 (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.cxx15
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& )