summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2014-09-04 11:56:12 +0200
committerLionel Elie Mamane <lionel@mamane.lu>2014-09-04 12:06:51 +0200
commita7fbabdacdc08c36e6e395a89db11400daa56777 (patch)
tree4a3a0ee921487f5e4e32368931207897e5f1222e
parent513d95f3185f2e916f76b0ec058413ae69f161a3 (diff)
fdo#52076 remove Library dir when no library
when saving to same storage (in place) we already did that when empty "Standard" was the only library, but not when there was no library... Cannot get through that state in through UI, but possible through scripting. Change-Id: I0f1129e034ac31b3eaf6bd388a03aee5aae5b87e
-rw-r--r--basic/source/uno/namecont.cxx17
1 files changed, 11 insertions, 6 deletions
diff --git a/basic/source/uno/namecont.cxx b/basic/source/uno/namecont.cxx
index b79fe9789e73..55d732705b24 100644
--- a/basic/source/uno/namecont.cxx
+++ b/basic/source/uno/namecont.cxx
@@ -1817,18 +1817,22 @@ void SfxLibraryContainer::storeLibraries_Impl( const uno::Reference< embed::XSto
nLibsToSave--;
}
}
- if( !nLibsToSave )
- {
- return;
- }
- boost::scoped_ptr< ::xmlscript::LibDescriptorArray > pLibArray(new ::xmlscript::LibDescriptorArray(nLibsToSave));
-
// Write to storage?
bool bStorage = i_rStorage.is();
uno::Reference< embed::XStorage > xSourceLibrariesStor;
uno::Reference< embed::XStorage > xTargetLibrariesStor;
OUString sTempTargetStorName;
const bool bInplaceStorage = bStorage && ( i_rStorage == mxStorage );
+
+ if( nLibsToSave == 0 )
+ {
+ if ( bInplaceStorage && mxStorage->hasByName(maLibrariesDir) )
+ {
+ mxStorage->removeElement(maLibrariesDir);
+ }
+ return;
+ }
+
if ( bStorage )
{
// Don't write if only empty standard lib exists
@@ -1906,6 +1910,7 @@ void SfxLibraryContainer::storeLibraries_Impl( const uno::Reference< embed::XSto
int iArray = 0;
pName = aNames.getConstArray();
::xmlscript::LibDescriptor aLibDescriptorForExtensionLibs;
+ boost::scoped_ptr< ::xmlscript::LibDescriptorArray > pLibArray(new ::xmlscript::LibDescriptorArray(nLibsToSave));
for( ; pName != pNamesEnd; ++pName )
{
SfxLibrary* pImplLib = getImplLib( *pName );