mirror of
https://github.com/godotengine/godot.git
synced 2025-11-01 06:01:14 +00:00
Undo support for locking and grouping for both 2D and 3D
This commit is contained in:
parent
260530f01c
commit
d1fa546dc9
5 changed files with 93 additions and 31 deletions
|
|
@ -88,12 +88,18 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i
|
|||
}
|
||||
undo_redo->commit_action();
|
||||
} else if (p_id == BUTTON_LOCK) {
|
||||
undo_redo->create_action(TTR("Unlock Node"));
|
||||
|
||||
if (n->is_class("CanvasItem") || n->is_class("Spatial")) {
|
||||
n->set_meta("_edit_lock_", Variant());
|
||||
_update_tree();
|
||||
emit_signal("node_changed");
|
||||
|
||||
undo_redo->add_do_method(n, "remove_meta", "_edit_lock_");
|
||||
undo_redo->add_undo_method(n, "set_meta", "_edit_lock_", true);
|
||||
undo_redo->add_do_method(this, "_update_tree", Variant());
|
||||
undo_redo->add_undo_method(this, "_update_tree", Variant());
|
||||
undo_redo->add_do_method(this, "emit_signal", "node_changed");
|
||||
undo_redo->add_undo_method(this, "emit_signal", "node_changed");
|
||||
}
|
||||
undo_redo->commit_action();
|
||||
} else if (p_id == BUTTON_PIN) {
|
||||
|
||||
if (n->is_class("AnimationPlayer")) {
|
||||
|
|
@ -102,11 +108,18 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i
|
|||
}
|
||||
|
||||
} else if (p_id == BUTTON_GROUP) {
|
||||
undo_redo->create_action(TTR("Button Group"));
|
||||
|
||||
if (n->is_class("CanvasItem") || n->is_class("Spatial")) {
|
||||
n->set_meta("_edit_group_", Variant());
|
||||
_update_tree();
|
||||
emit_signal("node_changed");
|
||||
|
||||
undo_redo->add_do_method(n, "remove_meta", "_edit_group_");
|
||||
undo_redo->add_undo_method(n, "set_meta", "_edit_group_", true);
|
||||
undo_redo->add_do_method(this, "_update_tree", Variant());
|
||||
undo_redo->add_undo_method(this, "_update_tree", Variant());
|
||||
undo_redo->add_do_method(this, "emit_signal", "node_changed");
|
||||
undo_redo->add_undo_method(this, "emit_signal", "node_changed");
|
||||
}
|
||||
undo_redo->commit_action();
|
||||
} else if (p_id == BUTTON_WARNING) {
|
||||
|
||||
String config_err = n->get_configuration_warning();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue