[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - basic/source

Lionel Elie Mamane lionel at mamane.lu
Thu Sep 25 05:18:09 PDT 2014


 basic/source/uno/namecont.cxx |   17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

New commits:
commit 97fbd19655bd83d9f3682627f88737daf0ca5c39
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Thu Sep 4 11:56:12 2014 +0200

    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
    Reviewed-on: https://gerrit.libreoffice.org/11276
    Reviewed-by: Muthu Subramanian K <muthusuba at gmail.com>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/basic/source/uno/namecont.cxx b/basic/source/uno/namecont.cxx
index abdd3d5..61672d3 100644
--- a/basic/source/uno/namecont.cxx
+++ b/basic/source/uno/namecont.cxx
@@ -1795,18 +1795,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
@@ -1884,6 +1888,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 );


More information about the Libreoffice-commits mailing list