diff options
-rw-r--r-- | include/svx/svdundo.hxx | 8 | ||||
-rw-r--r-- | sc/source/core/data/drwlayer.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/view/drawvie4.cxx | 4 | ||||
-rw-r--r-- | sd/source/ui/view/sdview.cxx | 11 | ||||
-rw-r--r-- | svx/source/svdraw/svdmodel.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdundo.cxx | 31 |
6 files changed, 23 insertions, 35 deletions
diff --git a/include/svx/svdundo.hxx b/include/svx/svdundo.hxx index 7a0d9b7f9041..c134fb986590 100644 --- a/include/svx/svdundo.hxx +++ b/include/svx/svdundo.hxx @@ -85,7 +85,7 @@ public: class SVX_DLLPUBLIC SdrUndoGroup final : public SdrUndoAction { - std::vector<SdrUndoAction*> aBuf; + std::vector<std::unique_ptr<SdrUndoAction>> maActions; // No expanded description of the Action (contains %O) OUString aComment; @@ -98,9 +98,9 @@ public: virtual ~SdrUndoGroup() override; void Clear(); - sal_Int32 GetActionCount() const { return aBuf.size(); } - SdrUndoAction* GetAction(sal_Int32 nNum) const { return aBuf[nNum]; } - void AddAction(SdrUndoAction* pAct); + sal_Int32 GetActionCount() const { return maActions.size(); } + SdrUndoAction* GetAction(sal_Int32 nNum) const { return maActions[nNum].get(); } + void AddAction(std::unique_ptr<SdrUndoAction> pAct); void SetComment(const OUString& rStr) { aComment=rStr; } void SetObjDescription(const OUString& rStr) { aObjDescription=rStr; } diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx index 1e97aa0600f8..adf396026221 100644 --- a/sc/source/core/data/drwlayer.cxx +++ b/sc/source/core/data/drwlayer.cxx @@ -1193,7 +1193,7 @@ void ScDrawLayer::AddCalcUndo( std::unique_ptr<SdrUndoAction> pUndo ) if (!pUndoGroup) pUndoGroup.reset(new SdrUndoGroup(*this)); - pUndoGroup->AddAction( pUndo.release() ); + pUndoGroup->AddAction( std::move(pUndo) ); } } diff --git a/sc/source/ui/view/drawvie4.cxx b/sc/source/ui/view/drawvie4.cxx index ae640d7f1708..f884429f6ad1 100644 --- a/sc/source/ui/view/drawvie4.cxx +++ b/sc/source/ui/view/drawvie4.cxx @@ -518,7 +518,7 @@ void ScDrawView::SetMarkedOriginalSize() { tools::Rectangle aDrawRect = pObj->GetLogicRect(); - pUndoGroup->AddAction( new SdrUndoGeoObj( *pObj ) ); + pUndoGroup->AddAction( o3tl::make_unique<SdrUndoGeoObj>( *pObj ) ); pObj->Resize( aDrawRect.TopLeft(), Fraction( aOriginalSize.Width(), aDrawRect.GetWidth() ), Fraction( aOriginalSize.Height(), aDrawRect.GetHeight() ) ); ++nDone; @@ -581,7 +581,7 @@ void ScDrawView::FitToCellSize() aCellRect.setHeight(static_cast<double>(aGraphicRect.GetHeight()) * fScaleMin); } - pUndoGroup->AddAction( new SdrUndoGeoObj( *pObj ) ); + pUndoGroup->AddAction( o3tl::make_unique<SdrUndoGeoObj>( *pObj ) ); pObj->SetSnapRect(aCellRect); diff --git a/sd/source/ui/view/sdview.cxx b/sd/source/ui/view/sdview.cxx index 5d753fe4aaa5..bd5411a88157 100644 --- a/sd/source/ui/view/sdview.cxx +++ b/sd/source/ui/view/sdview.cxx @@ -886,7 +886,7 @@ void View::SetMarkedOriginalSize() { ::tools::Rectangle aDrawRect( pObj->GetLogicRect() ); - pUndoGroup->AddAction( mrDoc.GetSdrUndoFactory().CreateUndoGeoObject( *pObj ) ); + pUndoGroup->AddAction( std::unique_ptr<SdrUndoAction>(mrDoc.GetSdrUndoFactory().CreateUndoGeoObject( *pObj )) ); pObj->Resize( aDrawRect.TopLeft(), Fraction( aOleSize.Width(), aDrawRect.GetWidth() ), Fraction( aOleSize.Height(), aDrawRect.GetHeight() ) ); } @@ -896,7 +896,7 @@ void View::SetMarkedOriginalSize() { const SdrGrafObj* pSdrGrafObj = static_cast< const SdrGrafObj* >(pObj); const Size aSize = pSdrGrafObj->getOriginalSize( ); - pUndoGroup->AddAction( GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pObj ) ); + pUndoGroup->AddAction( std::unique_ptr<SdrUndoAction>(GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pObj )) ); ::tools::Rectangle aRect( pObj->GetLogicRect() ); aRect.SetSize( aSize ); pObj->SetLogicRect( aRect ); @@ -1334,8 +1334,7 @@ void View::ChangeMarkedObjectsBulletsNumbering( pOutliner->SetText(*(pText->GetOutlinerParaObject())); if (bUndoEnabled) { - SdrUndoObjSetText* pTxtUndo = dynamic_cast< SdrUndoObjSetText* >(pSdrModel->GetSdrUndoFactory().CreateUndoObjectSetText(*pTextObj, nCellIndex)); - pUndoGroup->AddAction(pTxtUndo); + pUndoGroup->AddAction(std::unique_ptr<SdrUndoAction>(pSdrModel->GetSdrUndoFactory().CreateUndoObjectSetText(*pTextObj, nCellIndex))); } if ( !bToggleOn ) { @@ -1365,8 +1364,8 @@ void View::ChangeMarkedObjectsBulletsNumbering( pOutliner->SetText(*pParaObj); if (bUndoEnabled) { - SdrUndoObjSetText* pTxtUndo = dynamic_cast< SdrUndoObjSetText* >(pSdrModel->GetSdrUndoFactory().CreateUndoObjectSetText(*pTextObj, 0)); - pUndoGroup->AddAction(pTxtUndo); + pUndoGroup->AddAction( + std::unique_ptr<SdrUndoAction>(pSdrModel->GetSdrUndoFactory().CreateUndoObjectSetText(*pTextObj, 0))); } if ( !bToggleOn ) { diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx index 2c1576d4988a..9f83988fc7b6 100644 --- a/svx/source/svdraw/svdmodel.cxx +++ b/svx/source/svdraw/svdmodel.cxx @@ -574,7 +574,7 @@ void SdrModel::AddUndo(SdrUndoAction* pUndo) { if (pCurrentUndoGroup) { - pCurrentUndoGroup->AddAction(pUndo); + pCurrentUndoGroup->AddAction(std::unique_ptr<SdrUndoAction>(pUndo)); } else { diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx index d990914a8e6a..e4b18f3c269e 100644 --- a/svx/source/svdraw/svdundo.cxx +++ b/svx/source/svdraw/svdundo.cxx @@ -110,44 +110,33 @@ ViewShellId SdrUndoAction::GetViewShellId() const SdrUndoGroup::SdrUndoGroup(SdrModel& rNewMod) : SdrUndoAction(rNewMod), - aBuf(), eFunction(SdrRepeatFunc::NONE) {} SdrUndoGroup::~SdrUndoGroup() { - Clear(); } void SdrUndoGroup::Clear() { - for (sal_Int32 nu=0; nu<GetActionCount(); nu++) { - SdrUndoAction* pAct=GetAction(nu); - delete pAct; - } - aBuf.clear(); + maActions.clear(); } -void SdrUndoGroup::AddAction(SdrUndoAction* pAct) +void SdrUndoGroup::AddAction(std::unique_ptr<SdrUndoAction> pAct) { - aBuf.push_back(pAct); + maActions.push_back(std::move(pAct)); } void SdrUndoGroup::Undo() { - for (sal_Int32 nu=GetActionCount(); nu>0;) { - nu--; - SdrUndoAction* pAct=GetAction(nu); - pAct->Undo(); - } + for (auto it = maActions.rbegin(); it != maActions.rend(); ++it) + (*it)->Undo(); } void SdrUndoGroup::Redo() { - for (sal_Int32 nu=0; nu<GetActionCount(); nu++) { - SdrUndoAction* pAct=GetAction(nu); - pAct->Redo(); - } + for (std::unique_ptr<SdrUndoAction> & pAction : maActions) + pAction->Redo(); } OUString SdrUndoGroup::GetComment() const @@ -282,7 +271,7 @@ SdrUndoAttrObj::SdrUndoAttrObj(SdrObject& rNewObj, bool bStyleSheet1, bool bSave for(size_t nObjNum = 0; nObjNum < nObjCount; ++nObjNum) { pUndoGroup->AddAction( - new SdrUndoAttrObj(*pOL->GetObj(nObjNum), bStyleSheet1)); + o3tl::make_unique<SdrUndoAttrObj>(*pOL->GetObj(nObjNum), bStyleSheet1)); } } @@ -585,7 +574,7 @@ SdrUndoGeoObj::SdrUndoGeoObj(SdrObject& rNewObj) pUndoGroup.reset(new SdrUndoGroup(pObj->getSdrModelFromSdrObject())); const size_t nObjCount = pOL->GetObjCount(); for (size_t nObjNum = 0; nObjNum<nObjCount; ++nObjNum) { - pUndoGroup->AddAction(new SdrUndoGeoObj(*pOL->GetObj(nObjNum))); + pUndoGroup->AddAction(o3tl::make_unique<SdrUndoGeoObj>(*pOL->GetObj(nObjNum))); } } else @@ -1431,7 +1420,7 @@ SdrUndoDelPage::SdrUndoDelPage(SdrPage& rNewPg) pUndoGroup.reset( new SdrUndoGroup(rMod) ); } - pUndoGroup->AddAction(rMod.GetSdrUndoFactory().CreateUndoPageRemoveMasterPage(*pDrawPage)); + pUndoGroup->AddAction(std::unique_ptr<SdrUndoAction>(rMod.GetSdrUndoFactory().CreateUndoPageRemoveMasterPage(*pDrawPage))); } } } |