Merge pull request #1181 from adolson/duplicate-node-naming-prefs
fix naming of duplicated nodes, closes #1161
This commit is contained in:
commit
cdf3c5b0eb
2 changed files with 23 additions and 5 deletions
|
@ -414,6 +414,10 @@ void EditorSettings::_load_defaults() {
|
||||||
set("text_editor/auto_brace_complete", false);
|
set("text_editor/auto_brace_complete", false);
|
||||||
|
|
||||||
|
|
||||||
|
set("scenetree_editor/duplicate_node_name_num_separator",0);
|
||||||
|
hints["scenetree_editor/duplicate_node_name_num_separator"]=PropertyInfo(Variant::INT,"scenetree_editor/duplicate_node_name_num_separator",PROPERTY_HINT_ENUM, "None,Space,Underscore,Dash");
|
||||||
|
|
||||||
|
|
||||||
set("3d_editor/default_fov",45.0);
|
set("3d_editor/default_fov",45.0);
|
||||||
set("3d_editor/default_z_near",0.1);
|
set("3d_editor/default_z_near",0.1);
|
||||||
set("3d_editor/default_z_far",500.0);
|
set("3d_editor/default_z_far",500.0);
|
||||||
|
|
|
@ -100,6 +100,16 @@ Node* SceneTreeDock::instance(const String& p_file) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static String _get_name_num_separator() {
|
||||||
|
switch(EditorSettings::get_singleton()->get("scenetree_editor/duplicate_node_name_num_separator").operator int()) {
|
||||||
|
case 0: return "";
|
||||||
|
case 1: return " ";
|
||||||
|
case 2: return "_";
|
||||||
|
case 3: return "-";
|
||||||
|
}
|
||||||
|
return " ";
|
||||||
|
}
|
||||||
|
|
||||||
void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
||||||
|
|
||||||
current_option=p_tool;
|
current_option=p_tool;
|
||||||
|
@ -318,17 +328,21 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int num=nums.to_int();
|
int num=nums.to_int();
|
||||||
if (num<2)
|
if (num<1)
|
||||||
num=2;
|
num=1;
|
||||||
else
|
else
|
||||||
num++;
|
num++;
|
||||||
|
|
||||||
name=name.substr(0,name.length()-nums.length()).strip_edges();
|
String nnsep = _get_name_num_separator();
|
||||||
String attempt=name+" "+itos(num);
|
name = name.substr(0,name.length()-nums.length()).strip_edges();
|
||||||
|
if ( name.substr(name.length()-nnsep.length(),nnsep.length()) == nnsep) {
|
||||||
|
name = name.substr(0,name.length()-nnsep.length());
|
||||||
|
}
|
||||||
|
String attempt = (name + nnsep + itos(num)).strip_edges();
|
||||||
|
|
||||||
while(parent->has_node(attempt)) {
|
while(parent->has_node(attempt)) {
|
||||||
num++;
|
num++;
|
||||||
attempt=name+" "+itos(num);
|
attempt = (name + nnsep + itos(num)).strip_edges();
|
||||||
}
|
}
|
||||||
|
|
||||||
dup->set_name(attempt);
|
dup->set_name(attempt);
|
||||||
|
|
Loading…
Reference in a new issue