ACF $AcfVersion:0$
Public Types | Public Member Functions | List of all members
idoc::IDocumentStateComparator Class Referenceabstract

Allows to store some document state used as reference for comparison. More...

#include <IDocumentStateComparator.h>

Inheritance diagram for idoc::IDocumentStateComparator:
istd::IChangeable istd::IPolymorphic idoc::IUndoManager idoc::CSerializedUndoManagerComp

Public Types

enum  DocumentChangeFlag { DCF_UNKNOWN , DCF_EQUAL , DCF_DIFFERENT }
 Flag indicating the relationship between current and stored document state. More...
 
- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 

Public Member Functions

virtual bool HasStoredDocumentState () const =0
 Check if there is stored document state available.
 
virtual bool StoreDocumentState ()=0
 Store state of the document.
 
virtual bool RestoreDocumentState ()=0
 Restore last stored document state.
 
virtual DocumentChangeFlag GetDocumentChangeFlag () const =0
 Check if document state is the same as stored state.
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 

Additional Inherited Members

- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 

Detailed Description

Allows to store some document state used as reference for comparison.

This interface provides functionality for tracking document state changes by storing snapshots of document state and comparing current state against stored snapshots. This is fundamental to undo/redo functionality and dirty state tracking.

The comparator can:

Usage Example
idoc::IDocumentStateComparator* comparator = GetStateComparator();
// Store initial document state (e.g., after loading or saving)
comparator->StoreDocumentState();
// Make changes to document...
// Check if document has been modified
comparator->GetDocumentChangeFlag();
qDebug() << "Document has been modified";
qDebug() << "Document is unchanged";
}
// Restore to stored state (undo all changes)
if (comparator->HasStoredDocumentState()) {
comparator->RestoreDocumentState();
qDebug() << "Document restored to previous state";
}
// After saving, store new state as clean baseline
SaveDocument();
comparator->StoreDocumentState();
Allows to store some document state used as reference for comparison.
virtual bool HasStoredDocumentState() const =0
Check if there is stored document state available.
virtual bool RestoreDocumentState()=0
Restore last stored document state.
virtual DocumentChangeFlag GetDocumentChangeFlag() const =0
Check if document state is the same as stored state.
DocumentChangeFlag
Flag indicating the relationship between current and stored document state.
@ DCF_DIFFERENT
Current document state differs from the stored one (has changes).
@ DCF_EQUAL
Current document state equals the stored one (no changes).
virtual bool StoreDocumentState()=0
Store state of the document.
See also
IUndoManager

Definition at line 59 of file IDocumentStateComparator.h.

Member Enumeration Documentation

◆ DocumentChangeFlag

Flag indicating the relationship between current and stored document state.

Enumerator
DCF_UNKNOWN 

There is no information about document change (no state stored).

DCF_EQUAL 

Current document state equals the stored one (no changes).

DCF_DIFFERENT 

Current document state differs from the stored one (has changes).

Definition at line 65 of file IDocumentStateComparator.h.

Member Function Documentation

◆ GetDocumentChangeFlag()

virtual DocumentChangeFlag idoc::IDocumentStateComparator::GetDocumentChangeFlag ( ) const
pure virtual

Check if document state is the same as stored state.

Returns
Flag indicating whether current state matches stored state.

Implemented in idoc::CSerializedUndoManagerComp.

◆ HasStoredDocumentState()

virtual bool idoc::IDocumentStateComparator::HasStoredDocumentState ( ) const
pure virtual

Check if there is stored document state available.

Returns
True if a document state has been stored and is available for comparison.

Implemented in idoc::CSerializedUndoManagerComp.

◆ RestoreDocumentState()

virtual bool idoc::IDocumentStateComparator::RestoreDocumentState ( )
pure virtual

Restore last stored document state.

Returns
True if state was successfully restored, false otherwise.

This reverts the document to the last stored state, effectively undoing all changes made since the state was stored.

Implemented in idoc::CSerializedUndoManagerComp.

◆ StoreDocumentState()

virtual bool idoc::IDocumentStateComparator::StoreDocumentState ( )
pure virtual

Store state of the document.

Returns
True if state was successfully stored, false otherwise.

This creates a snapshot of the current document state that can be used for comparison or restoration later.

Implemented in idoc::CSerializedUndoManagerComp.


The documentation for this class was generated from the following file: