diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-24 10:20:35 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-25 08:45:34 +0200 |
commit | 574a6265fb6adb401efefcc1312a4e1d7e6b4ddc (patch) | |
tree | 80f27ea32e31ddd6b1cda09dd536dfa3840db5d6 /sw | |
parent | 003b2956d872ac19a1c84fefcc773ecefa008220 (diff) |
loplugin:useuniqueptr in SwPostItMgr
Change-Id: I63dd541ac975648083d75fe5ce1ef86e99016faa
Reviewed-on: https://gerrit.libreoffice.org/57936
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/inc/PostItMgr.hxx | 2 | ||||
-rw-r--r-- | sw/source/uibase/docvw/PostItMgr.cxx | 13 |
2 files changed, 7 insertions, 8 deletions
diff --git a/sw/inc/PostItMgr.hxx b/sw/inc/PostItMgr.hxx index 32f77b8488f6..e3f881e59d39 100644 --- a/sw/inc/PostItMgr.hxx +++ b/sw/inc/PostItMgr.hxx @@ -132,7 +132,7 @@ class SwPostItMgr: public SfxListener SwWrtShell* mpWrtShell; VclPtr<SwEditWin> mpEditWin; std::vector<SwSidebarItem*> mvPostItFields; - std::vector<SwPostItPageItem*> mPages; + std::vector<std::unique_ptr<SwPostItPageItem>> mPages; ImplSVEvent * mnEventId; bool mbWaitingForCalcRects; VclPtr<sw::annotation::SwAnnotationWin> mpActivePostIt; diff --git a/sw/source/uibase/docvw/PostItMgr.cxx b/sw/source/uibase/docvw/PostItMgr.cxx index 2cd8d420db70..2365d8b026ea 100644 --- a/sw/source/uibase/docvw/PostItMgr.cxx +++ b/sw/source/uibase/docvw/PostItMgr.cxx @@ -236,8 +236,6 @@ SwPostItMgr::~SwPostItMgr() RemoveSidebarWin(); EndListening( *mpView->GetDocShell() ); - for (auto const& page : mPages) - delete page; mPages.clear(); } @@ -601,8 +599,9 @@ bool SwPostItMgr::CalcRects() if (aPageNum > mPages.size()) { const unsigned long nNumberOfPages = mPages.size(); + mPages.reserve(aPageNum); for (unsigned int j=0; j<aPageNum - nNumberOfPages; ++j) - mPages.push_back( new SwPostItPageItem()); + mPages.emplace_back( new SwPostItPageItem()); } mPages[aPageNum-1]->mvSidebarItems.push_back(pItem); mPages[aPageNum-1]->mPageRect = pItem->maLayoutInfo.mPageFrame; @@ -651,14 +650,14 @@ void SwPostItMgr::PreparePageContainer() if (lContainerSize < lPageSize) { + mPages.reserve(lPageSize); for (int i=0; i<lPageSize - lContainerSize;i++) - mPages.push_back( new SwPostItPageItem()); + mPages.emplace_back( new SwPostItPageItem()); } else if (lContainerSize > lPageSize) { for (int i=mPages.size()-1; i >= lPageSize;--i) { - delete mPages[i]; mPages.pop_back(); } } @@ -686,7 +685,7 @@ void SwPostItMgr::LayoutPostIts() // - place SwPostIts on their initial position // - calculate necessary height for all PostIts together bool bUpdate = false; - for (SwPostItPageItem* pPage : mPages) + for (std::unique_ptr<SwPostItPageItem>& pPage : mPages) { // only layout if there are notes on this page if (pPage->mvSidebarItems.size()>0) @@ -1972,7 +1971,7 @@ void SwPostItMgr::CorrectPositions() { long aAnchorPosX = 0; long aAnchorPosY = 0; - for (SwPostItPageItem* pPage : mPages) + for (std::unique_ptr<SwPostItPageItem>& pPage : mPages) { for (auto const& item : pPage->mvSidebarItems) { |