You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-07 12:30:27 +00:00
Unify usage of undo_redo in editor
This commit is contained in:
@@ -30,6 +30,9 @@
|
||||
|
||||
#include "navigation_polygon_editor_plugin.h"
|
||||
|
||||
#include "editor/editor_node.h"
|
||||
#include "editor/editor_undo_redo_manager.h"
|
||||
|
||||
Ref<NavigationPolygon> NavigationPolygonEditor::_ensure_navpoly() const {
|
||||
Ref<NavigationPolygon> navpoly = node->get_navigation_polygon();
|
||||
if (!navpoly.is_valid()) {
|
||||
@@ -73,6 +76,7 @@ void NavigationPolygonEditor::_set_polygon(int p_idx, const Variant &p_polygon)
|
||||
|
||||
void NavigationPolygonEditor::_action_add_polygon(const Variant &p_polygon) {
|
||||
Ref<NavigationPolygon> navpoly = _ensure_navpoly();
|
||||
Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo();
|
||||
undo_redo->add_do_method(navpoly.ptr(), "add_outline", p_polygon);
|
||||
undo_redo->add_undo_method(navpoly.ptr(), "remove_outline", navpoly->get_outline_count());
|
||||
undo_redo->add_do_method(navpoly.ptr(), "make_polygons_from_outlines");
|
||||
@@ -81,6 +85,7 @@ void NavigationPolygonEditor::_action_add_polygon(const Variant &p_polygon) {
|
||||
|
||||
void NavigationPolygonEditor::_action_remove_polygon(int p_idx) {
|
||||
Ref<NavigationPolygon> navpoly = _ensure_navpoly();
|
||||
Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo();
|
||||
undo_redo->add_do_method(navpoly.ptr(), "remove_outline", p_idx);
|
||||
undo_redo->add_undo_method(navpoly.ptr(), "add_outline_at_index", navpoly->get_outline(p_idx), p_idx);
|
||||
undo_redo->add_do_method(navpoly.ptr(), "make_polygons_from_outlines");
|
||||
@@ -89,6 +94,7 @@ void NavigationPolygonEditor::_action_remove_polygon(int p_idx) {
|
||||
|
||||
void NavigationPolygonEditor::_action_set_polygon(int p_idx, const Variant &p_previous, const Variant &p_polygon) {
|
||||
Ref<NavigationPolygon> navpoly = _ensure_navpoly();
|
||||
Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo();
|
||||
undo_redo->add_do_method(navpoly.ptr(), "set_outline", p_idx, p_polygon);
|
||||
undo_redo->add_undo_method(navpoly.ptr(), "set_outline", p_idx, p_previous);
|
||||
undo_redo->add_do_method(navpoly.ptr(), "make_polygons_from_outlines");
|
||||
@@ -104,6 +110,7 @@ void NavigationPolygonEditor::_create_resource() {
|
||||
return;
|
||||
}
|
||||
|
||||
Ref<EditorUndoRedoManager> &undo_redo = EditorNode::get_undo_redo();
|
||||
undo_redo->create_action(TTR("Create Navigation Polygon"));
|
||||
undo_redo->add_do_method(node, "set_navigation_polygon", Ref<NavigationPolygon>(memnew(NavigationPolygon)));
|
||||
undo_redo->add_undo_method(node, "set_navigation_polygon", Variant(Ref<RefCounted>()));
|
||||
|
||||
Reference in New Issue
Block a user