From f997feed75b0cf822727c077b1011d36c4034c32 Mon Sep 17 00:00:00 2001 From: jsjtxietian Date: Wed, 23 Aug 2023 12:58:37 +0800 Subject: [PATCH] Fix "Import Defaults" selector not being initialized incorrectly In ImportDefaultsEditor, delete 'Select Importer'; when first call the function, last_selected should be the first one, directly show the settings for "Animation Library" --- editor/import_defaults_editor.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/editor/import_defaults_editor.cpp b/editor/import_defaults_editor.cpp index 98a9bfe9dc..e134d354e2 100644 --- a/editor/import_defaults_editor.cpp +++ b/editor/import_defaults_editor.cpp @@ -169,15 +169,13 @@ void ImportDefaultsEditor::_importer_selected(int p_index) { void ImportDefaultsEditor::clear() { String last_selected; - if (importers->get_selected() > 0) { + + if (importers->get_selected() >= 0) { last_selected = importers->get_item_text(importers->get_selected()); } importers->clear(); - importers->add_item("<" + TTR("Select Importer") + ">"); - importers->set_item_disabled(0, true); - List> importer_list; ResourceFormatImporter::get_singleton()->get_importers(&importer_list); Vector names; @@ -187,11 +185,17 @@ void ImportDefaultsEditor::clear() { } names.sort(); + // `last_selected.is_empty()` means it's the first time being called. + if (last_selected.is_empty() && !names.is_empty()) { + last_selected = names[0]; + } + for (int i = 0; i < names.size(); i++) { importers->add_item(names[i]); if (names[i] == last_selected) { - importers->select(i + 1); + importers->select(i); + _update_importer(); } } }