sw/inc/accmap.hxx | 4 - sw/inc/pagepreviewlayout.hxx | 2 sw/source/core/access/accmap.cxx | 20 +++----- sw/source/core/inc/viewimp.hxx | 2 sw/source/core/view/pagepreviewlayout.cxx | 68 ++++++++++++------------------ sw/source/core/view/viewimp.cxx | 3 - sw/source/core/view/viewsh.cxx | 1 sw/source/uibase/uiview/pview.cxx | 1 8 files changed, 45 insertions(+), 56 deletions(-)
New commits: commit 99aad471716bfd212e29eebdcbdfb260627f1ae1 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Thu Aug 16 11:40:54 2018 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Fri Aug 17 10:39:38 2018 +0200 loplugin:useuniqueptr in SwPagePreviewLayout Change-Id: Iecec5b3d4651eb6a1d8fe0b29a691c945a3eb19c Reviewed-on: https://gerrit.libreoffice.org/59228 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sw/inc/accmap.hxx b/sw/inc/accmap.hxx index 330c4436d613..6e2e0e2b7984 100644 --- a/sw/inc/accmap.hxx +++ b/sw/inc/accmap.hxx @@ -145,7 +145,7 @@ public: css::uno::Reference<css::accessibility::XAccessible> GetDocumentView(); css::uno::Reference<css::accessibility::XAccessible> GetDocumentPreview( - const std::vector<PreviewPage*>& _rPreviewPages, + const std::vector<std::unique_ptr<PreviewPage>>& _rPreviewPages, const Fraction& _rScale, const SwPageFrame* _pSelectedPageFrame, const Size& _rPreviewWinSize ); @@ -242,7 +242,7 @@ public: vcl::Window& rChild ) const; // update preview data (and fire events if necessary) - void UpdatePreview( const std::vector<PreviewPage*>& _rPreviewPages, + void UpdatePreview( const std::vector<std::unique_ptr<PreviewPage>>& _rPreviewPages, const Fraction& _rScale, const SwPageFrame* _pSelectedPageFrame, const Size& _rPreviewWinSize ); diff --git a/sw/inc/pagepreviewlayout.hxx b/sw/inc/pagepreviewlayout.hxx index efe7ed892310..69e3de6fea54 100644 --- a/sw/inc/pagepreviewlayout.hxx +++ b/sw/inc/pagepreviewlayout.hxx @@ -90,7 +90,7 @@ private: tools::Rectangle maPaintedPreviewDocRect; sal_uInt16 mnSelectedPageNum; - std::vector<PreviewPage*> maPreviewPages; + std::vector<std::unique_ptr<PreviewPage>> maPreviewPages; /** #i22014# - internal booleans to indicate, that a new print preview layout has been created during a paint. */ diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index f9db5a32527a..0181b1db1f7b 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -671,7 +671,7 @@ public: SwAccPreviewData(); void Update( const SwAccessibleMap& rAccMap, - const std::vector<PreviewPage*>& _rPreviewPages, + const std::vector<std::unique_ptr<PreviewPage>>& _rPreviewPages, const Fraction& _rScale, const SwPageFrame* _pSelectedPageFrame, const Size& _rPreviewWinSize ); @@ -698,7 +698,7 @@ SwAccPreviewData::SwAccPreviewData() : } void SwAccPreviewData::Update( const SwAccessibleMap& rAccMap, - const std::vector<PreviewPage*>& _rPreviewPages, + const std::vector<std::unique_ptr<PreviewPage>>& _rPreviewPages, const Fraction& _rScale, const SwPageFrame* _pSelectedPageFrame, const Size& _rPreviewWinSize ) @@ -715,14 +715,12 @@ void SwAccPreviewData::Update( const SwAccessibleMap& rAccMap, // loop on preview pages to calculate <maPreviewRects>, <maLogicRects> and // <maVisArea> - for ( std::vector<PreviewPage*>::const_iterator aPageIter = _rPreviewPages.begin(); - aPageIter != _rPreviewPages.end(); - ++aPageIter ) + for ( auto & rpPreviewPage : _rPreviewPages ) { - aPage = (*aPageIter)->pPage; + aPage = rpPreviewPage->pPage; // add preview page rectangle to <maPreviewRects> - tools::Rectangle aPreviewPgRect( (*aPageIter)->aPreviewWinPos, (*aPageIter)->aPageSize ); + tools::Rectangle aPreviewPgRect( rpPreviewPage->aPreviewWinPos, rpPreviewPage->aPageSize ); maPreviewRects.push_back( aPreviewPgRect ); // add logic page rectangle to <maLogicRects> @@ -730,9 +728,9 @@ void SwAccPreviewData::Update( const SwAccessibleMap& rAccMap, tools::Rectangle aLogicPgRect( aLogicPgSwRect.SVRect() ); maLogicRects.push_back( aLogicPgRect ); // union visible area with visible part of logic page rectangle - if ( (*aPageIter)->bVisible ) + if ( rpPreviewPage->bVisible ) { - if ( !(*aPageIter)->pPage->IsEmptyPage() ) + if ( !rpPreviewPage->pPage->IsEmptyPage() ) { AdjustLogicPgRectToVisibleArea( aLogicPgSwRect, SwRect( aPreviewPgRect ), @@ -1781,7 +1779,7 @@ uno::Reference< XAccessible > SwAccessibleMap::GetDocumentView( ) } uno::Reference<XAccessible> SwAccessibleMap::GetDocumentPreview( - const std::vector<PreviewPage*>& _rPreviewPages, + const std::vector<std::unique_ptr<PreviewPage>>& _rPreviewPages, const Fraction& _rScale, const SwPageFrame* _pSelectedPageFrame, const Size& _rPreviewWinSize ) @@ -2920,7 +2918,7 @@ sal_Int32 SwAccessibleMap::GetChildIndex( const SwFrame& rParentFrame, return nIndex; } -void SwAccessibleMap::UpdatePreview( const std::vector<PreviewPage*>& _rPreviewPages, +void SwAccessibleMap::UpdatePreview( const std::vector<std::unique_ptr<PreviewPage>>& _rPreviewPages, const Fraction& _rScale, const SwPageFrame* _pSelectedPageFrame, const Size& _rPreviewWinSize ) diff --git a/sw/source/core/inc/viewimp.hxx b/sw/source/core/inc/viewimp.hxx index 3ec09cc16118..929f6cbad638 100644 --- a/sw/source/core/inc/viewimp.hxx +++ b/sw/source/core/inc/viewimp.hxx @@ -260,7 +260,7 @@ public: /// update data for accessible preview /// change method signature due to new page preview functionality - void UpdateAccessiblePreview( const std::vector<PreviewPage*>& _rPreviewPages, + void UpdateAccessiblePreview( const std::vector<std::unique_ptr<PreviewPage>>& _rPreviewPages, const Fraction& _rScale, const SwPageFrame* _pSelectedPageFrame, const Size& _rPreviewWinSize ); diff --git a/sw/source/core/view/pagepreviewlayout.cxx b/sw/source/core/view/pagepreviewlayout.cxx index f7fdcc0efae4..9d102290b617 100644 --- a/sw/source/core/view/pagepreviewlayout.cxx +++ b/sw/source/core/view/pagepreviewlayout.cxx @@ -107,12 +107,6 @@ void SwPagePreviewLayout::ClearPreviewLayoutSizes() void SwPagePreviewLayout::ClearPreviewPageData() { - for ( std::vector<PreviewPage*>::iterator aPageDelIter = maPreviewPages.begin(); - aPageDelIter != maPreviewPages.end(); - ++aPageDelIter ) - { - delete *aPageDelIter; - } maPreviewPages.clear(); } @@ -582,12 +576,12 @@ void SwPagePreviewLayout::CalcPreviewPages() if ( nCurrCol < mnPaintStartCol ) { // calculate data of unvisible page needed for accessibility - PreviewPage* pPreviewPage = new PreviewPage; + std::unique_ptr<PreviewPage> pPreviewPage(new PreviewPage); Point aCurrAccOffset = aCurrPaintOffset - Point( (mnPaintStartCol-nCurrCol) * mnColWidth, 0 ); - CalcPreviewDataForPage( *pPage, aCurrAccOffset, pPreviewPage ); + CalcPreviewDataForPage( *pPage, aCurrAccOffset, pPreviewPage.get() ); pPreviewPage->bVisible = false; - maPreviewPages.push_back( pPreviewPage ); + maPreviewPages.push_back( std::move(pPreviewPage) ); // continue with next page and next column pPage = static_cast<const SwPageFrame*>(pPage->GetNext()); ++nCurrCol; @@ -611,18 +605,18 @@ void SwPagePreviewLayout::CalcPreviewPages() } // calculate data of visible page - PreviewPage* pPreviewPage = new PreviewPage; - CalcPreviewDataForPage( *pPage, aCurrPaintOffset, pPreviewPage ); + std::unique_ptr<PreviewPage> pPreviewPage(new PreviewPage); + CalcPreviewDataForPage( *pPage, aCurrPaintOffset, pPreviewPage.get() ); pPreviewPage->bVisible = true; - maPreviewPages.push_back( pPreviewPage ); + maPreviewPages.push_back( std::move(pPreviewPage) ); } else { // calculate data of unvisible page needed for accessibility - PreviewPage* pPreviewPage = new PreviewPage; - CalcPreviewDataForPage( *pPage, aCurrPaintOffset, pPreviewPage ); + std::unique_ptr<PreviewPage> pPreviewPage(new PreviewPage); + CalcPreviewDataForPage( *pPage, aCurrPaintOffset, pPreviewPage.get() ); pPreviewPage->bVisible = false; - maPreviewPages.push_back( pPreviewPage ); + maPreviewPages.push_back( std::move(pPreviewPage) ); } // prepare data for next loop @@ -882,7 +876,7 @@ struct PreviewPosInsidePagePred explicit PreviewPosInsidePagePred(const Point& rPreviewPos) : mnPreviewPos( rPreviewPos ) {} - bool operator() ( const PreviewPage* _pPreviewPage ) + bool operator() ( const std::unique_ptr<PreviewPage> & _pPreviewPage ) { if ( _pPreviewPage->bVisible ) { @@ -904,7 +898,7 @@ bool SwPagePreviewLayout::IsPreviewPosInDocPreviewPage( const Point& rPreviewPo _obPosInEmptyPage = false; _onPageNum = 0; - std::vector<PreviewPage*>::const_iterator aFoundPreviewPageIter = + auto aFoundPreviewPageIter = std::find_if( maPreviewPages.begin(), maPreviewPages.end(), PreviewPosInsidePagePred( rPreviewPos ) ); @@ -1035,14 +1029,12 @@ bool SwPagePreviewLayout::Paint(vcl::RenderContext& rRenderContext, const tools: { SwRegionRects aPreviewBackgrdRegion(rOutRect); // calculate preview background rectangles - for ( std::vector<PreviewPage*>::const_iterator aPageIter = maPreviewPages.begin(); - aPageIter != maPreviewPages.end(); - ++aPageIter ) + for ( auto & rpPreviewPage : maPreviewPages ) { - if ( (*aPageIter)->bVisible ) + if ( rpPreviewPage->bVisible ) { aPreviewBackgrdRegion -= - SwRect( (*aPageIter)->aPreviewWinPos, (*aPageIter)->aPageSize ); + SwRect( rpPreviewPage->aPreviewWinPos, rpPreviewPage->aPageSize ); } } // paint preview background rectangles @@ -1057,20 +1049,18 @@ bool SwPagePreviewLayout::Paint(vcl::RenderContext& rRenderContext, const tools: const vcl::Font& rEmptyPgFont = SwPageFrame::GetEmptyPageFont(); - for ( std::vector<PreviewPage*>::const_iterator aPageIter = maPreviewPages.begin(); - aPageIter != maPreviewPages.end(); - ++aPageIter ) + for ( auto & rpPreviewPage : maPreviewPages ) { - if ( !(*aPageIter)->bVisible ) + if ( !rpPreviewPage->bVisible ) continue; - tools::Rectangle aPageRect( (*aPageIter)->aLogicPos, (*aPageIter)->aPageSize ); - aMapMode.SetOrigin( (*aPageIter)->aMapOffset ); + tools::Rectangle aPageRect( rpPreviewPage->aLogicPos, rpPreviewPage->aPageSize ); + aMapMode.SetOrigin( rpPreviewPage->aMapOffset ); pOutputDev->SetMapMode( aMapMode ); tools::Rectangle aPxPaintRect = pOutputDev->LogicToPixel( aPageRect ); if ( aPxOutRect.IsOver( aPxPaintRect) ) { - const SwPageFrame* pPage = (*aPageIter)->pPage; + const SwPageFrame* pPage = rpPreviewPage->pPage; if (pPage->IsEmptyPage()) { @@ -1130,7 +1120,7 @@ bool SwPagePreviewLayout::Paint(vcl::RenderContext& rRenderContext, const tools: if (pPage->GetPhyPageNum() == mnSelectedPageNum) { - PaintSelectMarkAtPage(rRenderContext, *aPageIter); + PaintSelectMarkAtPage(rRenderContext, rpPreviewPage.get()); } } } @@ -1186,21 +1176,19 @@ void SwPagePreviewLayout::Repaint( const tools::Rectangle& rInvalidCoreRect ) co } // invalidate visible pages, which overlap the invalid core rectangle - for ( std::vector<PreviewPage*>::const_iterator aPageIter = maPreviewPages.begin(); - aPageIter != maPreviewPages.end(); - ++aPageIter ) + for ( auto & rpPreviewPage : maPreviewPages ) { - if ( !(*aPageIter)->bVisible ) + if ( !rpPreviewPage->bVisible ) continue; - tools::Rectangle aPageRect( (*aPageIter)->aLogicPos, (*aPageIter)->aPageSize ); + tools::Rectangle aPageRect( rpPreviewPage->aLogicPos, rpPreviewPage->aPageSize ); if ( rInvalidCoreRect.IsOver( aPageRect ) ) { aPageRect.Intersection(rInvalidCoreRect); tools::Rectangle aInvalidPreviewRect = aPageRect; aInvalidPreviewRect.SetPos( aInvalidPreviewRect.TopLeft() - - (*aPageIter)->aLogicPos + - (*aPageIter)->aPreviewWinPos ); + rpPreviewPage->aLogicPos + + rpPreviewPage->aPreviewWinPos ); mrParentViewShell.GetWin()->Invalidate( aInvalidPreviewRect ); } } @@ -1326,7 +1314,7 @@ struct EqualsPageNumPred explicit EqualsPageNumPred(const sal_uInt16 _nPageNum) : mnPageNum( _nPageNum ) {} - bool operator() ( const PreviewPage* _pPreviewPage ) + bool operator() ( const std::unique_ptr<PreviewPage> & _pPreviewPage ) { return _pPreviewPage->pPage->GetPhyPageNum() == mnPageNum; } @@ -1334,14 +1322,14 @@ struct EqualsPageNumPred const PreviewPage* SwPagePreviewLayout::GetPreviewPageByPageNum( const sal_uInt16 _nPageNum ) const { - std::vector<PreviewPage*>::const_iterator aFoundPreviewPageIter = + auto aFoundPreviewPageIter = std::find_if( maPreviewPages.begin(), maPreviewPages.end(), EqualsPageNumPred( _nPageNum ) ); if ( aFoundPreviewPageIter == maPreviewPages.end() ) return nullptr; - return (*aFoundPreviewPageIter); + return aFoundPreviewPageIter->get(); } /** determine row the page with the given number is in diff --git a/sw/source/core/view/viewimp.cxx b/sw/source/core/view/viewimp.cxx index c8c427105e6f..4788190c5cda 100644 --- a/sw/source/core/view/viewimp.cxx +++ b/sw/source/core/view/viewimp.cxx @@ -41,6 +41,7 @@ #include <IDocumentDeviceAccess.hxx> #include <IDocumentSettingAccess.hxx> #include <drawdoc.hxx> +#include <prevwpage.hxx> void SwViewShellImp::Init( const SwViewOption *pNewOpt ) { @@ -433,7 +434,7 @@ void SwViewShellImp::InvalidateAccessibleParaAttrs_( const SwTextFrame& rTextFra } } -void SwViewShellImp::UpdateAccessiblePreview( const std::vector<PreviewPage*>& _rPreviewPages, +void SwViewShellImp::UpdateAccessiblePreview( const std::vector<std::unique_ptr<PreviewPage>>& _rPreviewPages, const Fraction& _rScale, const SwPageFrame* _pSelectedPageFrame, const Size& _rPreviewWinSize ) diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index de050752bdce..c3d04941164c 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -84,6 +84,7 @@ #include <svx/sdr/overlay/overlaymanager.hxx> #include <LibreOfficeKit/LibreOfficeKitEnums.h> #include <comphelper/lok.hxx> +#include <prevwpage.hxx> #if !HAVE_FEATURE_DESKTOP #include <vcl/sysdata.hxx> diff --git a/sw/source/uibase/uiview/pview.cxx b/sw/source/uibase/uiview/pview.cxx index 14fd822e1bf4..c4a2055bc218 100644 --- a/sw/source/uibase/uiview/pview.cxx +++ b/sw/source/uibase/uiview/pview.cxx @@ -80,6 +80,7 @@ #include <memory> #include <vcl/EnumContext.hxx> #include <vcl/notebookbar.hxx> +#include <prevwpage.hxx> using namespace ::com::sun::star; SFX_IMPL_NAMED_VIEWFACTORY(SwPagePreview, "PrintPreview") _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits