sfx2/source/dialog/templdlg.cxx | 58 ++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 28 deletions(-)
New commits: commit fb14fc5c95c70751fb2047bdc3bdb40c8131ae98 Author: László Németh <laszlo.nem...@collabora.com> Date: Fri Jun 26 17:36:07 2015 +0200 fix style preview rendering (cherry-picked from 1ebe3004d6e9372ef5419d456b3c29059b539bc9) Change-Id: I9ea9cf895f3d608bd3289c1847eea2f6d47a910c Reviewed-on: https://gerrit.libreoffice.org/16521 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index 833a8af..8747856 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -79,7 +79,7 @@ namespace class StyleLBoxString : public SvLBoxString { SfxStyleFamily meStyleFamily; - std::unique_ptr<sfx2::StylePreviewRenderer> mpStylePreviewRenderer; + SvViewDataItem* mpViewData; public: StyleLBoxString(SvTreeListEntry* pEntry, @@ -115,6 +115,19 @@ void StyleLBoxString::InitViewData(SvTreeListBox* pView, SvTreeListEntry* pEntry { pViewData = pView->GetViewDataItem(pEntry, this); } + mpViewData = pViewData; +} + +void StyleLBoxString::Paint( + const Point& aPos, SvTreeListBox& rDevice, vcl::RenderContext& rRenderContext, + const SvViewDataEntry* pView, const SvTreeListEntry* pEntry) +{ + std::unique_ptr<sfx2::StylePreviewRenderer> pStylePreviewRenderer; + + if (!pEntry) + return; + + bool bResult = false; SfxObjectShell* pShell = SfxObjectShell::Current(); if (!pShell) @@ -122,40 +135,29 @@ void StyleLBoxString::InitViewData(SvTreeListBox* pView, SvTreeListEntry* pEntry sfx2::StyleManager* pStyleManager = pShell->GetStyleManager(); - if (!pStyleManager) + if (pStyleManager) { - return; - } - mpStylePreviewRenderer.reset(pStyleManager->CreateStylePreviewRenderer(*pView, GetText(), meStyleFamily, 32 * pView->GetDPIScaleFactor())); + bool bInit = (!pStylePreviewRenderer); - if (!mpStylePreviewRenderer) - { - return; - } + pStylePreviewRenderer.reset(pStyleManager->CreateStylePreviewRenderer(rRenderContext, GetText(), meStyleFamily, 32 * rRenderContext.GetDPIScaleFactor())); - if (mpStylePreviewRenderer->recalculate()) - { - pViewData->maSize = mpStylePreviewRenderer->getRenderSize(); - } - else - { - SvLBoxString::InitViewData(pView, pEntry, pViewData); + if (pStylePreviewRenderer) + { + if (pStylePreviewRenderer->recalculate()) + { + mpViewData->maSize = pStylePreviewRenderer->getRenderSize(); + } + else if (bInit) + { + SvLBoxString::InitViewData( const_cast<SvTreeListBox*>(&rDevice), const_cast<SvTreeListEntry*>(pEntry), mpViewData); + } + } } -} - -void StyleLBoxString::Paint( - const Point& aPos, SvTreeListBox& /*rDevice*/, vcl::RenderContext& rRenderContext, - const SvViewDataEntry* pView, const SvTreeListEntry* pEntry) -{ - if (!pEntry) - return; - - bool bResult = false; - if (mpStylePreviewRenderer) + if (pStylePreviewRenderer) { Rectangle aPaintRectangle = pView->GetPaintRectangle(); - bResult = mpStylePreviewRenderer->render(aPaintRectangle); + bResult = pStylePreviewRenderer->render(aPaintRectangle); } if (!bResult)
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits