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

Oliver-Rainer Wittmann orw at apache.org
Wed Jul 23 06:47:08 PDT 2014


 xmloff/source/draw/shapeexport.cxx |   32 +++++++++++++++++++-------------
 1 file changed, 19 insertions(+), 13 deletions(-)

New commits:
commit e67d8d221326e1c753457d4283e2cff16b8b5f52
Author: Oliver-Rainer Wittmann <orw at apache.org>
Date:   Wed Jul 23 08:53:15 2014 +0000

    Resolves: #i125289# do apply possible changed <GraphicStreamURL>...
    
    only for embedded images which already have its stream inside the package
    
    fixes also issue 125290
    
    (cherry picked from commit 9602a121b458e7456fc533dad86f434f846a72ba)
    
    Conflicts:
    	xmloff/source/draw/shapeexport2.cxx
    
    Change-Id: I5af0093b20f2f291d3a94c690bfbdb59a59320c3
    (cherry picked from commit fd641c7b23ce4205c29fc0c564b73336cb2cfb07)
    Reviewed-on: https://gerrit.libreoffice.org/10487
    Reviewed-by: David Tardon <dtardon at redhat.com>
    Tested-by: David Tardon <dtardon at redhat.com>

diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx
index c4bb166..ec8adfa 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -2256,9 +2256,12 @@ void XMLShapeExport::ImpExportGraphicObjectShape(
                 OUString aResolveURL( sImageURL );
                 const OUString sPackageURL( "vnd.sun.star.Package:" );
 
-                // trying to preserve the filename
+                // trying to preserve the filename for embedded images which already have its stream inside the package
+                bool bIsEmbeddedImageWithExistingStreamInPackage = false;
                 if ( aStreamURL.match( sPackageURL, 0 ) )
                 {
+                    bIsEmbeddedImageWithExistingStreamInPackage = true;
+
                     OUString sRequestedName( aStreamURL.copy( sPackageURL.getLength(), aStreamURL.getLength() - sPackageURL.getLength() ) );
                     sal_Int32 nLastIndex = sRequestedName.lastIndexOf( '/' ) + 1;
                     if ( ( nLastIndex > 0 ) && ( nLastIndex < sRequestedName.getLength() ) )
@@ -2278,20 +2281,23 @@ void XMLShapeExport::ImpExportGraphicObjectShape(
 
                 if( !aStr.isEmpty() )
                 {
-                    aStreamURL = sPackageURL;
-                    if( aStr[ 0 ] == '#' )
-                    {
-                        aStreamURL = aStreamURL.concat( aStr.copy( 1, aStr.getLength() - 1 ) );
-                    }
-                    else
+                    // apply possible changed stream URL to embedded image object
+                    if ( bIsEmbeddedImageWithExistingStreamInPackage )
                     {
-                        aStreamURL = aStreamURL.concat( aStr );
-                    }
+                        aStreamURL = sPackageURL;
+                        if ( aStr[0] == '#' )
+                        {
+                            aStreamURL = aStreamURL.concat( aStr.copy( 1, aStr.getLength() - 1 ) );
+                        }
+                        else
+                        {
+                            aStreamURL = aStreamURL.concat( aStr );
+                        }
 
-                    // update stream URL for load on demand
-                    uno::Any aAny;
-                    aAny <<= aStreamURL;
-                    xPropSet->setPropertyValue("GraphicStreamURL", aAny );
+                        uno::Any aAny;
+                        aAny <<= aStreamURL;
+                        xPropSet->setPropertyValue( OUString("GraphicStreamURL"), aAny );
+                    }
 
                     mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
                     mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED );


More information about the Libreoffice-commits mailing list