Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use EditorResourcePicker in the Inspector #48854

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 33 additions & 2 deletions doc/classes/EditorResourcePicker.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
Godot editor's control for selecting [Resource] type properties.
</brief_description>
<description>
This is a [Control] node similar to the one used in the Inspector dock when editing [Resource]s. It provides options for creating, loading, saving and converting resources.
[b]Note:[/b] It does not include an editor for the resource.
This [Control] node is used in the editor's Inspector dock to allow editing of [Resource] type properties. It provides options for creating, loading, saving and converting resources. Can be used with [EditorInspectorPlugin] to recreate the same behavior.
[b]Note:[/b] This [Control] does not include any editor for the resource, as editing is controlled by the Inspector dock itself or sub-Inspectors.
</description>
<tutorials>
</tutorials>
Expand Down Expand Up @@ -51,6 +51,34 @@
<description>
</description>
</method>
<method name="handle_menu_selected" qualifiers="virtual">
<return type="void">
</return>
<argument index="0" name="id" type="int">
</argument>
<description>
This virtual method can be implemented to handle context menu items not handled by default. See [method set_create_options].
</description>
</method>
<method name="set_create_options" qualifiers="virtual">
<return type="void">
</return>
<argument index="0" name="menu_node" type="Object">
</argument>
<description>
This virtual method is called when updating the context menu of [EditorResourcePicker]. Implement this method to override the "New ..." items with your own options. [code]menu_node[/code] is a reference to the [PopupMenu] node.
[b]Note:[/b] Implement [method handle_menu_selected] to handle these custom items.
</description>
</method>
<method name="set_toggle_pressed">
<return type="void">
</return>
<argument index="0" name="pressed" type="bool">
</argument>
<description>
Sets the toggle mode state for the main button. Works only if [member toggle_mode] is set to [code]true[/code].
</description>
</method>
</methods>
<members>
<member name="base_type" type="String" setter="set_base_type" getter="get_base_type" default="&quot;&quot;">
Expand All @@ -62,6 +90,9 @@
<member name="edited_resource" type="Resource" setter="set_edited_resource" getter="get_edited_resource">
The edited resource value.
</member>
<member name="toggle_mode" type="bool" setter="set_toggle_mode" getter="is_toggle_mode" default="false">
If [code]true[/code], the main button with the resource preview works in the toggle mode. Use [method set_toggle_pressed] to manually set the state.
</member>
</members>
<signals>
<signal name="resource_changed">
Expand Down
21 changes: 21 additions & 0 deletions doc/classes/EditorScriptPicker.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorScriptPicker" inherits="EditorResourcePicker" version="4.0">
<brief_description>
Godot editor's control for selecting the [code]script[/code] property of a [Node].
</brief_description>
<description>
Similar to [EditorResourcePicker] this [Control] node is used in the editor's Inspector dock, but only to edit the [code]script[/code] property of a [Node]. Default options for creating new resources of all possible subtypes are replaced with dedicated buttons that open the "Attach Node Script" dialog. Can be used with [EditorInspectorPlugin] to recreate the same behavior.
[b]Note:[/b] You must set the [member script_owner] for the custom context menu items to work.
</description>
<tutorials>
</tutorials>
<methods>
</methods>
<members>
<member name="script_owner" type="Node" setter="set_script_owner" getter="get_script_owner">
The owner [Node] of the script property that holds the edited resource.
</member>
</members>
<constants>
</constants>
</class>
2 changes: 2 additions & 0 deletions doc/classes/EditorSpinSlider.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorSpinSlider" inherits="Range" version="4.0">
<brief_description>
Godot editor's control for editing numertic values.
</brief_description>
<description>
This [Control] node is used in the editor's Inspector dock to allow editing of numeric values. Can be used with [EditorInspectorPlugin] to recreate the same behavior.
</description>
<tutorials>
</tutorials>
Expand Down
1 change: 1 addition & 0 deletions editor/editor_node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3760,6 +3760,7 @@ void EditorNode::register_editor_types() {
ClassDB::register_class<EditorFeatureProfile>();
ClassDB::register_class<EditorSpinSlider>();
ClassDB::register_class<EditorResourcePicker>();
ClassDB::register_class<EditorScriptPicker>();
ClassDB::register_class<EditorSceneImporterMesh>();
ClassDB::register_class<EditorSceneImporterMeshNode3D>();

Expand Down
Loading