Kaydet (Commit) 9602a121 authored tarafından Oliver-Rainer Wittmann's avatar Oliver-Rainer Wittmann

125289: do apply possible changed <GraphicStreamURL> only for embedded images…

125289: do apply possible changed <GraphicStreamURL> only for embedded images which already have its stream inside the package

fixes also issue 125290
üst 2f2e9147
...@@ -1147,9 +1147,12 @@ void XMLShapeExport::ImpExportGraphicObjectShape( ...@@ -1147,9 +1147,12 @@ void XMLShapeExport::ImpExportGraphicObjectShape(
OUString aResolveURL( sImageURL ); OUString aResolveURL( sImageURL );
const rtl::OUString sPackageURL( RTL_CONSTASCII_USTRINGPARAM( "vnd.sun.star.Package:" ) ); 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 ) ) if ( aStreamURL.match( sPackageURL, 0 ) )
{ {
bIsEmbeddedImageWithExistingStreamInPackage = true;
rtl::OUString sRequestedName( aStreamURL.copy( sPackageURL.getLength(), aStreamURL.getLength() - sPackageURL.getLength() ) ); rtl::OUString sRequestedName( aStreamURL.copy( sPackageURL.getLength(), aStreamURL.getLength() - sPackageURL.getLength() ) );
sal_Int32 nLastIndex = sRequestedName.lastIndexOf( '/' ) + 1; sal_Int32 nLastIndex = sRequestedName.lastIndexOf( '/' ) + 1;
if ( ( nLastIndex > 0 ) && ( nLastIndex < sRequestedName.getLength() ) ) if ( ( nLastIndex > 0 ) && ( nLastIndex < sRequestedName.getLength() ) )
...@@ -1169,20 +1172,23 @@ void XMLShapeExport::ImpExportGraphicObjectShape( ...@@ -1169,20 +1172,23 @@ void XMLShapeExport::ImpExportGraphicObjectShape(
if ( !aStr.isEmpty() ) if ( !aStr.isEmpty() )
{ {
aStreamURL = sPackageURL; // apply possible changed stream URL to embedded image object
if ( aStr[0] == '#' ) if ( bIsEmbeddedImageWithExistingStreamInPackage )
{
aStreamURL = aStreamURL.concat( aStr.copy( 1, aStr.getLength() - 1 ) );
}
else
{ {
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;
uno::Any aAny; aAny <<= aStreamURL;
aAny <<= aStreamURL; xPropSet->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "GraphicStreamURL" ) ), aAny );
xPropSet->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "GraphicStreamURL" ) ), aAny ); }
mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE ); mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED ); mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment