Browse Source

Merge pull request #39814 from Xrayez/specific-weird-icons

Don't use arbitrary theme editor icons for scripts with the same name
Rémi Verschelde 5 years ago
parent
commit
b92477d77e
1 changed files with 7 additions and 6 deletions
  1. 7 6
      editor/editor_node.cpp

+ 7 - 6
editor/editor_node.cpp

@@ -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 {
 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.");
 	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)) {
 	if (ScriptServer::is_global_class(p_class)) {
 		Ref<ImageTexture> icon;
 		Ref<ImageTexture> icon;
 		Ref<Script> script = EditorNode::get_editor_data().script_class_load_script(p_class);
 		Ref<Script> script = EditorNode::get_editor_data().script_class_load_script(p_class);
+		StringName name = p_class;
 
 
 		while (script.is_valid()) {
 		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);
 			String current_icon_path = EditorNode::get_editor_data().script_class_get_icon_path(name);
 			icon = _load_custom_class_icon(current_icon_path);
 			icon = _load_custom_class_icon(current_icon_path);
 			if (icon.is_valid()) {
 			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()) {
 		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;
 		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")) {
 	if (p_fallback.length() && gui_base->has_theme_icon(p_fallback, "EditorIcons")) {
 		return gui_base->get_theme_icon(p_fallback, "EditorIcons");
 		return gui_base->get_theme_icon(p_fallback, "EditorIcons");
 	}
 	}