#ifndef _CONTENT_HISTORY_H #define _CONTENT_HISTORY_H #include "tcommon.h" #include "tfilepath.h" #include #include #include #include #undef DVAPI #undef DVVAR #ifdef TNZCORE_EXPORTS #define DVAPI DV_EXPORT_API #define DVVAR DV_EXPORT_VAR #else #define DVAPI DV_IMPORT_API #define DVVAR DV_IMPORT_VAR #endif //!this class keeps tracks of modification times on contents, as well as user and machine info; //!typically used for levels and scene files (or whatever you like...) // it is used for visualitation purposed only in the infoview, in example class DVAPI TContentHistory { bool m_isLevel; std::map m_records; QString m_frozenHistory; const QString currentToString() const; public: //!set isLevel=true if you want to keep track of single-frames modifications TContentHistory(bool isLevel); ~TContentHistory(); TContentHistory *clone() const; //! history can come only from a deserialization //!WARNING! any preexistent history will be erased by calling this method void deserialize(const QString &history); //!the returned string is only for visualitation and serialization const QString serialize() const; //!after calling this method, following history info added will not "merge" with the history until now void fixCurrentHistory(); //!do not call this 2 methods if isLevel==false! (assertion fails) void frameModifiedNow(const TFrameId &id) { frameRangeModifiedNow(id, id); } void frameRangeModifiedNow(const TFrameId &fromId, const TFrameId &toId); //!do not call this method if isLevel==true! (assertion fails) void modifiedNow(); }; #endif