From 6adcb2085cd5c6a9b7a79dc36f49a1a4f6cbdcd3 Mon Sep 17 00:00:00 2001 From: arkology <43543909+arkology@users.noreply.github.com> Date: Fri, 21 Feb 2025 22:45:11 +0300 Subject: [PATCH] `EditorResourcePicker`: Add `Quick Load` button --- editor/editor_resource_picker.cpp | 8 ++++++++ editor/editor_resource_picker.h | 1 + 2 files changed, 9 insertions(+) diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp index 79d033bf033..d8f40dcc998 100644 --- a/editor/editor_resource_picker.cpp +++ b/editor/editor_resource_picker.cpp @@ -88,6 +88,7 @@ void EditorResourcePicker::_update_resource() { } assign_button->set_disabled(!editable && edited_resource.is_null()); + quick_load_button->set_visible(editable && edited_resource.is_null()); } void EditorResourcePicker::_update_resource_preview(const String &p_path, const Ref &p_preview, const Ref &p_small_preview, ObjectID p_obj) { @@ -855,6 +856,7 @@ void EditorResourcePicker::_notification(int p_what) { edit_menu->add_theme_constant_override("icon_max_width", icon_width); } + quick_load_button->set_button_icon(get_editor_theme_icon(SNAME("Load"))); edit_button->set_button_icon(get_theme_icon(SNAME("select_arrow"), SNAME("Tree"))); } break; @@ -996,6 +998,7 @@ void EditorResourcePicker::set_resource_owner(Object *p_object) { void EditorResourcePicker::set_editable(bool p_editable) { editable = p_editable; assign_button->set_disabled(!editable && edited_resource.is_null()); + quick_load_button->set_visible(editable && edited_resource.is_null()); edit_button->set_visible(editable); } @@ -1120,6 +1123,11 @@ EditorResourcePicker::EditorResourcePicker(bool p_hide_assign_button_controls) { assign_button->add_child(preview_rect); } + quick_load_button = memnew(Button); + quick_load_button->set_tooltip_text(TTRC("Quick Load")); + add_child(quick_load_button); + quick_load_button->connect(SceneStringName(pressed), callable_mp(this, &EditorResourcePicker::_edit_menu_cbk).bind(OBJ_MENU_QUICKLOAD)); + edit_button = memnew(Button); edit_button->set_flat(false); edit_button->set_toggle_mode(true); diff --git a/editor/editor_resource_picker.h b/editor/editor_resource_picker.h index a91a4dcb589..29c30f71641 100644 --- a/editor/editor_resource_picker.h +++ b/editor/editor_resource_picker.h @@ -56,6 +56,7 @@ class EditorResourcePicker : public HBoxContainer { Button *assign_button = nullptr; TextureRect *preview_rect = nullptr; Button *edit_button = nullptr; + Button *quick_load_button = nullptr; EditorFileDialog *file_dialog = nullptr; ConfirmationDialog *duplicate_resources_dialog = nullptr;