avoid image loss in Impress after auto-save

f41
David Tardon 11 years ago
parent 0cecb79299
commit f5f8afa0e8

@ -0,0 +1,81 @@
From e67d8d221326e1c753457d4283e2cff16b8b5f52 Mon Sep 17 00:00:00 2001
From: Oliver-Rainer Wittmann <orw@apache.org>
Date: Wed, 23 Jul 2014 08:53:15 +0000
Subject: [PATCH] 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@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
---
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

@ -46,7 +46,7 @@ Summary: Free Software Productivity Suite
Name: libreoffice
Epoch: 1
Version: %{libo_version}.3
Release: 1%{?libo_prerelease}%{?dist}
Release: 2%{?libo_prerelease}%{?dist}
License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0
Group: Applications/Productivity
URL: http://www.libreoffice.org/
@ -310,6 +310,7 @@ Patch19: 0001-scrolling-very-slow-in-calc.patch
Patch20: 0001-Related-rhbz-1117853-nStartPara-of-EE_PARA_NOT_FOUND.patch
Patch21: 0001-Resolves-fdo-81487-pasting-into-outline-view-crashes.patch
Patch22: 0001-fdo-81113-always-run-the-actual-detection.patch
Patch23: 0001-Resolves-i125289-do-apply-possible-changed-GraphicSt.patch
%define instdir %{_libdir}
%define baseinstdir %{instdir}/libreoffice
@ -2282,6 +2283,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
%endif
%changelog
* Thu Jul 24 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.3-2
- avoid image loss in Impress after auto-save
* Wed Jul 16 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.1-1
- update to 4.3.0 rc3

Loading…
Cancel
Save