From 2c77f07aaa4c04c6f439a4636156ba234f6d2e13 Mon Sep 17 00:00:00 2001 From: Yuri Sizov Date: Thu, 24 Aug 2023 12:49:20 +0200 Subject: [PATCH] Add a script method to get its class icon Co-authored-by: Danil Alexeev --- core/object/script_language.h | 1 + core/object/script_language_extension.cpp | 1 + core/object/script_language_extension.h | 7 +++++++ doc/classes/ScriptExtension.xml | 5 +++++ editor/editor_data.cpp | 8 +++++++- editor/editor_node.cpp | 2 +- modules/gdscript/doc_classes/@GDScript.xml | 2 +- modules/gdscript/gdscript.cpp | 14 +++++++------- modules/gdscript/gdscript.h | 2 ++ modules/gdscript/gdscript_compiler.cpp | 1 + modules/gdscript/gdscript_parser.cpp | 17 +++++++++++++++-- modules/gdscript/gdscript_parser.h | 1 + modules/mono/csharp_script.h | 3 +++ 13 files changed, 52 insertions(+), 12 deletions(-) diff --git a/core/object/script_language.h b/core/object/script_language.h index 3ea6a6e4c3c0..215e5880fa4a 100644 --- a/core/object/script_language.h +++ b/core/object/script_language.h @@ -141,6 +141,7 @@ public: #ifdef TOOLS_ENABLED virtual Vector get_documentation() const = 0; + virtual String get_class_icon_path() const = 0; virtual PropertyInfo get_class_category() const; #endif // TOOLS_ENABLED diff --git a/core/object/script_language_extension.cpp b/core/object/script_language_extension.cpp index 0df9d5833440..bf8bac476a3e 100644 --- a/core/object/script_language_extension.cpp +++ b/core/object/script_language_extension.cpp @@ -52,6 +52,7 @@ void ScriptExtension::_bind_methods() { GDVIRTUAL_BIND(_reload, "keep_state"); GDVIRTUAL_BIND(_get_documentation); + GDVIRTUAL_BIND(_get_class_icon_path); GDVIRTUAL_BIND(_has_method, "method"); GDVIRTUAL_BIND(_get_method_info, "method"); diff --git a/core/object/script_language_extension.h b/core/object/script_language_extension.h index 1a0ec294798f..7fa1fe681093 100644 --- a/core/object/script_language_extension.h +++ b/core/object/script_language_extension.h @@ -77,6 +77,7 @@ public: EXBIND1R(Error, reload, bool) GDVIRTUAL0RC(TypedArray, _get_documentation) + GDVIRTUAL0RC(String, _get_class_icon_path) #ifdef TOOLS_ENABLED virtual Vector get_documentation() const override { TypedArray doc; @@ -89,6 +90,12 @@ public: return class_doc; } + + virtual String get_class_icon_path() const override { + String ret; + GDVIRTUAL_CALL(_get_class_icon_path, ret); + return ret; + } #endif // TOOLS_ENABLED EXBIND1RC(bool, has_method, const StringName &) diff --git a/doc/classes/ScriptExtension.xml b/doc/classes/ScriptExtension.xml index 934cbf5a269a..f7c8ecb3fbe3 100644 --- a/doc/classes/ScriptExtension.xml +++ b/doc/classes/ScriptExtension.xml @@ -22,6 +22,11 @@ + + + + + diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index 0b2c2bea154d..ae90ae6a420d 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -1122,8 +1122,14 @@ Ref EditorData::get_script_icon(const Ref