diff options
author | Juan Linietsky <reduzio@gmail.com> | 2015-11-18 18:44:11 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2015-11-18 18:44:11 -0300 |
commit | 9833fc21e60c407cb8372915ed0b3b6165fbd12d (patch) | |
tree | 6ddb6ce9583335dc370bc7887eb8e09ad8e1dfd4 | |
parent | f2b43e3ec0723d4751c187b4716e2242e1b60e5f (diff) | |
parent | 1d3fa162c8272337f7a275432181824e07558fa9 (diff) |
Merge pull request #2767 from akien-mga/PR-node-rename-problem2
Fix node renaming bug when using the '.' character
-rw-r--r-- | tools/editor/scene_tree_editor.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/tools/editor/scene_tree_editor.cpp b/tools/editor/scene_tree_editor.cpp index 60395d5ff5..ac2f76acdc 100644 --- a/tools/editor/scene_tree_editor.cpp +++ b/tools/editor/scene_tree_editor.cpp @@ -649,20 +649,28 @@ void SceneTreeEditor::_rename_node(ObjectID p_node,const String& p_name) { void SceneTreeEditor::_renamed() { TreeItem *which=tree->get_edited(); - + ERR_FAIL_COND(!which); NodePath np = which->get_metadata(0); Node *n=get_node(np); ERR_FAIL_COND(!n); + String new_name=which->get_text(0); + if (new_name.find(".") != -1 || new_name.find("/") != -1) { + + error->set_text("Invalid node name, the following characters are not allowed:\n \".\", \"/\""); + error->popup_centered_minsize(); + new_name=n->get_name(); + } + if (!undo_redo) { - n->set_name( which->get_text(0) ); + n->set_name( new_name ); which->set_metadata(0,n->get_path()); emit_signal("node_renamed"); } else { undo_redo->create_action("Rename Node"); - emit_signal("node_prerename",n,which->get_text(0)); - undo_redo->add_do_method(this,"_rename_node",n->get_instance_ID(),which->get_text(0)); + emit_signal("node_prerename",n,new_name); + undo_redo->add_do_method(this,"_rename_node",n->get_instance_ID(),new_name); undo_redo->add_undo_method(this,"_rename_node",n->get_instance_ID(),n->get_name()); undo_redo->commit_action(); } |