1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-09 12:50:35 +00:00

Fix get_class_icon() ignoring fallback

This commit is contained in:
kobewi
2025-05-30 14:44:14 +02:00
parent b89c47bb85
commit 0138e33792
2 changed files with 5 additions and 3 deletions

View File

@@ -5202,9 +5202,11 @@ 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) { Ref<Texture2D> EditorNode::get_class_icon(const String &p_class, const String &p_fallback) {
ERR_FAIL_COND_V_MSG(p_class.is_empty(), nullptr, "Class name cannot be empty."); ERR_FAIL_COND_V_MSG(p_class.is_empty(), nullptr, "Class name cannot be empty.");
const Pair<String, String> key(p_class, p_fallback);
// Take from the local cache, if available. // Take from the local cache, if available.
{ {
Ref<Texture2D> *icon = class_icon_cache.getptr(p_class); Ref<Texture2D> *icon = class_icon_cache.getptr(key);
if (icon) { if (icon) {
return *icon; return *icon;
} }
@@ -5218,7 +5220,7 @@ Ref<Texture2D> EditorNode::get_class_icon(const String &p_class, const String &p
} }
Ref<Texture2D> icon = _get_class_or_script_icon(p_class, script_path, p_fallback, true); Ref<Texture2D> icon = _get_class_or_script_icon(p_class, script_path, p_fallback, true);
class_icon_cache[p_class] = icon; class_icon_cache[key] = icon;
return icon; return icon;
} }

View File

@@ -484,7 +484,7 @@ private:
PrintHandlerList print_handler; PrintHandlerList print_handler;
HashMap<String, Ref<Texture2D>> icon_type_cache; HashMap<String, Ref<Texture2D>> icon_type_cache;
HashMap<String, Ref<Texture2D>> class_icon_cache; HashMap<Pair<String, String>, Ref<Texture2D>> class_icon_cache;
ProjectUpgradeTool *project_upgrade_tool = nullptr; ProjectUpgradeTool *project_upgrade_tool = nullptr;
bool run_project_upgrade_tool = false; bool run_project_upgrade_tool = false;