From 5d5b2054e8c98e9241ca84162d90273234a7c477 Mon Sep 17 00:00:00 2001 From: kobewi Date: Tue, 18 Nov 2025 17:32:58 +0100 Subject: [PATCH] Support extension icons in Script Editor --- editor/script/script_editor_plugin.cpp | 7 ++++--- editor/script/script_text_editor.cpp | 12 ++++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/editor/script/script_editor_plugin.cpp b/editor/script/script_editor_plugin.cpp index bc52db2bff7..f422f8ca80a 100644 --- a/editor/script/script_editor_plugin.cpp +++ b/editor/script/script_editor_plugin.cpp @@ -1835,6 +1835,7 @@ void ScriptEditor::_notification(int p_what) { filter_methods->set_right_icon(get_editor_theme_icon(SNAME("Search"))); recent_scripts->reset_size(); + script_list->set_fixed_icon_size(Vector2i(1, 1) * get_theme_constant("class_icon_size", EditorStringName(Editor))); if (is_inside_tree()) { _update_script_names(); @@ -4201,16 +4202,16 @@ ScriptEditor::ScriptEditor(WindowWrapper *p_wrapper) { filter_scripts->connect(SceneStringName(text_changed), callable_mp(this, &ScriptEditor::_filter_scripts_text_changed)); scripts_vbox->add_child(filter_scripts); + _sort_list_on_update = true; script_list = memnew(ItemList); script_list->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); - scripts_vbox->add_child(script_list); script_list->set_custom_minimum_size(Size2(100, 60) * EDSCALE); //need to give a bit of limit to avoid it from disappearing script_list->set_v_size_flags(SIZE_EXPAND_FILL); script_list->set_theme_type_variation("ItemListSecondary"); script_split->set_split_offset(200 * EDSCALE); - _sort_list_on_update = true; - script_list->connect("item_clicked", callable_mp(this, &ScriptEditor::_script_list_clicked), CONNECT_DEFERRED); script_list->set_allow_rmb_select(true); + scripts_vbox->add_child(script_list); + script_list->connect("item_clicked", callable_mp(this, &ScriptEditor::_script_list_clicked), CONNECT_DEFERRED); SET_DRAG_FORWARDING_GCD(script_list, ScriptEditor); context_menu = memnew(PopupMenu); diff --git a/editor/script/script_text_editor.cpp b/editor/script/script_text_editor.cpp index 29790790e80..433a9e68698 100644 --- a/editor/script/script_text_editor.cpp +++ b/editor/script/script_text_editor.cpp @@ -840,6 +840,18 @@ Ref ScriptTextEditor::get_theme_icon() { } } + Ref extension_language_icon = EditorNode::get_editor_data().extension_class_get_icon(script->get_class()); + Ref extension_language_alt_icon; + if (script->is_built_in()) { + extension_language_alt_icon = EditorNode::get_editor_data().extension_class_get_icon(script->get_class() + "Internal"); + } + + if (extension_language_alt_icon.is_valid()) { + return extension_language_alt_icon; + } else if (extension_language_icon.is_valid()) { + return extension_language_icon; + } + return Ref(); }