Restore undo/redo

Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
carlitosan
2021-12-06 12:12:46 -08:00
parent c218fd9b77
commit a76e9bba69
10 changed files with 68 additions and 37 deletions
@@ -8,22 +8,27 @@
#pragma once
#include <ScriptCanvas/Bus/UndoBus.h>
#include <Editor/Undo/ScriptCanvasUndoManager.h>
namespace ScriptCanvasEditor
{
class ScriptCanvasMemoryAsset;
// Helper class that provides the implementation for UndoRequestBus
class UndoHelper : UndoRequestBus::Handler
class UndoHelper
: public UndoRequestBus::Handler
, public AzToolsFramework::UndoSystem::IUndoNotify
{
public:
UndoHelper(ScriptCanvasMemoryAsset& memoryAsset);
UndoHelper();
UndoHelper(SourceHandle source);
~UndoHelper();
UndoCache* GetSceneUndoCache() override;
UndoData CreateUndoData() override;
void SetSource(SourceHandle source);
void BeginUndoBatch(AZStd::string_view label) override;
void EndUndoBatch() override;
void AddUndo(AzToolsFramework::UndoSystem::URSequencePoint* seqPoint) override;
@@ -41,6 +46,7 @@ namespace ScriptCanvasEditor
bool CanRedo() const override;
private:
void OnUndoStackChanged() override;
void UpdateCache();
@@ -51,7 +57,7 @@ namespace ScriptCanvasEditor
};
Status m_status = Status::Idle;
ScriptCanvasMemoryAsset& m_memoryAsset;
SceneUndoState m_undoState;
SourceHandle m_memoryAsset;
};
}