|
@@ -3916,6 +3916,8 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
viewport->update();
|
|
viewport->update();
|
|
} break;
|
|
} break;
|
|
case LOCK_SELECTED: {
|
|
case LOCK_SELECTED: {
|
|
|
|
+ undo_redo->create_action(TTR("Lock Selected"));
|
|
|
|
+
|
|
List<Node *> selection = editor_selection->get_selected_node_list();
|
|
List<Node *> selection = editor_selection->get_selected_node_list();
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
@@ -3924,12 +3926,18 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
- canvas_item->set_meta("_edit_lock_", true);
|
|
|
|
- emit_signal("item_lock_status_changed");
|
|
|
|
|
|
+ undo_redo->add_do_method(canvas_item, "set_meta", "_edit_lock_", true);
|
|
|
|
+ undo_redo->add_undo_method(canvas_item, "remove_meta", "_edit_lock_");
|
|
|
|
+ undo_redo->add_do_method(this, "emit_signal", "item_lock_status_changed");
|
|
|
|
+ undo_redo->add_undo_method(this, "emit_signal", "item_lock_status_changed");
|
|
}
|
|
}
|
|
- viewport->update();
|
|
|
|
|
|
+ undo_redo->add_do_method(viewport, "update", Variant());
|
|
|
|
+ undo_redo->add_undo_method(viewport, "update", Variant());
|
|
|
|
+ undo_redo->commit_action();
|
|
} break;
|
|
} break;
|
|
case UNLOCK_SELECTED: {
|
|
case UNLOCK_SELECTED: {
|
|
|
|
+ undo_redo->create_action(TTR("Unlock Selected"));
|
|
|
|
+
|
|
List<Node *> selection = editor_selection->get_selected_node_list();
|
|
List<Node *> selection = editor_selection->get_selected_node_list();
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
@@ -3938,12 +3946,18 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
- canvas_item->set_meta("_edit_lock_", Variant());
|
|
|
|
- emit_signal("item_lock_status_changed");
|
|
|
|
|
|
+ undo_redo->add_do_method(canvas_item, "remove_meta", "_edit_lock_");
|
|
|
|
+ undo_redo->add_undo_method(canvas_item, "set_meta", "_edit_lock_", true);
|
|
|
|
+ undo_redo->add_do_method(this, "emit_signal", "item_lock_status_changed");
|
|
|
|
+ undo_redo->add_undo_method(this, "emit_signal", "item_lock_status_changed");
|
|
}
|
|
}
|
|
- viewport->update();
|
|
|
|
|
|
+ undo_redo->add_do_method(viewport, "update", Variant());
|
|
|
|
+ undo_redo->add_undo_method(viewport, "update", Variant());
|
|
|
|
+ undo_redo->commit_action();
|
|
} break;
|
|
} break;
|
|
case GROUP_SELECTED: {
|
|
case GROUP_SELECTED: {
|
|
|
|
+ undo_redo->create_action(TTR("Group Selected"));
|
|
|
|
+
|
|
List<Node *> selection = editor_selection->get_selected_node_list();
|
|
List<Node *> selection = editor_selection->get_selected_node_list();
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
@@ -3952,12 +3966,18 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
- canvas_item->set_meta("_edit_group_", true);
|
|
|
|
- emit_signal("item_group_status_changed");
|
|
|
|
|
|
+ undo_redo->add_do_method(canvas_item, "set_meta", "_edit_group_", true);
|
|
|
|
+ undo_redo->add_undo_method(canvas_item, "remove_meta", "_edit_group_");
|
|
|
|
+ undo_redo->add_do_method(this, "emit_signal", "item_group_status_changed");
|
|
|
|
+ undo_redo->add_undo_method(this, "emit_signal", "item_group_status_changed");
|
|
}
|
|
}
|
|
- viewport->update();
|
|
|
|
|
|
+ undo_redo->add_do_method(viewport, "update", Variant());
|
|
|
|
+ undo_redo->add_undo_method(viewport, "update", Variant());
|
|
|
|
+ undo_redo->commit_action();
|
|
} break;
|
|
} break;
|
|
case UNGROUP_SELECTED: {
|
|
case UNGROUP_SELECTED: {
|
|
|
|
+ undo_redo->create_action(TTR("Ungroup Selected"));
|
|
|
|
+
|
|
List<Node *> selection = editor_selection->get_selected_node_list();
|
|
List<Node *> selection = editor_selection->get_selected_node_list();
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
@@ -3966,10 +3986,14 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
- canvas_item->set_meta("_edit_group_", Variant());
|
|
|
|
- emit_signal("item_group_status_changed");
|
|
|
|
|
|
+ undo_redo->add_do_method(canvas_item, "remove_meta", "_edit_group_");
|
|
|
|
+ undo_redo->add_undo_method(canvas_item, "set_meta", "_edit_group_", true);
|
|
|
|
+ undo_redo->add_do_method(this, "emit_signal", "item_group_status_changed");
|
|
|
|
+ undo_redo->add_undo_method(this, "emit_signal", "item_group_status_changed");
|
|
}
|
|
}
|
|
- viewport->update();
|
|
|
|
|
|
+ undo_redo->add_do_method(viewport, "update", Variant());
|
|
|
|
+ undo_redo->add_undo_method(viewport, "update", Variant());
|
|
|
|
+ undo_redo->commit_action();
|
|
} break;
|
|
} break;
|
|
case ANCHORS_AND_MARGINS_PRESET_TOP_LEFT: {
|
|
case ANCHORS_AND_MARGINS_PRESET_TOP_LEFT: {
|
|
_set_anchors_and_margins_preset(PRESET_TOP_LEFT);
|
|
_set_anchors_and_margins_preset(PRESET_TOP_LEFT);
|