[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - svx/source

Zolnai Tamás tamas.zolnai at collabora.com
Sun Nov 23 00:34:34 PST 2014


 svx/source/svdraw/svdograf.cxx |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

New commits:
commit cfa2d77698ea4c76b624fa04280fe638d1f50eb1
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date:   Sat Nov 22 22:02:18 2014 +0100

    fdo#86573: Impress does not show pictures anymore
    
    Regression from:
    286e2f5c6ec829bc0987b1be7016699f7ef03e5e
    
    Sometimes SdrGrafObj import the image file just as a
    preview (with low resolution) and late when the real
    picture is needed it just throws this preview and tries
    to load the image again.
    This preview works only with package URL so in this
    case we should not forget that URL.
    
    Plus an other related potential image loss situation:
    - Image preview is thrown when we actually have no
    package URL from we can import the image again.
    
    (cherry picked from commit f0b28806eebb1477066d44de49b5d1d61a8e84cf)
    
    Change-Id: Ib21f400eb6d28133e8598e6b201209e5dd1a976f
    Reviewed-on: https://gerrit.libreoffice.org/13048
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx
index fcc9d14..43ca601 100644
--- a/svx/source/svdraw/svdograf.cxx
+++ b/svx/source/svdraw/svdograf.cxx
@@ -563,7 +563,7 @@ OUString SdrGrafObj::GetGrafStreamURL() const
 
 void SdrGrafObj::ForceSwapIn() const
 {
-    if( mbIsPreview )
+    if( mbIsPreview && pGraphic->HasUserData() )
     {
         // removing preview graphic
         const OUString aUserData( pGraphic->GetUserData() );
@@ -1372,9 +1372,15 @@ IMPL_LINK( SdrGrafObj, ImpSwapHdl, GraphicObject*, pO )
                         GRFILTER_FORMAT_DONTKNOW, NULL, 0, pFilterData))
                     {
                         const OUString aNewUserData( pGraphic->GetUserData() );
-
                         pGraphic->SetGraphic( aGraphic );
-                        pGraphic->SetUserData();
+                        if( mbIsPreview )
+                        {
+                            pGraphic->SetUserData(aNewUserData);
+                        }
+                        else
+                        {
+                            pGraphic->SetUserData();
+                        }
 
                         // Graphic successfully swapped in.
                         pRet = GRFMGR_AUTOSWAPSTREAM_LOADED;


More information about the Libreoffice-commits mailing list