#include <px_ChangeHistory.h>
px_ChangeHistory::px_ChangeHistory | ( | pt_PieceTable * | pT | ) |
px_ChangeHistory::~px_ChangeHistory | ( | ) |
References m_vecChangeRecords, and UT_VECTOR_PURGEALL.
void px_ChangeHistory::_invalidateHistory | ( | void | ) | [protected] |
void px_ChangeHistory::_invalidateRedo | ( | void | ) | [protected] |
References UT_GenericVector< T >::deleteNthItem(), UT_GenericVector< T >::getItemCount(), UT_GenericVector< T >::getNthItem(), PX_ChangeRecord::isFromThisDoc(), m_iAdjustOffset, m_savePosition, m_undoPosition, m_vecChangeRecords, and UT_return_if_fail.
Referenced by addChangeRecord(), and coalesceHistory().
void px_ChangeHistory::_printHistory | ( | UT_sint32 | i | ) | const [protected] |
bool px_ChangeHistory::addChangeRecord | ( | PX_ChangeRecord * | pcr | ) |
References _invalidateRedo(), UT_GenericVector< T >::addItem(), clearHistory(), getDoc(), PX_ChangeRecord::getDocument(), PX_ChangeRecord::getIndexAP(), UT_GenericVector< T >::getItemCount(), PX_ChangeRecord::getPosition(), PX_ChangeRecord::getType(), UT_GenericVector< T >::insertItemAt(), pt_PieceTable::isDoingTheDo(), PX_ChangeRecord::isFromThisDoc(), m_bOverlap, m_iAdjustOffset, m_pPT, m_savePosition, m_undoPosition, m_vecChangeRecords, PX_ChangeRecord::setDocument(), UT_ASSERT, UT_ASSERT_HARMLESS, UT_SHOULD_NOT_HAPPEN, and xxx_UT_DEBUGMSG.
Referenced by pt_PieceTable::_changePointWithNotify(), pt_PieceTable::_deleteFmtMarkWithNotify(), pt_PieceTable::_deleteObjectWithNotify(), pt_PieceTable::_deleteSpanWithNotify(), pt_PieceTable::_deleteStruxWithNotify(), pt_PieceTable::_fmtChangeFmtMarkWithNotify(), pt_PieceTable::_fmtChangeObjectWithNotify(), pt_PieceTable::_fmtChangeSpanWithNotify(), pt_PieceTable::_fmtChangeStruxWithNotify(), pt_PieceTable::_insertFmtMarkAfterBlockWithNotify(), pt_PieceTable::_insertFmtMarkFragWithNotify(), pt_PieceTable::_realChangeStruxForLists(), pt_PieceTable::_realInsertObject(), pt_PieceTable::_realInsertSpan(), pt_PieceTable::_realInsertStrux(), pt_PieceTable::beginMultiStepGlob(), pt_PieceTable::beginUserAtomicGlob(), pt_PieceTable::createAndSendCR(), pt_PieceTable::endMultiStepGlob(), and pt_PieceTable::endUserAtomicGlob().
bool px_ChangeHistory::canDo | ( | bool | bUndo | ) | const |
References getRedo(), getUndo(), m_bOverlap, m_iAdjustOffset, and setScanningUndoGLOB().
Referenced by pt_PieceTable::canDo().
void px_ChangeHistory::clearHistory | ( | ) |
References UT_GenericVector< T >::clear(), m_bOverlap, m_bScanUndoGLOB, m_iAdjustOffset, m_iMinUndo, m_savePosition, m_undoPosition, m_vecChangeRecords, and UT_VECTOR_PURGEALL.
Referenced by addChangeRecord(), didRedo(), and didUndo().
void px_ChangeHistory::coalesceHistory | ( | const PX_ChangeRecord * | pcr | ) |
References _invalidateRedo(), PX_ChangeRecord_Span::coalesce(), UT_GenericVector< T >::getNthItem(), PX_ChangeRecord::getType(), PX_ChangeRecord::isFromThisDoc(), m_iAdjustOffset, m_undoPosition, m_vecChangeRecords, PX_ChangeRecord::PXT_DeleteSpan, PX_ChangeRecord::PXT_InsertSpan, UT_ASSERT_HARMLESS, UT_return_if_fail, and xxx_UT_DEBUGMSG.
Referenced by pt_PieceTable::_deleteSpanWithNotify(), and pt_PieceTable::_realInsertSpan().
bool px_ChangeHistory::didRedo | ( | void | ) |
bool px_ChangeHistory::didUndo | ( | void | ) |
bool px_ChangeHistory::doesOverlap | ( | PX_ChangeRecord * | pcr, | |
PT_DocPosition | low, | |||
PT_DocPosition | high | |||
) | const |
References getCRRange().
bool px_ChangeHistory::getCRRange | ( | PX_ChangeRecord * | pcr, | |
PT_DocPosition & | posLow, | |||
PT_DocPosition & | posHigh | |||
) | const |
References getDoc(), and PX_ChangeRecord::getPosition().
Referenced by doesOverlap(), getRedo(), and getUndo().
PD_Document * px_ChangeHistory::getDoc | ( | void | ) | const |
References pt_PieceTable::getDocument(), and m_pPT.
Referenced by addChangeRecord(), getCRRange(), getRedo(), and getUndo().
bool px_ChangeHistory::getNthUndo | ( | PX_ChangeRecord ** | ppcr, | |
UT_uint32 | undoNdx | |||
) | const |
This method returns the nth element off the undo stack. 0 returns the top element 1 returns the next element etc The result is not adjusted for undo's in the presence of remote changerecords and no attempt is made to see if an undo is legal (ie doesn't overlap with a later remote CR) or not.
References UT_GenericVector< T >::getNthItem(), PX_ChangeRecord::isFromThisDoc(), m_iAdjustOffset, m_iMinUndo, m_undoPosition, m_vecChangeRecords, and UT_return_val_if_fail.
Referenced by pt_PieceTable::_lastUndoIsThisFmtMark().
bool px_ChangeHistory::getRedo | ( | PX_ChangeRecord ** | ppcr | ) | const |
References doesOverlap(), PD_Document::getAdjustmentForCR(), getCRRange(), getDoc(), UT_GenericVector< T >::getItemCount(), UT_GenericVector< T >::getNthItem(), PX_ChangeRecord::getPosition(), PX_ChangeRecord::isFromThisDoc(), m_bOverlap, m_iAdjustOffset, m_undoPosition, m_vecChangeRecords, PX_ChangeRecord::setAdjustment(), UT_return_val_if_fail, and xxx_UT_DEBUGMSG.
Referenced by canDo(), and pt_PieceTable::redoCmd().
UT_sint32 px_ChangeHistory::getSavePosition | ( | void | ) | const |
References m_savePosition.
Referenced by pt_PieceTable::_realChangeSpanFmt(), and pt_PieceTable::undoCount().
bool px_ChangeHistory::getUndo | ( | PX_ChangeRecord ** | ppcr, | |
bool | bStatic = false | |||
) | const |
References doesOverlap(), PD_Document::getAdjustmentForCR(), getCRRange(), getDoc(), UT_GenericVector< T >::getNthItem(), PX_ChangeRecord::getPosition(), PX_ChangeRecord::getType(), PX_ChangeRecord::isFromThisDoc(), isScanningUndoGLOB(), m_bOverlap, m_iAdjustOffset, m_iMinUndo, m_undoPosition, m_vecChangeRecords, PX_ChangeRecord::setAdjustment(), setScanningUndoGLOB(), UT_ASSERT, UT_DEBUGMSG, and UT_return_val_if_fail.
Referenced by pt_PieceTable::_canCoalesceDeleteSpan(), pt_PieceTable::_canCoalesceInsertSpan(), pt_PieceTable::_realChangeSpanFmt(), canDo(), and pt_PieceTable::undoCmd().
UT_uint32 px_ChangeHistory::getUndoPos | ( | void | ) | const |
References m_iAdjustOffset, and m_undoPosition.
Referenced by pt_PieceTable::_realChangeSpanFmt(), and pt_PieceTable::undoCount().
bool px_ChangeHistory::isDirty | ( | void | ) | const |
References m_savePosition, and m_undoPosition.
Referenced by pt_PieceTable::_canCoalesceInsertSpan(), and pt_PieceTable::isDirty().
bool px_ChangeHistory::isScanningUndoGLOB | ( | void | ) | const [inline] |
Referenced by getUndo().
void px_ChangeHistory::setClean | ( | void | ) |
References m_savePosition, and m_undoPosition.
Referenced by pt_PieceTable::setClean().
void px_ChangeHistory::setSavePosition | ( | UT_sint32 | savePosition | ) |
References m_savePosition.
Referenced by pt_PieceTable::_realChangeSpanFmt().
void px_ChangeHistory::setScanningUndoGLOB | ( | bool | bTrue | ) | const [inline] |
Referenced by canDo(), getUndo(), pt_PieceTable::redoCmd(), and pt_PieceTable::undoCmd().
bool px_ChangeHistory::m_bOverlap [mutable, protected] |
Referenced by addChangeRecord(), canDo(), clearHistory(), didRedo(), didUndo(), getRedo(), and getUndo().
bool px_ChangeHistory::m_bScanUndoGLOB [mutable, protected] |
Referenced by clearHistory().
UT_sint32 px_ChangeHistory::m_iAdjustOffset [mutable, protected] |
Referenced by _invalidateRedo(), addChangeRecord(), canDo(), clearHistory(), coalesceHistory(), didRedo(), didUndo(), getNthUndo(), getRedo(), getUndo(), and getUndoPos().
UT_sint32 px_ChangeHistory::m_iMinUndo [mutable, protected] |
Referenced by clearHistory(), didUndo(), getNthUndo(), and getUndo().
pt_PieceTable* px_ChangeHistory::m_pPT [protected] |
Referenced by addChangeRecord(), and getDoc().
UT_sint32 px_ChangeHistory::m_savePosition [protected] |
Referenced by _invalidateRedo(), addChangeRecord(), clearHistory(), didRedo(), didUndo(), getSavePosition(), isDirty(), setClean(), and setSavePosition().
UT_sint32 px_ChangeHistory::m_undoPosition [protected] |
Referenced by _invalidateRedo(), addChangeRecord(), clearHistory(), coalesceHistory(), didRedo(), didUndo(), getNthUndo(), getRedo(), getUndo(), getUndoPos(), isDirty(), and setClean().
UT_GenericVector<PX_ChangeRecord *> px_ChangeHistory::m_vecChangeRecords [protected] |
Referenced by _invalidateRedo(), addChangeRecord(), clearHistory(), coalesceHistory(), didRedo(), didUndo(), getNthUndo(), getRedo(), getUndo(), and ~px_ChangeHistory().