Files
XCEngine/docs/api/XCEngine/Editor/Utils/UndoUtils/UndoUtils.md

1.0 KiB
Raw Blame History

UndoUtils

命名空间: XCEngine::Editor::UndoUtils

类型: header utility set

源文件: editor/src/Utils/UndoUtils.h

描述: 提供把任意编辑操作包裹进撤销历史的辅助模板函数。

概述

UndoUtils.h 当前核心就是一个模板工具:

  • ExecuteSceneCommand(IEditorContext&, const std::string&, Func&&)

它的职责很直接:在执行某个编辑动作前后抓取状态快照,并自动把这次操作推入 undo 历史。

当前实现说明

  • 若当前还有 pending interactive change会先 finalize。
  • 先抓 before 快照。
  • 执行传入的 func
  • 再抓 after 快照并调用 PushCommand()
  • 同时兼容 void 返回和非 void 返回两种调用。

设计说明

这个工具很实用,因为它把“如何接入 undo”从按钮逻辑、菜单逻辑和命令逻辑里抽离出来了。

相关文档