lotuswordpro/source/filter/lwpframelayout.cxx | 15 ++++++++------- lotuswordpro/source/filter/lwplayout.cxx | 17 +++++++++-------- lotuswordpro/source/filter/lwplayout.hxx | 2 +- 3 files changed, 18 insertions(+), 16 deletions(-)
New commits: commit 3870b3d42bed9039ac05af0370ddbe4f29179aa0 Author: Caolán McNamara <caol...@redhat.com> Date: Sun Dec 13 16:59:16 2015 +0000 hold WaterMarkLayout by reference Change-Id: I7dc7739ee7b958319ddd4e0cf262254728ef0569 (cherry picked from commit 80509545cc43893776dd24f441e9b95567ce06db) diff --git a/lotuswordpro/source/filter/lwpframelayout.cxx b/lotuswordpro/source/filter/lwpframelayout.cxx index b31791a..7312e81 100644 --- a/lotuswordpro/source/filter/lwpframelayout.cxx +++ b/lotuswordpro/source/filter/lwpframelayout.cxx @@ -272,7 +272,7 @@ void LwpFrame::ApplyWrapType(XFFrameStyle *pFrameStyle) case LwpPlacableLayout::LAY_NO_WRAP_AROUND: { eWrap = enumXFWrapRunThrough; - if(!m_pLayout->GetBackColor() && !m_pLayout->GetWaterMarkLayout()) + if(!m_pLayout->GetBackColor() && !m_pLayout->GetWaterMarkLayout().is()) { //pFrameStyle->SetBackGround(sal_True); XFColor aXFColor(0xffffff); //white color @@ -534,12 +534,13 @@ void LwpFrame::ApplyWatermark(XFFrameStyle *pFrameStyle) { pFrameStyle->SetBackImage(pBGImage); //set watermark transparent - LwpMiddleLayout* pLay = static_cast<LwpMiddleLayout*>(m_pLayout->GetWaterMarkLayout()); - LwpBackgroundStuff* pBackgroundStuff = pLay->GetBackgroundStuff(); - if(pBackgroundStuff && !pBackgroundStuff->IsTransparent()) - { - pFrameStyle->SetTransparency(100); - } + rtl::Reference<LwpVirtualLayout> xWaterMarkLayout(m_pLayout->GetWaterMarkLayout()); + LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(xWaterMarkLayout.get()); + LwpBackgroundStuff* pBackgroundStuff = pLay ? pLay->GetBackgroundStuff() : nullptr; + if(pBackgroundStuff && !pBackgroundStuff->IsTransparent()) + { + pFrameStyle->SetTransparency(100); + } } } diff --git a/lotuswordpro/source/filter/lwplayout.cxx b/lotuswordpro/source/filter/lwplayout.cxx index b8dd7fa..7eeeb51 100644 --- a/lotuswordpro/source/filter/lwplayout.cxx +++ b/lotuswordpro/source/filter/lwplayout.cxx @@ -1357,18 +1357,18 @@ bool LwpMiddleLayout::IsProtected() * @descr: Get watermark layout * */ -LwpVirtualLayout* LwpMiddleLayout::GetWaterMarkLayout() +rtl::Reference<LwpVirtualLayout> LwpMiddleLayout::GetWaterMarkLayout() { - LwpVirtualLayout* pLay = dynamic_cast<LwpVirtualLayout*>(GetChildHead().obj().get()); - while(pLay) + rtl::Reference<LwpVirtualLayout> xLay(dynamic_cast<LwpVirtualLayout*>(GetChildHead().obj().get())); + while (xLay.is()) { - if( pLay->IsForWaterMark()) + if (xLay->IsForWaterMark()) { - return pLay; + return xLay; } - pLay = dynamic_cast<LwpVirtualLayout*> (pLay->GetNext().obj().get()); + xLay.set(dynamic_cast<LwpVirtualLayout*>(xLay->GetNext().obj().get())); } - return nullptr; + return rtl::Reference<LwpVirtualLayout>(); } /** @@ -1377,7 +1377,8 @@ LwpVirtualLayout* LwpMiddleLayout::GetWaterMarkLayout() */ XFBGImage* LwpMiddleLayout::GetXFBGImage() { - LwpMiddleLayout* pLay = static_cast<LwpMiddleLayout*>(GetWaterMarkLayout()); + rtl::Reference<LwpVirtualLayout> xWaterMarkLayout(GetWaterMarkLayout()); + LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(xWaterMarkLayout.get()); if(pLay) { //test BGImage diff --git a/lotuswordpro/source/filter/lwplayout.hxx b/lotuswordpro/source/filter/lwplayout.hxx index 9221029..5d115a6 100644 --- a/lotuswordpro/source/filter/lwplayout.hxx +++ b/lotuswordpro/source/filter/lwplayout.hxx @@ -322,7 +322,7 @@ public: virtual sal_uInt8 GetContentOrientation() override; virtual bool HonorProtection() override; virtual bool IsProtected() override; - LwpVirtualLayout* GetWaterMarkLayout(); + rtl::Reference<LwpVirtualLayout> GetWaterMarkLayout(); XFBGImage* GetXFBGImage(); bool GetUsePrinterSettings();
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits