60 std::string_view
GetName()
const {
return m_name.
sv(); }
69 bool HasChanged()
const;
73 std::vector<std::unique_ptr<UndoStep>> m_steps;
130 bool CanUndo()
const {
return !m_undoStack.empty(); }
131 bool CanRedo()
const {
return !m_redoStack.empty(); }
152 template<
typename T,
typename ...Args>
164 std::vector<std::unique_ptr<UndoEntry>> m_undoStack;
165 std::vector<std::unique_ptr<UndoEntry>> m_redoStack;
167 std::unique_ptr<UndoEntry> m_openUndoEntry;
168 size_t m_openUndoDepth;
Definition: UndoSystem.h:58
std::string_view GetName() const
Definition: UndoSystem.h:60
Definition: UndoSystem.h:31
virtual ~UndoStep()=default
virtual void Redo()
Definition: UndoSystem.h:40
virtual void Undo()
Definition: UndoSystem.h:37
virtual bool HasChanged() const
Definition: UndoSystem.h:47
virtual void Swap()
Definition: UndoSystem.h:43
Definition: UndoSystem.h:112
size_t GetEntryDepth() const
Definition: UndoSystem.h:146
void Clear()
Definition: UndoSystem.cpp:110
void Redo()
Definition: UndoSystem.cpp:95
size_t GetCurrentEntry() const
Definition: UndoSystem.cpp:53
void ResetEntry()
Definition: UndoSystem.cpp:137
size_t GetStateHash()
Definition: UndoSystem.cpp:71
size_t GetNumEntries() const
Definition: UndoSystem.cpp:48
void Undo()
Definition: UndoSystem.cpp:80
void AddUndoStep(Args &&...args)
Definition: UndoSystem.h:153
bool CanRedo() const
Definition: UndoSystem.h:131
const UndoEntry * GetEntry(size_t stackIdx) const
Definition: UndoSystem.cpp:58
void BeginEntry(std::string_view name)
Definition: UndoSystem.cpp:124
bool CanUndo() const
Definition: UndoSystem.h:130
void EndEntry()
Definition: UndoSystem.cpp:146
~UndoSystem()
Definition: UndoSystem.cpp:44
UndoSystem()
Definition: UndoSystem.cpp:37
Definition: StringName.h:18
std::string_view sv() const
Definition: StringName.h:46
Definition: ActionBinder.h:14