Browse Source

Merge pull request #66121 from Zylann/plugin_handles_edit_object_argument

Change `_can_handle` and `_edit` virtual methods to take `Object*`
Rémi Verschelde 2 years ago
parent
commit
7c7ba88d19

+ 1 - 1
doc/classes/EditorInspectorPlugin.xml

@@ -18,7 +18,7 @@
 	<methods>
 	<methods>
 		<method name="_can_handle" qualifiers="virtual const">
 		<method name="_can_handle" qualifiers="virtual const">
 			<return type="bool" />
 			<return type="bool" />
-			<param index="0" name="object" type="Variant" />
+			<param index="0" name="object" type="Object" />
 			<description>
 			<description>
 				Returns [code]true[/code] if this object can be handled by this plugin.
 				Returns [code]true[/code] if this object can be handled by this plugin.
 			</description>
 			</description>

+ 2 - 2
doc/classes/EditorPlugin.xml

@@ -38,7 +38,7 @@
 		</method>
 		</method>
 		<method name="_edit" qualifiers="virtual">
 		<method name="_edit" qualifiers="virtual">
 			<return type="void" />
 			<return type="void" />
-			<param index="0" name="object" type="Variant" />
+			<param index="0" name="object" type="Object" />
 			<description>
 			<description>
 				This function is used for plugins that edit specific object types (nodes or resources). It requests the editor to edit the given object.
 				This function is used for plugins that edit specific object types (nodes or resources). It requests the editor to edit the given object.
 				[param object] can be [code]null[/code] if the plugin was editing an object, but there is no longer any selected object handled by this plugin. It can be used to cleanup editing state.
 				[param object] can be [code]null[/code] if the plugin was editing an object, but there is no longer any selected object handled by this plugin. It can be used to cleanup editing state.
@@ -295,7 +295,7 @@
 		</method>
 		</method>
 		<method name="_handles" qualifiers="virtual const">
 		<method name="_handles" qualifiers="virtual const">
 			<return type="bool" />
 			<return type="bool" />
-			<param index="0" name="object" type="Variant" />
+			<param index="0" name="object" type="Object" />
 			<description>
 			<description>
 				Implement this function if your plugin edits a specific type of object (Resource or Node). If you return [code]true[/code], then you will get the functions [method _edit] and [method _make_visible] called when the editor requests them. If you have declared the methods [method _forward_canvas_gui_input] and [method _forward_3d_gui_input] these will be called too.
 				Implement this function if your plugin edits a specific type of object (Resource or Node). If you return [code]true[/code], then you will get the functions [method _edit] and [method _make_visible] called when the editor requests them. If you have declared the methods [method _forward_canvas_gui_input] and [method _forward_3d_gui_input] these will be called too.
 			</description>
 			</description>

+ 1 - 1
editor/editor_inspector.h

@@ -225,7 +225,7 @@ public:
 protected:
 protected:
 	static void _bind_methods();
 	static void _bind_methods();
 
 
-	GDVIRTUAL1RC(bool, _can_handle, Variant)
+	GDVIRTUAL1RC(bool, _can_handle, Object *)
 	GDVIRTUAL1(_parse_begin, Object *)
 	GDVIRTUAL1(_parse_begin, Object *)
 	GDVIRTUAL2(_parse_category, Object *, String)
 	GDVIRTUAL2(_parse_category, Object *, String)
 	GDVIRTUAL2(_parse_group, Object *, String)
 	GDVIRTUAL2(_parse_group, Object *, String)

+ 1 - 5
editor/editor_plugin.cpp

@@ -662,11 +662,7 @@ void EditorPlugin::make_visible(bool p_visible) {
 }
 }
 
 
 void EditorPlugin::edit(Object *p_object) {
 void EditorPlugin::edit(Object *p_object) {
-	if (Object::cast_to<Resource>(p_object)) {
-		GDVIRTUAL_CALL(_edit, Ref<Resource>(Object::cast_to<Resource>(p_object)));
-	} else {
-		GDVIRTUAL_CALL(_edit, p_object);
-	}
+	GDVIRTUAL_CALL(_edit, p_object);
 }
 }
 
 
 bool EditorPlugin::handles(Object *p_object) const {
 bool EditorPlugin::handles(Object *p_object) const {

+ 2 - 2
editor/editor_plugin.h

@@ -164,8 +164,8 @@ protected:
 	GDVIRTUAL0RC(Ref<Texture2D>, _get_plugin_icon)
 	GDVIRTUAL0RC(Ref<Texture2D>, _get_plugin_icon)
 	GDVIRTUAL0RC(bool, _has_main_screen)
 	GDVIRTUAL0RC(bool, _has_main_screen)
 	GDVIRTUAL1(_make_visible, bool)
 	GDVIRTUAL1(_make_visible, bool)
-	GDVIRTUAL1(_edit, Variant)
-	GDVIRTUAL1RC(bool, _handles, Variant)
+	GDVIRTUAL1(_edit, Object *)
+	GDVIRTUAL1RC(bool, _handles, Object *)
 	GDVIRTUAL0RC(Dictionary, _get_state)
 	GDVIRTUAL0RC(Dictionary, _get_state)
 	GDVIRTUAL1(_set_state, Dictionary)
 	GDVIRTUAL1(_set_state, Dictionary)
 	GDVIRTUAL0(_clear)
 	GDVIRTUAL0(_clear)