From 5e568feca88a5e9e39c50dd92a6c9b664ef5f714 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Wed, 20 Nov 2019 14:54:16 +0000 Subject: If a SdrOle2Obj object is missing/broken show the preview set for it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit if the object isn't valid, e.g. link to something that doesn't exist, set the fallback graphic as mxGraphic so SdrOle2Obj::GetGraphic will show the fallback, otherwise the failing mxObjRef.is test in SdrOle2Obj::GetGraphic means it doesn't get used Change-Id: I8f1aea6b25dc216e01a0f888a44d10876bb1bebd Reviewed-on: https://gerrit.libreoffice.org/83328 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- svx/source/svdraw/svdoole2.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'svx/source') diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx index 604d6c8eb9a5..16617ecaf94f 100644 --- a/svx/source/svdraw/svdoole2.cxx +++ b/svx/source/svdraw/svdoole2.cxx @@ -1849,11 +1849,19 @@ bool SdrOle2Obj::IsChart() const void SdrOle2Obj::SetGraphicToObj( const Graphic& aGraphic ) { mpImpl->mxObjRef.SetGraphic( aGraphic, OUString() ); + // if the object isn't valid, e.g. link to something that doesn't exist, set the fallback + // graphic as mxGraphic so SdrOle2Obj::GetGraphic will show the fallback + if (const Graphic* pObjGraphic = mpImpl->mxObjRef.is() ? nullptr : mpImpl->mxObjRef.GetGraphic()) + mpImpl->mxGraphic.reset(new Graphic(*pObjGraphic)); } void SdrOle2Obj::SetGraphicToObj( const uno::Reference< io::XInputStream >& xGrStream, const OUString& aMediaType ) { mpImpl->mxObjRef.SetGraphicStream( xGrStream, aMediaType ); + // if the object isn't valid, e.g. link to something that doesn't exist, set the fallback + // graphic as mxGraphic so SdrOle2Obj::GetGraphic will show the fallback + if (const Graphic* pObjGraphic = mpImpl->mxObjRef.is() ? nullptr : mpImpl->mxObjRef.GetGraphic()) + mpImpl->mxGraphic.reset(new Graphic(*pObjGraphic)); } bool SdrOle2Obj::IsCalc() const -- cgit v1.2.3