Author: orw Date: Wed Jul 23 08:53:15 2014 New Revision: 1612801 URL: http://svn.apache.org/r1612801 Log: 125289: do apply possible changed <GraphicStreamURL> only for embedded images which already have its stream inside the package fixes also issue 125290
Modified: openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx Modified: openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx?rev=1612801&r1=1612800&r2=1612801&view=diff ============================================================================== --- openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx (original) +++ openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx Wed Jul 23 08:53:15 2014 @@ -1147,9 +1147,12 @@ void XMLShapeExport::ImpExportGraphicObj OUString aResolveURL( sImageURL ); const rtl::OUString sPackageURL( RTL_CONSTASCII_USTRINGPARAM( "vnd.sun.star.Package:" ) ); - // sj: trying to preserve the filename + // sj: 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; + rtl::OUString sRequestedName( aStreamURL.copy( sPackageURL.getLength(), aStreamURL.getLength() - sPackageURL.getLength() ) ); sal_Int32 nLastIndex = sRequestedName.lastIndexOf( '/' ) + 1; if ( ( nLastIndex > 0 ) && ( nLastIndex < sRequestedName.getLength() ) ) @@ -1169,21 +1172,24 @@ void XMLShapeExport::ImpExportGraphicObj 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 ); + } + + uno::Any aAny; + aAny <<= aStreamURL; + xPropSet->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "GraphicStreamURL" ) ), aAny ); } - // update stream URL for load on demand - uno::Any aAny; - aAny <<= aStreamURL; - xPropSet->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "GraphicStreamURL" ) ), aAny ); - mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE ); mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED ); mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_ACTUATE, XML_ONLOAD );