From f5f8afa0e8e1e3d90ef1d45f2aa238776dd83e06 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 24 Jul 2014 09:48:25 +0200 Subject: [PATCH] avoid image loss in Impress after auto-save --- ...-do-apply-possible-changed-GraphicSt.patch | 81 +++++++++++++++++++ libreoffice.spec | 6 +- 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 0001-Resolves-i125289-do-apply-possible-changed-GraphicSt.patch diff --git a/0001-Resolves-i125289-do-apply-possible-changed-GraphicSt.patch b/0001-Resolves-i125289-do-apply-possible-changed-GraphicSt.patch new file mode 100644 index 0000000..4070305 --- /dev/null +++ b/0001-Resolves-i125289-do-apply-possible-changed-GraphicSt.patch @@ -0,0 +1,81 @@ +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 + diff --git a/libreoffice.spec b/libreoffice.spec index 1654313..27abc0d 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -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 - 1:4.3.0.3-2 +- avoid image loss in Impress after auto-save + * Wed Jul 16 2014 David Tardon - 1:4.3.0.1-1 - update to 4.3.0 rc3