From e67d8d221326e1c753457d4283e2cff16b8b5f52 Mon Sep 17 00:00:00 2001 From: Oliver-Rainer Wittmann Date: Wed, 23 Jul 2014 08:53:15 +0000 Subject: [PATCH] Resolves: #i125289# do apply possible changed ... 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 Tested-by: David Tardon --- xmloff/source/draw/shapeexport.cxx | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) 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 ); -- 1.9.3