From a73b0f165e531fe27c2b09d1d33f946c9bc88bd4 Mon Sep 17 00:00:00 2001 From: trollodel <33117082+trollodel@users.noreply.github.com> Date: Sun, 3 Apr 2022 14:01:38 +0200 Subject: [PATCH] Fix some bugs in the advanced scene import - Start with the scene item selected, instead of showing an invalid view - Don't crash when selecting unnamed materials. --- editor/import/scene_import_settings.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/editor/import/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp index 88667945055..5ff2ac3c126 100644 --- a/editor/import/scene_import_settings.cpp +++ b/editor/import/scene_import_settings.cpp @@ -135,6 +135,12 @@ void SceneImportSettings::_fill_material(Tree *p_tree, const Ref &p_ma String import_id; bool has_import_id = false; + bool created = false; + if (!material_set.has(p_material)) { + material_set.insert(p_material); + created = true; + } + if (p_material->has_meta("import_id")) { import_id = p_material->get_meta("import_id"); has_import_id = true; @@ -142,7 +148,7 @@ void SceneImportSettings::_fill_material(Tree *p_tree, const Ref &p_ma import_id = p_material->get_name(); has_import_id = true; } else { - import_id = "@MATERIAL:" + itos(material_set.size()); + import_id = "@MATERIAL:" + itos(material_set.size() - 1); } if (!material_map.has(import_id)) { @@ -160,14 +166,12 @@ void SceneImportSettings::_fill_material(Tree *p_tree, const Ref &p_ma Ref icon = get_theme_icon(SNAME("StandardMaterial3D"), SNAME("EditorIcons")); TreeItem *item = p_tree->create_item(p_parent); - item->set_text(0, p_material->get_name()); - item->set_icon(0, icon); - - bool created = false; - if (!material_set.has(p_material)) { - material_set.insert(p_material); - created = true; + if (p_material->get_name().is_empty()) { + item->set_text(0, TTR("")); + } else { + item->set_text(0, p_material->get_name()); } + item->set_icon(0, icon); item->set_meta("type", "Material"); item->set_meta("import_id", import_id); @@ -604,6 +608,9 @@ void SceneImportSettings::open_settings(const String &p_path, bool p_for_animati _update_view_gizmos(); _update_camera(); + // Start with the root item (Scene) selected. + scene_tree->get_root()->select(0); + if (p_for_animation) { set_title(vformat(TTR("Advanced Import Settings for AnimationLibrary '%s'"), base_path.get_file())); } else {