summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2012-08-15 14:09:51 +0200
committerMichael Stahl <mstahl@redhat.com>2012-08-16 18:44:05 +0200
commitd3bdadad61d95cc802c869d989ed94326a7066de (patch)
treebc5e023e35c1a28bd7f3cc730a3a281ef1323fef
parentConvert pUndoStack in SdrModel class from Container to std::deque (diff)
downloadcore-d3bdadad61d95cc802c869d989ed94326a7066de.tar.gz
core-d3bdadad61d95cc802c869d989ed94326a7066de.zip
Convert pRedoStack in SdrModel class from Container to std::deque
Change-Id: I0535175c4881a1ea55d7cb7361ae78bb81aa10c6
-rw-r--r--svx/inc/svx/svdmodel.hxx6
-rw-r--r--svx/source/svdraw/svdmodel.cxx15
2 files changed, 12 insertions, 9 deletions
diff --git a/svx/inc/svx/svdmodel.hxx b/svx/inc/svx/svdmodel.hxx
index 2f1ad6b4a1f1..dd2919c6808d 100644
--- a/svx/inc/svx/svdmodel.hxx
+++ b/svx/inc/svx/svdmodel.hxx
@@ -193,7 +193,7 @@ protected:
SfxStyleSheet* pDefaultStyleSheet;
sfx2::LinkManager* pLinkManager; // LinkManager
std::deque<SfxUndoAction*>* pUndoStack;
- Container* pRedoStack;
+ std::deque<SfxUndoAction*>* pRedoStack;
SdrUndoGroup* pAktUndoGroup; // Fuer mehrstufige
sal_uInt16 nUndoLevel; // Undo-Klammerung
sal_uInt16 nProgressPercent; // fuer den ProgressBar-Handler
@@ -579,8 +579,8 @@ public:
sal_uIntPtr GetUndoActionCount() const { return pUndoStack!=NULL ? pUndoStack->size() : 0; }
const SfxUndoAction* GetUndoAction(sal_uIntPtr nNum) const { return (SfxUndoAction*)(pUndoStack!=NULL ? (*pUndoStack)[nNum] : NULL); }
// RedoAction(0) ist die aktuelle (also die des letzten Undo)
- sal_uIntPtr GetRedoActionCount() const { return pRedoStack!=NULL ? pRedoStack->Count() : 0; }
- const SfxUndoAction* GetRedoAction(sal_uIntPtr nNum) const { return (SfxUndoAction*)(pRedoStack!=NULL ? pRedoStack->GetObject(nNum) : NULL); }
+ sal_uIntPtr GetRedoActionCount() const { return pRedoStack!=NULL ? pRedoStack->size() : 0; }
+ const SfxUndoAction* GetRedoAction(sal_uIntPtr nNum) const { return (SfxUndoAction*)(pRedoStack!=NULL ? (*pRedoStack)[nNum] : NULL); }
bool Undo();
bool Redo();
diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx
index d3c0c380e7dc..14d45d61b962 100644
--- a/svx/source/svdraw/svdmodel.cxx
+++ b/svx/source/svdraw/svdmodel.cxx
@@ -422,8 +422,9 @@ void SdrModel::ClearUndoBuffer()
pUndoStack=NULL;
}
if (pRedoStack!=NULL) {
- while (pRedoStack->Count()!=0) {
- delete (SfxUndoAction*) pRedoStack->Remove(pRedoStack->Count()-1);
+ while (!pRedoStack->empty()) {
+ delete pRedoStack->back();
+ pRedoStack->pop_back();
}
delete pRedoStack;
pRedoStack=NULL;
@@ -446,10 +447,10 @@ bool SdrModel::Undo()
mbUndoEnabled = false;
pDo->Undo();
if(pRedoStack==NULL)
- pRedoStack=new Container(1024,16,16);
+ pRedoStack=new std::deque<SfxUndoAction*>;
SfxUndoAction* p = pUndoStack->front();
pUndoStack->pop_front();
- pRedoStack->Insert(p,(sal_uIntPtr)0);
+ pRedoStack->push_front(p);
mbUndoEnabled = bWasUndoEnabled;
}
}
@@ -473,7 +474,9 @@ bool SdrModel::Redo()
pDo->Redo();
if(pUndoStack==NULL)
pUndoStack=new std::deque<SfxUndoAction*>;
- pUndoStack->push_front((SfxUndoAction*) pRedoStack->Remove((sal_uIntPtr)0));
+ SfxUndoAction* p = pRedoStack->front();
+ pRedoStack->pop_front();
+ pUndoStack->push_front(p);
mbUndoEnabled = bWasUndoEnabled;
}
}
@@ -522,7 +525,7 @@ void SdrModel::ImpPostUndoAction(SdrUndoAction* pUndo)
pUndoStack->pop_back();
}
if (pRedoStack!=NULL)
- pRedoStack->Clear();
+ pRedoStack->clear();
}
}
else