diff options
Diffstat (limited to 'sw/source/core/undo/unfmco.cxx')
-rw-r--r-- | sw/source/core/undo/unfmco.cxx | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/sw/source/core/undo/unfmco.cxx b/sw/source/core/undo/unfmco.cxx index eba1943e4c..620d730df8 100644 --- a/sw/source/core/undo/unfmco.cxx +++ b/sw/source/core/undo/unfmco.cxx @@ -36,12 +36,10 @@ #include "pam.hxx" #include "ndtxt.hxx" -#include "undobj.hxx" +#include <UndoCore.hxx> #include "rolbck.hxx" -inline SwDoc& SwUndoIter::GetDoc() const { return *pAktPam->GetDoc(); } - //-------------------------------------------------- @@ -69,49 +67,43 @@ SwUndoFmtColl::~SwUndoFmtColl() } -void SwUndoFmtColl::Undo( SwUndoIter& rUndoIter ) +void SwUndoFmtColl::UndoImpl(::sw::UndoRedoContext & rContext) { - // die alten Werte wieder zurueck - pHistory->TmpRollback( &rUndoIter.GetDoc(), 0 ); + // restore old values + pHistory->TmpRollback(& rContext.GetDoc(), 0); pHistory->SetTmpEnd( pHistory->Count() ); - // setze noch den Cursor auf den Undo-Bereich - SetPaM( rUndoIter ); + // create cursor for undo range + AddUndoRedoPaM(rContext); } -void SwUndoFmtColl::Redo( SwUndoIter& rUndoIter ) +void SwUndoFmtColl::RedoImpl(::sw::UndoRedoContext & rContext) { - // setze Attribut in dem Bereich: - SetPaM( rUndoIter ); - rUndoIter.pLastUndoObj = 0; - - Repeat( rUndoIter ); // Collection setzen + SwPaM & rPam = AddUndoRedoPaM(rContext); - rUndoIter.pLastUndoObj = 0; + DoSetFmtColl(rContext.GetDoc(), rPam); } - -void SwUndoFmtColl::Repeat( SwUndoIter& rUndoIter ) +void SwUndoFmtColl::RepeatImpl(::sw::RepeatContext & rContext) { - if( UNDO_SETFMTCOLL == rUndoIter.GetLastUndoId() && - pFmtColl == ((SwUndoFmtColl*)rUndoIter.pLastUndoObj)->pFmtColl ) - return; + DoSetFmtColl(rContext.GetDoc(), rContext.GetRepeatPaM()); +} +void SwUndoFmtColl::DoSetFmtColl(SwDoc & rDoc, SwPaM & rPaM) +{ // es kann nur eine TextFmtColl auf einen Bereich angewendet werden, // also erfrage auch nur in dem Array - USHORT nPos = rUndoIter.GetDoc().GetTxtFmtColls()->GetPos( + sal_uInt16 const nPos = rDoc.GetTxtFmtColls()->GetPos( (SwTxtFmtColl*)pFmtColl ); - // ist das Format ueberhaupt noch vorhanden? + // does the format still exist? if( USHRT_MAX != nPos ) { - rUndoIter.GetDoc().SetTxtFmtColl( *rUndoIter.pAktPam, + rDoc.SetTxtFmtColl(rPaM, (SwTxtFmtColl*)pFmtColl, mbReset, mbResetListAttrs ); } - - rUndoIter.pLastUndoObj = this; } SwRewriter SwUndoFmtColl::GetRewriter() const |