svtools/source/graphic/grfmgr.cxx | 3 ++- svx/source/svdraw/svdograf.cxx | 12 ++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-)
New commits: commit f0b28806eebb1477066d44de49b5d1d61a8e84cf Author: Zolnai Tamás <[email protected]> Date: Sat Nov 22 19:51:02 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 two other related potential image loss situation: - SetUserData() is called with empty image URL - Image preview is thrown when we actually have no package URL from we can import the image again. Change-Id: Ib21f400eb6d28133e8598e6b201209e5dd1a976f diff --git a/svtools/source/graphic/grfmgr.cxx b/svtools/source/graphic/grfmgr.cxx index f7c6ec6..ec3c59b 100644 --- a/svtools/source/graphic/grfmgr.cxx +++ b/svtools/source/graphic/grfmgr.cxx @@ -430,7 +430,8 @@ void GraphicObject::SetUserData() void GraphicObject::SetUserData( const OUString& rUserData ) { maUserData = rUserData; - SetSwapState(); + if( !rUserData.isEmpty() ) + SetSwapState(); } void GraphicObject::SetSwapStreamHdl() diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx index 585abe43..3e334fc 100644 --- a/svx/source/svdraw/svdograf.cxx +++ b/svx/source/svdraw/svdograf.cxx @@ -562,7 +562,7 @@ OUString SdrGrafObj::GetGrafStreamURL() const void SdrGrafObj::ForceSwapIn() const { - if( mbIsPreview ) + if( mbIsPreview && pGraphic->HasUserData() ) { // removing preview graphic const OUString aUserData( pGraphic->GetUserData() ); @@ -1347,8 +1347,16 @@ IMPL_LINK( SdrGrafObj, ImpSwapHdl, GraphicObject*, pO ) aGraphic, aUserData, *pStream, GRFILTER_FORMAT_DONTKNOW, NULL, 0, pFilterData.get())) { + 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;
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
