mirror of
https://github.com/godotengine/godot.git
synced 2024-11-25 13:43:15 +00:00
Merge pull request #39814 from Xrayez/specific-weird-icons
Don't use arbitrary theme editor icons for scripts with the same name
This commit is contained in:
commit
b92477d77e
@ -3637,16 +3637,13 @@ Ref<Texture2D> EditorNode::get_object_icon(const Object *p_object, const String
|
||||
Ref<Texture2D> EditorNode::get_class_icon(const String &p_class, const String &p_fallback) const {
|
||||
ERR_FAIL_COND_V_MSG(p_class.empty(), nullptr, "Class name cannot be empty.");
|
||||
|
||||
if (gui_base->has_theme_icon(p_class, "EditorIcons")) {
|
||||
return gui_base->get_theme_icon(p_class, "EditorIcons");
|
||||
}
|
||||
|
||||
if (ScriptServer::is_global_class(p_class)) {
|
||||
Ref<ImageTexture> icon;
|
||||
Ref<Script> script = EditorNode::get_editor_data().script_class_load_script(p_class);
|
||||
StringName name = p_class;
|
||||
|
||||
while (script.is_valid()) {
|
||||
StringName name = EditorNode::get_editor_data().script_class_get_name(script->get_path());
|
||||
name = EditorNode::get_editor_data().script_class_get_name(script->get_path());
|
||||
String current_icon_path = EditorNode::get_editor_data().script_class_get_icon_path(name);
|
||||
icon = _load_custom_class_icon(current_icon_path);
|
||||
if (icon.is_valid()) {
|
||||
@ -3656,7 +3653,7 @@ Ref<Texture2D> EditorNode::get_class_icon(const String &p_class, const String &p
|
||||
}
|
||||
|
||||
if (icon.is_null()) {
|
||||
icon = gui_base->get_theme_icon(ScriptServer::get_global_class_base(p_class), "EditorIcons");
|
||||
icon = gui_base->get_theme_icon(ScriptServer::get_global_class_base(name), "EditorIcons");
|
||||
}
|
||||
|
||||
return icon;
|
||||
@ -3674,6 +3671,10 @@ Ref<Texture2D> EditorNode::get_class_icon(const String &p_class, const String &p
|
||||
}
|
||||
}
|
||||
|
||||
if (gui_base->has_theme_icon(p_class, "EditorIcons")) {
|
||||
return gui_base->get_theme_icon(p_class, "EditorIcons");
|
||||
}
|
||||
|
||||
if (p_fallback.length() && gui_base->has_theme_icon(p_fallback, "EditorIcons")) {
|
||||
return gui_base->get_theme_icon(p_fallback, "EditorIcons");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user