#include <px_ChangeRecord.h>
typedef enum PX_ChangeRecord::_PXType PX_ChangeRecord::PXType |
PX_ChangeRecord::PX_ChangeRecord | ( | PXType | type, | |
PT_DocPosition | position, | |||
PT_AttrPropIndex | indexNewAP, | |||
UT_uint32 | iXID | |||
) |
PX_ChangeRecord describes a change made to the document. This description should be sufficient to allow undo to work and sufficient to allow the formatter to do a partial format and screen update (if appropriate). The change record must be free of pointers, since it represents what was done to the document -- and not how it was done (that is, not what was done to various intermediate data structures). This also lets it be cached to disk (for autosave and maybe multi-session undo).
PX_ChangeRecord is an abstract base class. We use an enum to remember type, rather than use any of the language run-time stuff.
Create change record
type | Change record type | |
position | Position of the change record | |
indexNewAP | Index of new attribute property |
References m_MyDocUUID.
Referenced by reverse().
PX_ChangeRecord::~PX_ChangeRecord | ( | ) | [virtual] |
Destruct change record
UT_sint32 PX_ChangeRecord::getAdjustment | ( | void | ) | const |
References m_iAdjust.
Referenced by pt_PieceTable::undoCmd().
UT_sint32 PX_ChangeRecord::getCRNumber | ( | void | ) | const [inline] |
Referenced by PacketFactory< _PacketType >::create(), and PD_Document::notifyListeners().
PD_Document * PX_ChangeRecord::getDocument | ( | void | ) | const |
References m_pDoc.
Referenced by px_ChangeHistory::addChangeRecord(), and PD_Document::notifyListeners().
const char * PX_ChangeRecord::getDocUUID | ( | ) | const |
References m_MyDocUUID, s, and UT_UUID::toStringFromBinary().
PT_AttrPropIndex PX_ChangeRecord::getIndexAP | ( | void | ) | const |
Get index of attribute property
References m_indexAP.
Referenced by ABI_Collab_Export::_buildPacket(), pt_PieceTable::_canCoalesceDeleteSpan(), pt_PieceTable::_canCoalesceInsertSpan(), fl_BlockLayout::_doInsertFieldRun(), pt_PieceTable::_doTheDo(), IE_Exp_HTML_Listener::_openFrame(), s_RTF_ListenerWriteDoc::_writeAnnotation(), s_RTF_ListenerWriteDoc::_writeBookmark(), s_RTF_ListenerWriteDoc::_writeHyperlink(), s_RTF_ListenerWriteDoc::_writeImageInRTF(), s_RTF_ListenerWriteDoc::_writeRDFAnchor(), px_ChangeHistory::addChangeRecord(), fl_DocSectionLayout::bl_doclistener_insertAnnotation(), fl_TableLayout::bl_doclistener_insertBlock(), fl_SectionLayout::bl_doclistener_insertBlock(), fl_CellLayout::bl_doclistener_insertCell(), fl_TableLayout::bl_doclistener_insertCell(), fl_HdrFtrSectionLayout::bl_doclistener_insertFirstBlock(), fl_DocSectionLayout::bl_doclistener_insertFootnote(), fl_SectionLayout::bl_doclistener_insertSection(), fl_TableLayout::bl_doclistener_insertTable(), fl_HdrFtrSectionLayout::bl_doclistener_insertTable(), fl_SectionLayout::bl_doclistener_insertTable(), fl_DocListener::change(), PX_ChangeRecord_Span::coalesce(), fl_TOCLayout::doclistener_changeStrux(), fl_CellLayout::doclistener_changeStrux(), fl_TableLayout::doclistener_changeStrux(), fl_HdrFtrShadow::doclistener_changeStrux(), fl_HdrFtrSectionLayout::doclistener_changeStrux(), fl_DocSectionLayout::doclistener_changeStrux(), fl_FrameLayout::doclistener_changeStrux(), fl_EmbedLayout::doclistener_changeStrux(), fl_BlockLayout::doclistener_changeStrux(), fl_BlockLayout::doclistener_insertBlock(), fl_BlockLayout::doclistener_insertFrame(), fl_BlockLayout::doclistener_insertObject(), fl_BlockLayout::doclistener_insertSection(), fl_BlockLayout::doclistener_insertTable(), fl_BlockLayout::doclistener_populateObject(), fl_FrameLayout::insertBlockAfter(), PL_ListenerCoupleCloser::populate(), ODe_AbiDocListener::populate(), IE_Imp_PasteListener::populate(), s_XSL_FO_Listener::populate(), WordPerfect_Listener::populate(), s_WML_Listener::populate(), Text_Listener::populate(), s_RTF_ListenerWriteDoc::populate(), s_RTF_ListenerGetProps::populate(), PL_Psion_Listener::populate(), Passepartout_Listener::populate(), IE_Exp_OpenXML_Listener::populate(), OO_Listener::populate(), s_MIF_Listener::populate(), s_LaTeX_Listener::populate(), s_KWord_1_Listener::populate(), IE_Exp_HTML_StyleListener::populate(), IE_Exp_HTML_BookmarkListener::populate(), IE_Exp_HTML_Listener::populate(), s_HRText_Listener::populate(), IE_Exp_DocRangeListener::populate(), s_DocBook_Listener::populate(), s_Applix_Listener::populate(), s_AbiWord_1_Listener::populate(), PL_ListenerCoupleCloser::populateAfter(), PL_ListenerCoupleCloser::populateBefore(), ODe_AbiDocListener::populateStrux(), TOC_Listener::populateStrux(), IE_Imp_PasteListener::populateStrux(), s_XSL_FO_Listener::populateStrux(), WordPerfect_Listener::populateStrux(), s_WML_Listener::populateStrux(), Text_Listener::populateStrux(), s_RTF_ListenerWriteDoc::populateStrux(), s_RTF_ListenerGetProps::populateStrux(), PL_Psion_Listener::populateStrux(), Passepartout_Listener::populateStrux(), IE_Exp_OpenXML_Listener::populateStrux(), OO_Listener::populateStrux(), s_MsWord_97_Listener::populateStrux(), s_LaTeX_Listener::populateStrux(), LaTeX_Analysis_Listener::populateStrux(), s_KWord_1_Listener::populateStrux(), IE_Exp_HTML_HeaderFooterListener::populateStrux(), IE_Exp_HTML_StyleListener::populateStrux(), IE_Exp_HTML_Listener::populateStrux(), s_HRText_Listener::populateStrux(), IE_Exp_DocRangeListener::populateStrux(), s_DocBook_Listener::populateStrux(), s_Applix_Listener::populateStrux(), s_AbiWord_1_Listener::populateStrux(), fl_ShadowListener::populateStrux(), fl_DocListener::populateStrux(), PL_ListenerCoupleCloser::populateStruxAfter(), and PL_ListenerCoupleCloser::populateStruxBefore().
bool PX_ChangeRecord::getPersistance | ( | void | ) | const |
Get persitance
References m_persistant.
Referenced by px_ChangeHistory::didRedo(), and px_ChangeHistory::didUndo().
PT_DocPosition PX_ChangeRecord::getPosition | ( | void | ) | const |
Get position of change record
References m_iAdjust, and m_position.
Referenced by pt_PieceTable::_canCoalesceDeleteSpan(), pt_PieceTable::_canCoalesceInsertSpan(), pt_PieceTable::_doTheDo(), pt_PieceTable::_lastUndoIsThisFmtMark(), px_ChangeHistory::addChangeRecord(), fl_DocSectionLayout::bl_doclistener_insertAnnotation(), fl_TableLayout::bl_doclistener_insertBlock(), fl_CellLayout::bl_doclistener_insertCell(), fl_TableLayout::bl_doclistener_insertCell(), fl_CellLayout::bl_doclistener_insertEndCell(), fl_EmbedLayout::bl_doclistener_insertEndEmbed(), fl_FrameLayout::bl_doclistener_insertEndFrame(), fl_TableLayout::bl_doclistener_insertEndTable(), fl_TOCLayout::bl_doclistener_insertEndTOC(), fl_DocSectionLayout::bl_doclistener_insertFootnote(), fl_SectionLayout::bl_doclistener_insertSection(), fl_TableLayout::bl_doclistener_insertTable(), fl_HdrFtrSectionLayout::bl_doclistener_insertTable(), fl_SectionLayout::bl_doclistener_insertTable(), fl_DocListener::change(), PX_ChangeRecord_Span::coalesce(), PacketFactory< _PacketType >::create(), fl_BlockLayout::doclistener_deleteFmtMark(), fl_BlockLayout::doclistener_deleteObject(), fl_BlockLayout::doclistener_deleteSpan(), fl_DocSectionLayout::doclistener_deleteStrux(), fl_EmbedLayout::doclistener_deleteStrux(), fl_BlockLayout::doclistener_deleteStrux(), fl_BlockLayout::doclistener_insertBlock(), fl_BlockLayout::doclistener_insertFirstBlock(), fl_BlockLayout::doclistener_insertFmtMark(), fl_BlockLayout::doclistener_insertFrame(), fl_BlockLayout::doclistener_insertObject(), fl_BlockLayout::doclistener_insertSection(), fl_BlockLayout::doclistener_insertSpan(), fl_BlockLayout::doclistener_insertTable(), px_ChangeHistory::getCRRange(), px_ChangeHistory::getRedo(), px_ChangeHistory::getUndo(), fl_FrameLayout::insertBlockAfter(), fl_DocListener::insertStrux(), Stateful_ViewListener::notify(), s_RTF_ListenerWriteDoc::populate(), IE_Exp_HTML_BookmarkListener::populate(), ODe_AbiDocListener::populateStrux(), and TOC_Listener::populateStrux().
PX_ChangeRecord::PXType PX_ChangeRecord::getRevType | ( | void | ) | const |
References m_type, PXT_AddStyle, PXT_ChangeDocProp, PXT_ChangeFmtMark, PXT_ChangeObject, PXT_ChangePoint, PXT_ChangeSpan, PXT_ChangeStrux, PXT_CreateDataItem, PXT_DeleteFmtMark, PXT_DeleteObject, PXT_DeleteSpan, PXT_DeleteStrux, PXT_GlobMarker, PXT_InsertFmtMark, PXT_InsertObject, PXT_InsertSpan, PXT_InsertStrux, PXT_RemoveStyle, and UT_ASSERT_HARMLESS.
Referenced by PX_ChangeRecord_RemoveStyle::reverse(), PX_ChangeRecord_AddStyle::reverse(), PX_ChangeRecord_StruxChange::reverse(), PX_ChangeRecord_Strux::reverse(), PX_ChangeRecord_SpanChange::reverse(), PX_ChangeRecord_Span::reverse(), PX_ChangeRecord_ObjectChange::reverse(), PX_ChangeRecord_Object::reverse(), PX_ChangeRecord_Glob::reverse(), PX_ChangeRecord_FmtMarkChange::reverse(), PX_ChangeRecord_FmtMark::reverse(), PX_ChangeRecord_DocProp::reverse(), PX_ChangeRecord_DataItem::reverse(), and reverse().
PX_ChangeRecord::PXType PX_ChangeRecord::getType | ( | void | ) | const |
Get type of change record
References m_type.
Referenced by ABI_Collab_Export::_buildPacket(), pt_PieceTable::_canCoalesceDeleteSpan(), pt_PieceTable::_canCoalesceInsertSpan(), pt_PieceTable::_doTheDo(), pt_PieceTable::_lastUndoIsThisFmtMark(), px_ChangeHistory::addChangeRecord(), fl_TableLayout::bl_doclistener_insertBlock(), fl_TableLayout::bl_doclistener_insertTable(), fl_SectionLayout::bl_doclistener_insertTable(), fl_DocListener::change(), ABI_Collab_Export::change(), PX_ChangeRecord_Span::coalesce(), px_ChangeHistory::coalesceHistory(), PacketFactory< _PacketType >::create(), fl_BlockLayout::doclistener_changeSpan(), fl_TOCLayout::doclistener_changeStrux(), fl_CellLayout::doclistener_changeStrux(), fl_TableLayout::doclistener_changeStrux(), fl_HdrFtrShadow::doclistener_changeStrux(), fl_HdrFtrSectionLayout::doclistener_changeStrux(), fl_DocSectionLayout::doclistener_changeStrux(), fl_FrameLayout::doclistener_changeStrux(), fl_EmbedLayout::doclistener_changeStrux(), fl_BlockLayout::doclistener_changeStrux(), fl_BlockLayout::doclistener_deleteSpan(), fl_TOCLayout::doclistener_deleteStrux(), fl_CellLayout::doclistener_deleteStrux(), fl_TableLayout::doclistener_deleteStrux(), fl_HdrFtrSectionLayout::doclistener_deleteStrux(), fl_DocSectionLayout::doclistener_deleteStrux(), fl_FrameLayout::doclistener_deleteStrux(), fl_EmbedLayout::doclistener_deleteStrux(), fl_BlockLayout::doclistener_deleteStrux(), fl_BlockLayout::doclistener_insertBlock(), fl_BlockLayout::doclistener_insertFrame(), fl_BlockLayout::doclistener_insertSection(), fl_BlockLayout::doclistener_insertSpan(), fl_BlockLayout::doclistener_insertTable(), PD_Document::getAdjustmentForCR(), px_ChangeHistory::getUndo(), fl_FrameLayout::insertBlockAfter(), fl_DocListener::insertStrux(), Stateful_ViewListener::notify(), PL_ListenerCoupleCloser::populate(), ODe_AbiDocListener::populate(), TOC_Listener::populate(), IE_Imp_PasteListener::populate(), s_XSL_FO_Listener::populate(), WordPerfect_Listener::populate(), s_WML_Listener::populate(), Text_Listener::populate(), s_RTF_ListenerWriteDoc::populate(), s_RTF_ListenerGetProps::populate(), PL_Psion_Listener::populate(), Passepartout_Listener::populate(), IE_Exp_OpenXML_Listener::populate(), OO_Listener::populate(), s_MsWord_97_Listener::populate(), s_MIF_Listener::populate(), s_LaTeX_Listener::populate(), s_KWord_1_Listener::populate(), IE_Exp_HTML_StyleListener::populate(), IE_Exp_HTML_BookmarkListener::populate(), IE_Exp_HTML_Listener::populate(), s_HRText_Listener::populate(), IE_Exp_DocRangeListener::populate(), s_Applix_Listener::populate(), s_AbiWord_1_Listener::populate(), fl_TOCListener::populate(), fl_ShadowListener::populate(), fl_DocListener::populate(), PL_ListenerCoupleCloser::populateAfter(), PL_ListenerCoupleCloser::populateBefore(), ODe_AbiDocListener::populateStrux(), TOC_Listener::populateStrux(), IE_Imp_PasteListener::populateStrux(), s_XSL_FO_Listener::populateStrux(), s_WML_Listener::populateStrux(), Text_Listener::populateStrux(), s_RTF_ListenerWriteDoc::populateStrux(), s_RTF_ListenerGetProps::populateStrux(), PL_Psion_Listener::populateStrux(), Passepartout_Listener::populateStrux(), IE_Exp_OpenXML_Listener::populateStrux(), s_MsWord_97_Listener::populateStrux(), s_MIF_Listener::populateStrux(), s_LaTeX_Listener::populateStrux(), LaTeX_Analysis_Listener::populateStrux(), s_KWord_1_Listener::populateStrux(), IE_Exp_HTML_HeaderFooterListener::populateStrux(), IE_Exp_HTML_StyleListener::populateStrux(), IE_Exp_HTML_Listener::populateStrux(), s_HRText_Listener::populateStrux(), IE_Exp_DocRangeListener::populateStrux(), s_DocBook_Listener::populateStrux(), s_Applix_Listener::populateStrux(), s_AbiWord_1_Listener::populateStrux(), fl_TOCListener::populateStrux(), fl_ShadowListener::populateStrux(), fl_DocListener::populateStrux(), PL_ListenerCoupleCloser::populateStruxAfter(), and PL_ListenerCoupleCloser::populateStruxBefore().
UT_uint32 PX_ChangeRecord::getXID | ( | ) | const [inline] |
References pt_PieceTable::m_iXID.
Referenced by s_AbiWord_1_Listener::populate(), s_AbiWord_1_Listener::populateStrux(), PX_ChangeRecord_RemoveStyle::reverse(), PX_ChangeRecord_AddStyle::reverse(), PX_ChangeRecord_Strux::reverse(), PX_ChangeRecord_Object::reverse(), PX_ChangeRecord_DocProp::reverse(), and PX_ChangeRecord_DataItem::reverse().
bool PX_ChangeRecord::isFromThisDoc | ( | void | ) | const |
returns true if local UUID is the same as the document users UUID. Useful for AbiCollab
References AD_Document::getOrigDocUUID(), m_MyDocUUID, m_pDoc, s, UT_UUID::toString(), UT_UUID::toStringFromBinary(), and xxx_UT_DEBUGMSG.
Referenced by pt_PieceTable::_canCoalesceDeleteSpan(), pt_PieceTable::_canCoalesceInsertSpan(), px_ChangeHistory::_invalidateRedo(), px_ChangeHistory::addChangeRecord(), px_ChangeHistory::coalesceHistory(), px_ChangeHistory::didRedo(), px_ChangeHistory::didUndo(), px_ChangeHistory::getNthUndo(), px_ChangeHistory::getRedo(), and px_ChangeHistory::getUndo().
PX_ChangeRecord * PX_ChangeRecord::reverse | ( | void | ) | const [virtual] |
Create reverse change record of this one
Reimplemented in PX_ChangeRecord_DataItem, PX_ChangeRecord_DocProp, PX_ChangeRecord_FmtMark, PX_ChangeRecord_FmtMarkChange, PX_ChangeRecord_Glob, PX_ChangeRecord_Object, PX_ChangeRecord_ObjectChange, PX_ChangeRecord_Span, PX_ChangeRecord_SpanChange, PX_ChangeRecord_Strux, PX_ChangeRecord_StruxChange, PX_ChangeRecord_AddStyle, and PX_ChangeRecord_RemoveStyle.
References getRevType(), m_iAdjust, m_indexAP, m_iXID, m_position, PX_ChangeRecord(), setAdjustment(), and UT_ASSERT_HARMLESS.
Referenced by pt_PieceTable::undoCmd().
void PX_ChangeRecord::setAdjustment | ( | UT_sint32 | iAdj | ) | const |
References m_iAdjust.
Referenced by px_ChangeHistory::getRedo(), px_ChangeHistory::getUndo(), reverse(), and pt_PieceTable::undoCmd().
bool PX_ChangeRecord::setCRNumber | ( | void | ) | const |
References PD_Document::getNextCRNumber(), m_iCRNumber, m_pDoc, and UT_ASSERT.
Referenced by pt_PieceTable::beginMultiStepGlob(), PD_Document::notifyListeners(), pt_PieceTable::redoCmd(), and pt_PieceTable::undoCmd().
void PX_ChangeRecord::setDocument | ( | const PD_Document * | pDoc | ) | const |
References AD_Document::getMyUUID(), m_MyDocUUID, m_pDoc, and UT_UUID::toBinary().
Referenced by pt_PieceTable::_deleteSpanWithNotify(), pt_PieceTable::_realInsertSpan(), px_ChangeHistory::addChangeRecord(), pt_PieceTable::beginMultiStepGlob(), PD_Document::notifyListeners(), and pt_PieceTable::undoCmd().
void PX_ChangeRecord::setPersistance | ( | bool | persistant | ) | [inline] |
Set persistance
persistance | New persistance setting |
Referenced by pt_PieceTable::_realChangeSpanFmt().
friend class pt_PieceTable [friend] |
UT_sint32 PX_ChangeRecord::m_iAdjust [mutable, private] |
Referenced by getAdjustment(), getPosition(), reverse(), and setAdjustment().
UT_sint32 PX_ChangeRecord::m_iCRNumber [mutable, protected] |
Referenced by setCRNumber().
PT_AttrPropIndex PX_ChangeRecord::m_indexAP [protected] |
Index of attribute property of this change record.
Referenced by getIndexAP(), PX_ChangeRecord_RemoveStyle::reverse(), PX_ChangeRecord_AddStyle::reverse(), PX_ChangeRecord_StruxChange::reverse(), PX_ChangeRecord_Strux::reverse(), PX_ChangeRecord_SpanChange::reverse(), PX_ChangeRecord_Span::reverse(), PX_ChangeRecord_ObjectChange::reverse(), PX_ChangeRecord_Object::reverse(), PX_ChangeRecord_FmtMarkChange::reverse(), PX_ChangeRecord_FmtMark::reverse(), PX_ChangeRecord_DocProp::reverse(), PX_ChangeRecord_DataItem::reverse(), and reverse().
UT_uint32 PX_ChangeRecord::m_iXID [protected] |
Referenced by pt_PieceTable::getTopXID(), reverse(), and pt_PieceTable::setXIDThreshold().
struct uuid PX_ChangeRecord::m_MyDocUUID [private] |
Referenced by getDocUUID(), isFromThisDoc(), PX_ChangeRecord(), and setDocument().
PD_Document* PX_ChangeRecord::m_pDoc [mutable, protected] |
Referenced by getDocument(), isFromThisDoc(), setCRNumber(), and setDocument().
bool PX_ChangeRecord::m_persistant [protected] |
Persistance flag.
Referenced by getPersistance().
PT_DocPosition PX_ChangeRecord::m_position [protected] |
Absolute document position of the change record.
Referenced by PX_ChangeRecord_Span::coalesce(), getPosition(), PX_ChangeRecord_RemoveStyle::reverse(), PX_ChangeRecord_AddStyle::reverse(), PX_ChangeRecord_StruxChange::reverse(), PX_ChangeRecord_Strux::reverse(), PX_ChangeRecord_SpanChange::reverse(), PX_ChangeRecord_Span::reverse(), PX_ChangeRecord_ObjectChange::reverse(), PX_ChangeRecord_Object::reverse(), PX_ChangeRecord_FmtMarkChange::reverse(), PX_ChangeRecord_FmtMark::reverse(), PX_ChangeRecord_DocProp::reverse(), PX_ChangeRecord_DataItem::reverse(), and reverse().
PXType PX_ChangeRecord::m_type [protected] |
Type of this change record.
Referenced by getRevType(), and getType().