Merge pull request #114448 from KoBeWi/replace_old_'replace_old'

SceneTreeDock: Remove unused parameter
This commit is contained in:
Thaddeus Crews 2026-01-28 12:26:55 -06:00
commit c330276a10
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC
2 changed files with 5 additions and 26 deletions

View file

@ -3194,12 +3194,12 @@ void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node) {
EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton();
ur->create_action(TTR("Change type of node(s)"), UndoRedo::MERGE_DISABLE, p_node);
ur->add_do_method(this, "replace_node", p_node, p_by_node, true, false);
ur->add_do_method(this, "replace_node", p_node, p_by_node, true);
ur->add_do_reference(p_by_node);
_replace_node(p_node, p_by_node, true, false);
_replace_node(p_node, p_by_node, true);
ur->add_undo_method(this, "replace_node", p_by_node, p_node, false, false);
ur->add_undo_method(this, "replace_node", p_by_node, p_node, false);
ur->add_undo_reference(p_node);
perform_node_replace(nullptr, p_node, p_by_node);
@ -3207,7 +3207,7 @@ void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node) {
ur->commit_action(false);
}
void SceneTreeDock::_replace_node(Node *p_node, Node *p_by_node, bool p_keep_properties, bool p_remove_old) {
void SceneTreeDock::_replace_node(Node *p_node, Node *p_by_node, bool p_keep_properties) {
ERR_FAIL_COND_MSG(!p_node->is_inside_tree(), "_replace_node() can't be called on a node outside of tree. You might have called it twice.");
Node *oldnode = p_node;
Node *newnode = p_by_node;
@ -3281,14 +3281,6 @@ void SceneTreeDock::_replace_node(Node *p_node, Node *p_by_node, bool p_keep_pro
}
String newname = oldnode->get_name();
List<Node *> to_erase;
for (int i = 0; i < oldnode->get_child_count(); i++) {
if (oldnode->get_child(i)->get_owner() == nullptr && oldnode->is_internal()) {
to_erase.push_back(oldnode->get_child(i));
}
}
if (oldnode == edited_scene) {
EditorNode::get_singleton()->set_edited_scene_root(newnode, false);
}
@ -3305,22 +3297,9 @@ void SceneTreeDock::_replace_node(Node *p_node, Node *p_by_node, bool p_keep_pro
Node *c = newnode->get_child(i);
c->call("set_transform", c->call("get_transform"));
}
//p_remove_old was added to support undo
if (p_remove_old) {
EditorUndoRedoManager::get_singleton()->clear_history();
}
newnode->set_name(newname);
_push_item(newnode);
if (p_remove_old) {
memdelete(oldnode);
while (to_erase.front()) {
memdelete(to_erase.front()->get());
to_erase.pop_front();
}
}
}
void SceneTreeDock::perform_node_replace(Node *p_base, Node *p_node, Node *p_by_node) {

View file

@ -306,7 +306,7 @@ class SceneTreeDock : public EditorDock {
void _check_object_properties_recursive(Node *p_root_node, Object *p_obj, HashMap<Node *, NodePath> *p_renames, bool p_inside_resource = false) const;
bool _check_node_path_recursive(Node *p_root_node, Variant &r_variant, HashMap<Node *, NodePath> *p_renames, bool p_inside_resource = false) const;
bool _check_node_recursive(Variant &r_variant, Node *p_node, Node *p_by_node, const String type_hint, String &r_warn_message);
void _replace_node(Node *p_node, Node *p_by_node, bool p_keep_properties = true, bool p_remove_old = true);
void _replace_node(Node *p_node, Node *p_by_node, bool p_keep_properties = true);
private:
static SceneTreeDock *singleton;