diff options
-rw-r--r-- | editor/editor_inspector.cpp | 74 |
1 files changed, 37 insertions, 37 deletions
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 0711bbe84e..b97729db7b 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -2816,53 +2816,53 @@ void EditorInspector::update_tree() { // `hint_script` should contain a native class name or a script path. // Otherwise the category was probably added via `@export_category` or `_get_property_list()`. + // Do not add an icon, do not change the current class (`doc_name`) for custom categories. if (p.hint_string.is_empty()) { category->label = p.name; category->set_tooltip_text(p.name); - continue; // Do not add an icon, do not change the current class (`doc_name`). - } + } else { + String type = p.name; + String label = p.name; + doc_name = p.name; - String type = p.name; - String label = p.name; - doc_name = p.name; - - // Use category's owner script to update some of its information. - if (!EditorNode::get_editor_data().is_type_recognized(type) && p.hint_string.length() && ResourceLoader::exists(p.hint_string)) { - Ref<Script> scr = ResourceLoader::load(p.hint_string, "Script"); - if (scr.is_valid()) { - StringName script_name = EditorNode::get_editor_data().script_class_get_name(scr->get_path()); - - // Update the docs reference and the label based on the script. - Vector<DocData::ClassDoc> docs = scr->get_documentation(); - if (!docs.is_empty()) { - // The documentation of a GDScript's main class is at the end of the array. - // Hacky because this isn't necessarily always guaranteed. - doc_name = docs[docs.size() - 1].name; - } - if (script_name != StringName()) { - label = script_name; - } + // Use category's owner script to update some of its information. + if (!EditorNode::get_editor_data().is_type_recognized(type) && ResourceLoader::exists(p.hint_string)) { + Ref<Script> scr = ResourceLoader::load(p.hint_string, "Script"); + if (scr.is_valid()) { + StringName script_name = EditorNode::get_editor_data().script_class_get_name(scr->get_path()); - // Find the icon corresponding to the script. - if (script_name != StringName()) { - category->icon = EditorNode::get_singleton()->get_class_icon(script_name); - } else { - category->icon = EditorNode::get_singleton()->get_object_icon(scr.ptr(), "Object"); + // Update the docs reference and the label based on the script. + Vector<DocData::ClassDoc> docs = scr->get_documentation(); + if (!docs.is_empty()) { + // The documentation of a GDScript's main class is at the end of the array. + // Hacky because this isn't necessarily always guaranteed. + doc_name = docs[docs.size() - 1].name; + } + if (script_name != StringName()) { + label = script_name; + } + + // Find the icon corresponding to the script. + if (script_name != StringName()) { + category->icon = EditorNode::get_singleton()->get_class_icon(script_name); + } else { + category->icon = EditorNode::get_singleton()->get_object_icon(scr.ptr(), "Object"); + } } } - } - if (category->icon.is_null() && !type.is_empty()) { - category->icon = EditorNode::get_singleton()->get_class_icon(type); - } + if (category->icon.is_null() && !type.is_empty()) { + category->icon = EditorNode::get_singleton()->get_class_icon(type); + } - // Set the category label. - category->label = label; - category->doc_class_name = doc_name; + // Set the category label. + category->label = label; + category->doc_class_name = doc_name; - if (use_doc_hints) { - // `|` separator used in `EditorHelpTooltip` for formatting. - category->set_tooltip_text("class|" + doc_name + "||"); + if (use_doc_hints) { + // `|` separator used in `EditorHelpTooltip` for formatting. + category->set_tooltip_text("class|" + doc_name + "||"); + } } // Add editors at the start of a category. |