1.0 KiB
1.0 KiB
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”从按钮逻辑、菜单逻辑和命令逻辑里抽离出来了。