diff --git a/doc/classes/EditorExportPlatformExtension.xml b/doc/classes/EditorExportPlatformExtension.xml index 5ed35711614..73247e59665 100644 --- a/doc/classes/EditorExportPlatformExtension.xml +++ b/doc/classes/EditorExportPlatformExtension.xml @@ -149,7 +149,7 @@ - + Returns the item icon for the specified [param device] in the one-click deploy menu. The icon should be 16×16 pixels, adjusted for the current editor scale (see [method EditorInterface.get_editor_scale]). diff --git a/editor/export/editor_export_platform.cpp b/editor/export/editor_export_platform.cpp index 0e888cd8ac5..a3842e51bea 100644 --- a/editor/export/editor_export_platform.cpp +++ b/editor/export/editor_export_platform.cpp @@ -417,9 +417,9 @@ Error EditorExportPlatform::_save_zip_patch_file(void *p_userdata, const String return _save_zip_file(p_userdata, p_path, p_data, p_file, p_total, p_enc_in_filters, p_enc_ex_filters, p_key, p_seed); } -Ref EditorExportPlatform::get_option_icon(int p_index) const { +Ref EditorExportPlatform::get_option_icon(int p_index) const { Ref theme = EditorNode::get_singleton()->get_editor_theme(); - ERR_FAIL_COND_V(theme.is_null(), Ref()); + ERR_FAIL_COND_V(theme.is_null(), Ref()); return theme->get_icon(SNAME("Play"), EditorStringName(EditorIcons)); } diff --git a/editor/export/editor_export_platform.h b/editor/export/editor_export_platform.h index 8c3488ab05a..7189f1ad81c 100644 --- a/editor/export/editor_export_platform.h +++ b/editor/export/editor_export_platform.h @@ -326,7 +326,7 @@ public: virtual bool poll_export() { return false; } virtual int get_options_count() const { return 0; } virtual String get_options_tooltip() const { return ""; } - virtual Ref get_option_icon(int p_index) const; + virtual Ref get_option_icon(int p_index) const; virtual String get_option_label(int p_device) const { return ""; } virtual String get_option_tooltip(int p_device) const { return ""; } virtual String get_device_architecture(int p_device) const { return ""; } diff --git a/editor/export/editor_export_platform_apple_embedded.cpp b/editor/export/editor_export_platform_apple_embedded.cpp index b870544b450..35ec6244513 100644 --- a/editor/export/editor_export_platform_apple_embedded.cpp +++ b/editor/export/editor_export_platform_apple_embedded.cpp @@ -2325,10 +2325,10 @@ String EditorExportPlatformAppleEmbedded::get_options_tooltip() const { return TTR("Select device from the list"); } -Ref EditorExportPlatformAppleEmbedded::get_option_icon(int p_index) const { +Ref EditorExportPlatformAppleEmbedded::get_option_icon(int p_index) const { MutexLock lock(device_lock); - Ref icon; + Ref icon; if (p_index >= 0 || p_index < devices.size()) { Ref theme = EditorNode::get_singleton()->get_editor_theme(); if (theme.is_valid()) { diff --git a/editor/export/editor_export_platform_apple_embedded.h b/editor/export/editor_export_platform_apple_embedded.h index 8673e323ab1..faea163e107 100644 --- a/editor/export/editor_export_platform_apple_embedded.h +++ b/editor/export/editor_export_platform_apple_embedded.h @@ -202,7 +202,7 @@ public: virtual int get_options_count() const override; virtual String get_options_tooltip() const override; - virtual Ref get_option_icon(int p_index) const override; + virtual Ref get_option_icon(int p_index) const override; virtual String get_option_label(int p_index) const override; virtual String get_option_tooltip(int p_index) const override; virtual Error run(const Ref &p_preset, int p_device, BitField p_debug_flags) override; diff --git a/editor/export/editor_export_platform_extension.cpp b/editor/export/editor_export_platform_extension.cpp index b4f338437f0..a9aad4ffa44 100644 --- a/editor/export/editor_export_platform_extension.cpp +++ b/editor/export/editor_export_platform_extension.cpp @@ -53,6 +53,10 @@ void EditorExportPlatformExtension::_bind_methods() { GDVIRTUAL_BIND(_get_options_tooltip); GDVIRTUAL_BIND(_get_option_icon, "device"); +#ifndef DISABLE_DEPRECATED + GDVIRTUAL_BIND_COMPAT(_get_option_icon_bind_compat_108825, "device"); +#endif + GDVIRTUAL_BIND(_get_option_label, "device"); GDVIRTUAL_BIND(_get_option_tooltip, "device"); GDVIRTUAL_BIND(_get_device_architecture, "device"); @@ -178,11 +182,17 @@ String EditorExportPlatformExtension::get_options_tooltip() const { return ret; } -Ref EditorExportPlatformExtension::get_option_icon(int p_index) const { - Ref ret; +Ref EditorExportPlatformExtension::get_option_icon(int p_index) const { + Ref ret; if (GDVIRTUAL_CALL(_get_option_icon, p_index, ret)) { return ret; } +#ifndef DISABLE_DEPRECATED + Ref comp_ret; + if (GDVIRTUAL_CALL(_get_option_icon_bind_compat_108825, p_index, comp_ret)) { + return comp_ret; + } +#endif return EditorExportPlatform::get_option_icon(p_index); } diff --git a/editor/export/editor_export_platform_extension.h b/editor/export/editor_export_platform_extension.h index 032f466cc43..08d560b04ea 100644 --- a/editor/export/editor_export_platform_extension.h +++ b/editor/export/editor_export_platform_extension.h @@ -79,8 +79,12 @@ public: virtual String get_options_tooltip() const override; GDVIRTUAL0RC(String, _get_options_tooltip); - virtual Ref get_option_icon(int p_index) const override; - GDVIRTUAL1RC(Ref, _get_option_icon, int); + virtual Ref get_option_icon(int p_index) const override; + GDVIRTUAL1RC(Ref, _get_option_icon, int); + +#ifndef DISABLE_DEPRECATED + GDVIRTUAL1RC_COMPAT(_get_option_icon_bind_compat_108825, Ref, _get_option_icon, int) +#endif virtual String get_option_label(int p_device) const override; GDVIRTUAL1RC(String, _get_option_label, int); diff --git a/misc/extension_api_validation/4.4-stable.expected b/misc/extension_api_validation/4.4-stable.expected index 4b084079191..c7136ebcd40 100644 --- a/misc/extension_api_validation/4.4-stable.expected +++ b/misc/extension_api_validation/4.4-stable.expected @@ -321,3 +321,10 @@ Validate extension JSON: Error: Field 'classes/RichTextLabel/methods/add_image/a Validate extension JSON: Error: Field 'classes/RichTextLabel/methods/update_image/arguments': size changed value in new API, from 11 to 12. Optional argument added. Compatibility methods registered. + + +GH-108825 +--------- +Validate extension JSON: Error: Field 'classes/EditorExportPlatformExtension/methods/_get_option_icon/return_value': type changed value in new API, from "ImageTexture" to "Texture2D". + +Return type changed to allow returning both ImageTexture and SVGTexture. Compatibility method registered. diff --git a/platform/linuxbsd/export/export_plugin.cpp b/platform/linuxbsd/export/export_plugin.cpp index e184d8d94cd..77f2c79c33e 100644 --- a/platform/linuxbsd/export/export_plugin.cpp +++ b/platform/linuxbsd/export/export_plugin.cpp @@ -425,8 +425,12 @@ bool EditorExportPlatformLinuxBSD::poll_export() { return menu_options != prev; } -Ref EditorExportPlatformLinuxBSD::get_option_icon(int p_index) const { - return p_index == 1 ? stop_icon : EditorExportPlatform::get_option_icon(p_index); +Ref EditorExportPlatformLinuxBSD::get_option_icon(int p_index) const { + if (p_index == 1) { + return stop_icon; + } else { + return EditorExportPlatform::get_option_icon(p_index); + } } int EditorExportPlatformLinuxBSD::get_options_count() const { diff --git a/platform/linuxbsd/export/export_plugin.h b/platform/linuxbsd/export/export_plugin.h index d375ceef618..494a54bc084 100644 --- a/platform/linuxbsd/export/export_plugin.h +++ b/platform/linuxbsd/export/export_plugin.h @@ -82,7 +82,7 @@ public: virtual Ref get_run_icon() const override; virtual bool poll_export() override; - virtual Ref get_option_icon(int p_index) const override; + virtual Ref get_option_icon(int p_index) const override; virtual int get_options_count() const override; virtual String get_option_label(int p_index) const override; virtual String get_option_tooltip(int p_index) const override; diff --git a/platform/macos/export/export_plugin.cpp b/platform/macos/export/export_plugin.cpp index 05bcf6a9c9d..60e339756a9 100644 --- a/platform/macos/export/export_plugin.cpp +++ b/platform/macos/export/export_plugin.cpp @@ -2527,8 +2527,12 @@ bool EditorExportPlatformMacOS::poll_export() { return menu_options != prev; } -Ref EditorExportPlatformMacOS::get_option_icon(int p_index) const { - return p_index == 1 ? stop_icon : EditorExportPlatform::get_option_icon(p_index); +Ref EditorExportPlatformMacOS::get_option_icon(int p_index) const { + if (p_index == 1) { + return stop_icon; + } else { + return EditorExportPlatform::get_option_icon(p_index); + } } int EditorExportPlatformMacOS::get_options_count() const { diff --git a/platform/macos/export/export_plugin.h b/platform/macos/export/export_plugin.h index 5084bf02633..cabcc865462 100644 --- a/platform/macos/export/export_plugin.h +++ b/platform/macos/export/export_plugin.h @@ -162,7 +162,7 @@ public: virtual Ref get_run_icon() const override; virtual bool poll_export() override; - virtual Ref get_option_icon(int p_index) const override; + virtual Ref get_option_icon(int p_index) const override; virtual int get_options_count() const override; virtual String get_option_label(int p_index) const override; virtual String get_option_tooltip(int p_index) const override; diff --git a/platform/web/export/export_plugin.cpp b/platform/web/export/export_plugin.cpp index 284e17a8817..102d536f4e1 100644 --- a/platform/web/export/export_plugin.cpp +++ b/platform/web/export/export_plugin.cpp @@ -647,8 +647,8 @@ bool EditorExportPlatformWeb::poll_export() { return remote_debug_state != prev_remote_debug_state; } -Ref EditorExportPlatformWeb::get_option_icon(int p_index) const { - Ref play_icon = EditorExportPlatform::get_option_icon(p_index); +Ref EditorExportPlatformWeb::get_option_icon(int p_index) const { + Ref play_icon = EditorExportPlatform::get_option_icon(p_index); switch (remote_debug_state) { case REMOTE_DEBUG_STATE_UNAVAILABLE: { diff --git a/platform/web/export/export_plugin.h b/platform/web/export/export_plugin.h index 5e6f6fa8181..ff63afce428 100644 --- a/platform/web/export/export_plugin.h +++ b/platform/web/export/export_plugin.h @@ -134,7 +134,7 @@ public: virtual int get_options_count() const override; virtual String get_option_label(int p_index) const override; virtual String get_option_tooltip(int p_index) const override; - virtual Ref get_option_icon(int p_index) const override; + virtual Ref get_option_icon(int p_index) const override; virtual Error run(const Ref &p_preset, int p_option, BitField p_debug_flags) override; virtual Ref get_run_icon() const override; diff --git a/platform/windows/export/export_plugin.cpp b/platform/windows/export/export_plugin.cpp index 3be93663462..25bf13c832c 100644 --- a/platform/windows/export/export_plugin.cpp +++ b/platform/windows/export/export_plugin.cpp @@ -907,8 +907,12 @@ bool EditorExportPlatformWindows::poll_export() { return menu_options != prev; } -Ref EditorExportPlatformWindows::get_option_icon(int p_index) const { - return p_index == 1 ? stop_icon : EditorExportPlatform::get_option_icon(p_index); +Ref EditorExportPlatformWindows::get_option_icon(int p_index) const { + if (p_index == 1) { + return stop_icon; + } else { + return EditorExportPlatform::get_option_icon(p_index); + } } int EditorExportPlatformWindows::get_options_count() const { diff --git a/platform/windows/export/export_plugin.h b/platform/windows/export/export_plugin.h index 034f58d8706..c92626b52f0 100644 --- a/platform/windows/export/export_plugin.h +++ b/platform/windows/export/export_plugin.h @@ -90,7 +90,7 @@ public: virtual Ref get_run_icon() const override; virtual bool poll_export() override; - virtual Ref get_option_icon(int p_index) const override; + virtual Ref get_option_icon(int p_index) const override; virtual int get_options_count() const override; virtual String get_option_label(int p_index) const override; virtual String get_option_tooltip(int p_index) const override;