1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-04 17:04:49 +00:00

Support extension icons in Script Editor

This commit is contained in:
kobewi
2025-11-18 17:32:58 +01:00
parent 9c561027fc
commit 5d5b2054e8
2 changed files with 16 additions and 3 deletions

View File

@@ -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);

View File

@@ -840,6 +840,18 @@ Ref<Texture2D> ScriptTextEditor::get_theme_icon() {
}
}
Ref<Texture2D> extension_language_icon = EditorNode::get_editor_data().extension_class_get_icon(script->get_class());
Ref<Texture2D> 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<Texture2D>();
}