From 0e8f90f4c8b4b353d3ac372e5f00493a2f0bd136 Mon Sep 17 00:00:00 2001 From: kobewi Date: Mon, 18 Dec 2023 15:46:56 +0100 Subject: [PATCH] Update deferred calls to use Callables --- core/variant/callable.cpp | 3 +- editor/animation_bezier_editor.cpp | 2 +- editor/animation_track_editor.cpp | 3 +- editor/audio_stream_preview.cpp | 3 +- editor/code_editor.cpp | 14 ++++----- editor/create_dialog.cpp | 2 +- editor/debugger/editor_debugger_node.cpp | 2 +- editor/debugger/editor_debugger_tree.cpp | 2 +- editor/editor_audio_buses.cpp | 9 +++--- editor/editor_autoload_settings.cpp | 4 +-- editor/editor_data.cpp | 3 +- editor/editor_file_system.cpp | 2 +- editor/editor_help.cpp | 2 +- editor/editor_help_search.cpp | 2 +- editor/editor_inspector.cpp | 9 +++--- editor/editor_node.cpp | 19 ++++-------- editor/editor_plugin.cpp | 4 +-- editor/editor_properties.cpp | 2 +- editor/editor_properties_array_dict.cpp | 4 +-- editor/editor_resource_preview.cpp | 3 +- editor/export/editor_export_platform.cpp | 2 +- editor/filesystem_dock.cpp | 9 ++---- editor/find_in_files.cpp | 2 +- editor/gui/editor_spin_slider.cpp | 8 ++--- editor/gui/editor_toaster.cpp | 7 +---- editor/gui/editor_toaster.h | 1 - editor/gui/scene_tree_editor.cpp | 14 ++++----- editor/inspector_dock.cpp | 9 ------ editor/localization_editor.cpp | 2 +- .../animation_player_editor_plugin.cpp | 2 +- .../animation_state_machine_editor.cpp | 8 +---- editor/plugins/canvas_item_editor_plugin.cpp | 14 +++++---- .../plugins/gizmos/joint_3d_gizmo_plugin.cpp | 2 +- editor/plugins/node_3d_editor_plugin.cpp | 10 +++--- editor/plugins/script_editor_plugin.cpp | 21 +++---------- editor/plugins/script_text_editor.cpp | 14 ++++----- editor/plugins/shader_editor_plugin.cpp | 4 +-- editor/plugins/skeleton_3d_editor_plugin.cpp | 12 ------- editor/plugins/skeleton_3d_editor_plugin.h | 1 - editor/plugins/text_editor.cpp | 12 +++---- editor/plugins/text_shader_editor.cpp | 10 +++--- editor/plugins/tiles/tile_data_editors.cpp | 4 +-- .../tiles/tile_set_atlas_source_editor.cpp | 2 +- editor/plugins/tiles/tiles_editor_plugin.cpp | 2 +- .../plugins/visual_shader_editor_plugin.cpp | 28 +++++------------ editor/progress_dialog.cpp | 17 ++-------- editor/progress_dialog.h | 5 --- editor/project_manager.cpp | 14 ++++----- editor/renames_map_3_to_4.cpp | 1 - editor/scene_create_dialog.cpp | 2 +- editor/scene_tree_dock.cpp | 3 +- editor/shader_globals_editor.cpp | 3 +- editor/surface_upgrade_tool.cpp | 2 +- main/performance.cpp | 1 - modules/csg/csg_shape.cpp | 4 +-- .../gdscript_text_document.cpp | 2 +- modules/gridmap/grid_map.cpp | 4 +-- modules/noise/noise_texture_2d.cpp | 8 ++--- modules/noise/noise_texture_3d.cpp | 8 ++--- .../editor/openxr_action_map_editor.cpp | 3 +- platform/android/java_godot_lib_jni.cpp | 2 +- platform/linuxbsd/x11/display_server_x11.cpp | 2 +- scene/2d/navigation_region_2d.cpp | 2 +- scene/2d/skeleton_2d.cpp | 7 ++--- scene/3d/bone_attachment_3d.cpp | 2 +- scene/3d/navigation_region_3d.cpp | 3 +- scene/3d/node_3d.cpp | 5 ++- scene/3d/skeleton_3d.cpp | 1 - scene/3d/soft_body_3d.cpp | 4 +-- scene/animation/animation_blend_space_2d.cpp | 4 +-- scene/animation/animation_mixer.cpp | 2 +- scene/animation/animation_tree.cpp | 4 +-- scene/gui/color_picker.cpp | 2 +- scene/gui/container.cpp | 3 +- scene/gui/control.cpp | 3 +- scene/gui/dialogs.cpp | 2 +- scene/gui/line_edit.cpp | 11 +++---- scene/gui/popup.cpp | 2 +- scene/gui/rich_text_label.cpp | 4 +-- scene/gui/scroll_container.cpp | 4 +-- scene/gui/spin_box.cpp | 4 +-- scene/gui/tab_bar.cpp | 1 - scene/gui/text_edit.cpp | 31 ++++++------------- scene/gui/tree.cpp | 4 +-- scene/main/canvas_item.cpp | 5 ++- scene/main/http_request.cpp | 4 +-- scene/main/viewport.cpp | 8 ++--- scene/main/window.cpp | 7 ++--- scene/resources/curve_texture.cpp | 4 --- scene/resources/primitive_meshes.cpp | 9 +++--- scene/resources/tile_set.cpp | 3 +- servers/navigation_server_3d.cpp | 22 ++++++------- 92 files changed, 192 insertions(+), 350 deletions(-) diff --git a/core/variant/callable.cpp b/core/variant/callable.cpp index 0b1174c87398..55f687bdf9c9 100644 --- a/core/variant/callable.cpp +++ b/core/variant/callable.cpp @@ -31,13 +31,12 @@ #include "callable.h" #include "callable_bind.h" -#include "core/object/message_queue.h" #include "core/object/object.h" #include "core/object/ref_counted.h" #include "core/object/script_language.h" void Callable::call_deferredp(const Variant **p_arguments, int p_argcount) const { - MessageQueue::get_singleton()->push_callablep(*this, p_arguments, p_argcount); + MessageQueue::get_singleton()->push_callablep(*this, p_arguments, p_argcount, true); } void Callable::callp(const Variant **p_arguments, int p_argcount, Variant &r_return_value, CallError &r_call_error) const { diff --git a/editor/animation_bezier_editor.cpp b/editor/animation_bezier_editor.cpp index ce9bb1c92b9a..4849a6824cff 100644 --- a/editor/animation_bezier_editor.cpp +++ b/editor/animation_bezier_editor.cpp @@ -908,7 +908,7 @@ void AnimationBezierTrackEdit::gui_input(const Ref &p_event) { if (Math::is_finite(minimum_time) && Math::is_finite(maximum_time) && maximum_time - minimum_time > CMP_EPSILON) { timeline->get_zoom()->set_value(zoom_value); - timeline->call_deferred("set_value", minimum_time); + callable_mp((Range *)timeline, &Range::set_value).call_deferred(minimum_time); } if (Math::is_finite(minimum_value) && Math::is_finite(maximum_value)) { diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index 475ed6dc3cd1..41a6d7786012 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -4613,7 +4613,7 @@ void AnimationTrackEditor::_animation_changed() { } animation_changing_awaiting_update = true; - call_deferred(SNAME("_animation_update")); + callable_mp(this, &AnimationTrackEditor::_animation_update).call_deferred(); } void AnimationTrackEditor::_snap_mode_changed(int p_mode) { @@ -6478,7 +6478,6 @@ void AnimationTrackEditor::_select_all_tracks_for_copy() { } void AnimationTrackEditor::_bind_methods() { - ClassDB::bind_method("_animation_update", &AnimationTrackEditor::_animation_update); ClassDB::bind_method("_track_grab_focus", &AnimationTrackEditor::_track_grab_focus); ClassDB::bind_method("_redraw_tracks", &AnimationTrackEditor::_redraw_tracks); ClassDB::bind_method("_clear_selection_for_anim", &AnimationTrackEditor::_clear_selection_for_anim); diff --git a/editor/audio_stream_preview.cpp b/editor/audio_stream_preview.cpp index c1935b48441f..0b9289ff06d8 100644 --- a/editor/audio_stream_preview.cpp +++ b/editor/audio_stream_preview.cpp @@ -158,7 +158,7 @@ void AudioStreamPreviewGenerator::_preview_thread(void *p_preview) { } frames_todo -= to_read; - singleton->call_deferred(SNAME("_update_emit"), preview->id); + callable_mp(singleton, &AudioStreamPreviewGenerator::_update_emit).call_deferred(preview->id); } preview->preview->version++; @@ -216,7 +216,6 @@ Ref AudioStreamPreviewGenerator::generate_preview(const Ref< } void AudioStreamPreviewGenerator::_bind_methods() { - ClassDB::bind_method("_update_emit", &AudioStreamPreviewGenerator::_update_emit); ClassDB::bind_method(D_METHOD("generate_preview", "stream"), &AudioStreamPreviewGenerator::generate_preview); ADD_SIGNAL(MethodInfo("preview_updated", PropertyInfo(Variant::INT, "obj_id"))); diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index b17affa246c6..d9101466fc2d 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -336,7 +336,7 @@ void FindReplaceBar::_replace_all() { matches_label->add_theme_color_override("font_color", rc > 0 ? get_theme_color(SNAME("font_color"), SNAME("Label")) : get_theme_color(SNAME("error_color"), EditorStringName(Editor))); matches_label->set_text(vformat(TTR("%d replaced."), rc)); - text_editor->call_deferred(SNAME("connect"), "text_changed", callable_mp(this, &FindReplaceBar::_editor_text_changed)); + callable_mp((Object *)text_editor, &Object::connect).call_deferred("text_changed", callable_mp(this, &FindReplaceBar::_editor_text_changed), 0U); results_count = -1; results_count_to_current = -1; needs_to_count_results = true; @@ -517,10 +517,10 @@ void FindReplaceBar::_show_search(bool p_focus_replace, bool p_show_only) { if (p_focus_replace) { search_text->deselect(); - replace_text->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)replace_text, &Control::grab_focus).call_deferred(); } else { replace_text->deselect(); - search_text->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)search_text, &Control::grab_focus).call_deferred(); } if (text_editor->has_selection(0) && !is_selection_only()) { @@ -1572,20 +1572,20 @@ void CodeTextEditor::goto_line(int p_line) { text_editor->remove_secondary_carets(); text_editor->deselect(); text_editor->unfold_line(p_line); - text_editor->call_deferred(SNAME("set_caret_line"), p_line); + callable_mp((TextEdit *)text_editor, &TextEdit::set_caret_line).call_deferred(p_line, true, true, 0, 0); } void CodeTextEditor::goto_line_selection(int p_line, int p_begin, int p_end) { text_editor->remove_secondary_carets(); text_editor->unfold_line(p_line); - text_editor->call_deferred(SNAME("set_caret_line"), p_line); - text_editor->call_deferred(SNAME("set_caret_column"), p_begin); + callable_mp((TextEdit *)text_editor, &TextEdit::set_caret_line).call_deferred(p_line, true, true, 0, 0); + callable_mp((TextEdit *)text_editor, &TextEdit::set_caret_column).call_deferred(p_begin, true, 0); text_editor->select(p_line, p_begin, p_line, p_end); } void CodeTextEditor::goto_line_centered(int p_line) { goto_line(p_line); - text_editor->call_deferred(SNAME("center_viewport_to_caret")); + callable_mp((TextEdit *)text_editor, &TextEdit::center_viewport_to_caret).call_deferred(0); } void CodeTextEditor::set_executing_line(int p_line) { diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp index c4ca90d1e13a..49d997fc6aaa 100644 --- a/editor/create_dialog.cpp +++ b/editor/create_dialog.cpp @@ -474,7 +474,7 @@ void CreateDialog::_notification(int p_what) { case NOTIFICATION_VISIBILITY_CHANGED: { if (is_visible()) { - search_box->call_deferred(SNAME("grab_focus")); // still not visible + callable_mp((Control *)search_box, &Control::grab_focus).call_deferred(); // Still not visible. search_box->select_all(); } else { EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "create_new_node", Rect2(get_position(), get_size())); diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp index 8229abb5a027..372d558aab7e 100644 --- a/editor/debugger/editor_debugger_node.cpp +++ b/editor/debugger/editor_debugger_node.cpp @@ -455,7 +455,7 @@ void EditorDebuggerNode::_debugger_wants_stop(int p_id) { // Ask editor to kill PID. int pid = get_debugger(p_id)->get_remote_pid(); if (pid) { - EditorNode::get_singleton()->call_deferred(SNAME("stop_child_process"), pid); + callable_mp(EditorNode::get_singleton(), &EditorNode::stop_child_process).call_deferred(pid); } } diff --git a/editor/debugger/editor_debugger_tree.cpp b/editor/debugger/editor_debugger_tree.cpp index 6305b7435aea..7d3ea33fb530 100644 --- a/editor/debugger/editor_debugger_tree.cpp +++ b/editor/debugger/editor_debugger_tree.cpp @@ -253,7 +253,7 @@ void EditorDebuggerTree::update_scene_tree(const SceneDebuggerTree *p_tree, int } debugger_id = p_debugger; // Needed by hook, could be avoided if every debugger had its own tree if (scroll_item) { - call_deferred(SNAME("scroll_to_item"), scroll_item); + callable_mp((Tree *)this, &Tree::scroll_to_item).call_deferred(scroll_item, false); } last_filter = filter; updating_scene_tree = false; diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index f4a9e0a2ef07..c1183c8d66f8 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -1234,7 +1234,7 @@ void EditorAudioBuses::_load_default_layout() { AudioServer::get_singleton()->set_bus_layout(state); _rebuild_buses(); EditorUndoRedoManager::get_singleton()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); - call_deferred(SNAME("_select_layout")); + callable_mp(this, &EditorAudioBuses::_select_layout).call_deferred(); } void EditorAudioBuses::_file_dialog_callback(const String &p_string) { @@ -1250,7 +1250,7 @@ void EditorAudioBuses::_file_dialog_callback(const String &p_string) { AudioServer::get_singleton()->set_bus_layout(state); _rebuild_buses(); EditorUndoRedoManager::get_singleton()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); - call_deferred(SNAME("_select_layout")); + callable_mp(this, &EditorAudioBuses::_select_layout).call_deferred(); } else if (file_dialog->get_file_mode() == EditorFileDialog::FILE_MODE_SAVE_FILE) { if (new_layout) { @@ -1270,14 +1270,13 @@ void EditorAudioBuses::_file_dialog_callback(const String &p_string) { file->set_text(String(TTR("Layout:")) + " " + p_string.get_file()); _rebuild_buses(); EditorUndoRedoManager::get_singleton()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); - call_deferred(SNAME("_select_layout")); + callable_mp(this, &EditorAudioBuses::_select_layout).call_deferred(); } } void EditorAudioBuses::_bind_methods() { ClassDB::bind_method("_update_bus", &EditorAudioBuses::_update_bus); ClassDB::bind_method("_update_sends", &EditorAudioBuses::_update_sends); - ClassDB::bind_method("_select_layout", &EditorAudioBuses::_select_layout); } EditorAudioBuses::EditorAudioBuses() { @@ -1370,7 +1369,7 @@ void EditorAudioBuses::open_layout(const String &p_path) { AudioServer::get_singleton()->set_bus_layout(state); _rebuild_buses(); EditorUndoRedoManager::get_singleton()->clear_history(true, EditorUndoRedoManager::GLOBAL_HISTORY); - call_deferred(SNAME("_select_layout")); + callable_mp(this, &EditorAudioBuses::_select_layout).call_deferred(); } void AudioBusesEditorPlugin::edit(Object *p_node) { diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp index 204b71729638..6a167e43689b 100644 --- a/editor/editor_autoload_settings.cpp +++ b/editor/editor_autoload_settings.cpp @@ -57,7 +57,7 @@ void EditorAutoloadSettings::_notification(int p_what) { for (const AutoloadInfo &info : autoload_cache) { if (info.node && info.in_editor) { - get_tree()->get_root()->call_deferred(SNAME("add_child"), info.node); + callable_mp((Node *)get_tree()->get_root(), &Node::add_child).call_deferred(info.node, false, Node::INTERNAL_MODE_DISABLED); } } browse_button->set_icon(get_editor_theme_icon(SNAME("Folder"))); @@ -533,7 +533,7 @@ void EditorAutoloadSettings::update_autoload() { } if (info.in_editor) { ERR_CONTINUE(!info.node); - get_tree()->get_root()->call_deferred(SNAME("remove_child"), info.node); + callable_mp((Node *)get_tree()->get_root(), &Node::remove_child).call_deferred(info.node); } if (info.node) { diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index fe8c42ea3b4d..5f77959127c3 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -1242,7 +1242,6 @@ void EditorSelection::_bind_methods() { ClassDB::bind_method(D_METHOD("remove_node", "node"), &EditorSelection::remove_node); ClassDB::bind_method(D_METHOD("get_selected_nodes"), &EditorSelection::get_selected_nodes); ClassDB::bind_method(D_METHOD("get_transformable_selected_nodes"), &EditorSelection::_get_transformable_selected_nodes); - ClassDB::bind_method(D_METHOD("_emit_change"), &EditorSelection::_emit_change); ADD_SIGNAL(MethodInfo("selection_changed")); } @@ -1290,7 +1289,7 @@ void EditorSelection::update() { changed = false; if (!emitted) { emitted = true; - call_deferred(SNAME("_emit_change")); + callable_mp(this, &EditorSelection::_emit_change).call_deferred(); } } diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index d52dd424938c..aab433ac276d 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -2693,7 +2693,7 @@ EditorFileSystem::EditorFileSystem() { using_fat32_or_exfat = (da->get_filesystem_type() == "FAT32" || da->get_filesystem_type() == "exFAT"); scan_total = 0; - MessageQueue::get_singleton()->push_callable(callable_mp(ResourceUID::get_singleton(), &ResourceUID::clear)); // Will be updated on scan. + callable_mp(ResourceUID::get_singleton(), &ResourceUID::clear).call_deferred(); // Will be updated on scan. ResourceSaver::set_get_resource_id_for_path(_resource_saver_get_resource_id_for_path); } diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index cdb187bd44bc..6e448d886641 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -1966,7 +1966,7 @@ void EditorHelp::_help_callback(const String &p_topic) { } if (class_desc->is_ready()) { - class_desc->call_deferred(SNAME("scroll_to_paragraph"), line); + callable_mp(class_desc, &RichTextLabel::scroll_to_paragraph).call_deferred(line); } else { scroll_to = line; } diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp index 44698d93f66a..64bd209d4df9 100644 --- a/editor/editor_help_search.cpp +++ b/editor/editor_help_search.cpp @@ -96,7 +96,7 @@ void EditorHelpSearch::_notification(int p_what) { switch (p_what) { case NOTIFICATION_VISIBILITY_CHANGED: { if (!is_visible()) { - results_tree->call_deferred(SNAME("clear")); // Wait for the Tree's mouse event propagation. + callable_mp(results_tree, &Tree::clear).call_deferred(); // Wait for the Tree's mouse event propagation. get_ok_button()->set_disabled(true); EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "search_help", Rect2(get_position(), get_size())); } diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 5fd387bbdc35..6809739dc1a7 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -695,15 +695,14 @@ void EditorProperty::gui_input(const Ref &p_event) { new_coords.y++; } if (new_coords.x < int64_t(object->get("hframes")) && new_coords.y < int64_t(object->get("vframes"))) { - call_deferred(SNAME("emit_changed"), property, new_coords, "", false); + callable_mp(this, &EditorProperty::emit_changed).call_deferred(property, new_coords, "", false); } } else { if (int64_t(object->get(property)) + 1 < (int64_t(object->get("hframes")) * int64_t(object->get("vframes")))) { - call_deferred(SNAME("emit_changed"), property, object->get(property).operator int64_t() + 1, "", false); + callable_mp(this, &EditorProperty::emit_changed).call_deferred(property, object->get(property).operator int64_t() + 1, "", false); } } - - call_deferred(SNAME("update_property")); + callable_mp(this, &EditorProperty::update_property).call_deferred(); } } if (delete_rect.has_point(mpos)) { @@ -3980,7 +3979,7 @@ void EditorInspector::_notification(int p_what) { case NOTIFICATION_PROCESS: { if (update_scroll_request >= 0) { - get_v_scroll_bar()->call_deferred(SNAME("set_value"), update_scroll_request); + callable_mp((Range *)get_v_scroll_bar(), &Range::set_value).call_deferred(update_scroll_request); update_scroll_request = -1; } if (update_tree_pending) { diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 549f62276d76..0e295dabd42c 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -38,7 +38,6 @@ #include "core/io/resource_loader.h" #include "core/io/resource_saver.h" #include "core/object/class_db.h" -#include "core/object/message_queue.h" #include "core/os/keyboard.h" #include "core/os/os.h" #include "core/os/time.h" @@ -668,7 +667,7 @@ void EditorNode::_notification(int p_what) { command_palette->register_shortcuts_as_command(); - MessageQueue::get_singleton()->push_callable(callable_mp(this, &EditorNode::_begin_first_scan)); + callable_mp(this, &EditorNode::_begin_first_scan).call_deferred(); /* DO NOT LOAD SCENES HERE, WAIT FOR FILE SCANNING AND REIMPORT TO COMPLETE */ } break; @@ -1107,7 +1106,7 @@ void EditorNode::_scan_external_changes() { } if (need_reload) { - disk_changed->call_deferred(SNAME("popup_centered_ratio"), 0.3); + callable_mp((Window *)disk_changed, &Window::popup_centered_ratio).call_deferred(0.3); } } @@ -3707,7 +3706,7 @@ void EditorNode::_set_current_scene_nocheck(int p_idx) { callable_mp(scene_tabs, &EditorSceneTabs::update_scene_tabs).call_deferred(); if (tabs_to_close.is_empty()) { - call_deferred(SNAME("_set_main_scene_state"), state, get_edited_scene()); // Do after everything else is done setting up. + callable_mp(this, &EditorNode::_set_main_scene_state).call_deferred(state, get_edited_scene()); // Do after everything else is done setting up. } } @@ -4097,7 +4096,7 @@ bool EditorNode::has_previous_scenes() const { void EditorNode::edit_foreign_resource(Ref p_resource) { load_scene(p_resource->get_path().get_slice("::", 0)); - InspectorDock::get_singleton()->call_deferred("edit_resource", p_resource); + callable_mp(InspectorDock::get_singleton(), &InspectorDock::edit_resource).call_deferred(p_resource); } bool EditorNode::is_resource_read_only(Ref p_resource, bool p_foreign_resources_are_writable) { @@ -4176,7 +4175,7 @@ void EditorNode::_add_to_recent_scenes(const String &p_scene) { void EditorNode::_open_recent_scene(int p_idx) { if (p_idx == recent_scenes->get_item_count() - 1) { EditorSettings::get_singleton()->set_project_metadata("recent_files", "scenes", Array()); - call_deferred(SNAME("_update_recent_scenes")); + callable_mp(this, &EditorNode::_update_recent_scenes).call_deferred(); } else { Array rc = EditorSettings::get_singleton()->get_project_metadata("recent_files", "scenes", Array()); ERR_FAIL_INDEX(p_idx, rc.size()); @@ -5259,7 +5258,7 @@ void EditorNode::_load_docks_from_config(Ref p_layout, const String int selected_tab_idx = p_layout->get_value(p_section, "dock_" + itos(i + 1) + "_selected_tab_idx"); if (selected_tab_idx >= 0 && selected_tab_idx < dock_slot[i]->get_tab_count()) { - dock_slot[i]->call_deferred("set_current_tab", selected_tab_idx); + callable_mp(dock_slot[i], &TabContainer::set_current_tab).call_deferred(selected_tab_idx); } } @@ -6677,15 +6676,9 @@ void EditorNode::_bind_methods() { ClassDB::bind_method(D_METHOD("push_item", "object", "property", "inspector_only"), &EditorNode::push_item, DEFVAL(""), DEFVAL(false)); ClassDB::bind_method("set_edited_scene", &EditorNode::set_edited_scene); - ClassDB::bind_method("open_request", &EditorNode::open_request); - ClassDB::bind_method("edit_foreign_resource", &EditorNode::edit_foreign_resource); - ClassDB::bind_method("is_resource_read_only", &EditorNode::is_resource_read_only); ClassDB::bind_method("stop_child_process", &EditorNode::stop_child_process); - ClassDB::bind_method("_set_main_scene_state", &EditorNode::_set_main_scene_state); - ClassDB::bind_method("_update_recent_scenes", &EditorNode::_update_recent_scenes); - ADD_SIGNAL(MethodInfo("request_help_search")); ADD_SIGNAL(MethodInfo("script_add_function_request", PropertyInfo(Variant::OBJECT, "obj"), PropertyInfo(Variant::STRING, "function"), PropertyInfo(Variant::PACKED_STRING_ARRAY, "args"))); ADD_SIGNAL(MethodInfo("resource_saved", PropertyInfo(Variant::OBJECT, "obj"))); diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp index e79f662cc918..49c62a3a6c2c 100644 --- a/editor/editor_plugin.cpp +++ b/editor/editor_plugin.cpp @@ -402,13 +402,13 @@ void EditorPlugin::remove_translation_parser_plugin(const Ref &p_importer, bool p_first_priority) { ERR_FAIL_COND(!p_importer.is_valid()); ResourceFormatImporter::get_singleton()->add_importer(p_importer, p_first_priority); - EditorFileSystem::get_singleton()->call_deferred(SNAME("scan")); + callable_mp(EditorFileSystem::get_singleton(), &EditorFileSystem::scan).call_deferred(); } void EditorPlugin::remove_import_plugin(const Ref &p_importer) { ERR_FAIL_COND(!p_importer.is_valid()); ResourceFormatImporter::get_singleton()->remove_importer(p_importer); - EditorFileSystem::get_singleton()->call_deferred(SNAME("scan")); + callable_mp(EditorFileSystem::get_singleton(), &EditorFileSystem::scan).call_deferred(); } void EditorPlugin::add_export_plugin(const Ref &p_exporter) { diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 27530dc64155..404f1151f138 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -3013,7 +3013,7 @@ void EditorPropertyResource::_resource_selected(const Ref &p_resource, if (extensions.find(parent.get_extension()) && (!EditorNode::get_singleton()->get_edited_scene() || EditorNode::get_singleton()->get_edited_scene()->get_scene_file_path() != parent)) { // If the resource belongs to another (non-imported) scene, edit it in that scene instead. if (!FileAccess::exists(parent + ".import")) { - EditorNode::get_singleton()->call_deferred("edit_foreign_resource", p_resource); + callable_mp(EditorNode::get_singleton(), &EditorNode::edit_foreign_resource).call_deferred(p_resource); return; } } diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index 256f9c0ea94d..7f9d80961bf6 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -407,8 +407,8 @@ void EditorPropertyArray::update_property() { new_prop->connect(SNAME("object_id_selected"), callable_mp(this, &EditorPropertyArray::_object_id_selected)); new_prop->set_h_size_flags(SIZE_EXPAND_FILL); new_prop->set_read_only(is_read_only()); - slot.prop->call_deferred("add_sibling", new_prop); - slot.prop->call_deferred("queue_free"); + callable_mp((Node *)slot.prop, &Node::add_sibling).call_deferred(new_prop, false); + callable_mp((Node *)slot.prop, &Node::queue_free).call_deferred(); slot.prop = new_prop; slot.set_index(idx); } diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp index b3340dffc128..f21f0ac21621 100644 --- a/editor/editor_resource_preview.cpp +++ b/editor/editor_resource_preview.cpp @@ -34,7 +34,6 @@ #include "core/io/file_access.h" #include "core/io/resource_loader.h" #include "core/io/resource_saver.h" -#include "core/object/message_queue.h" #include "core/variant/variant_utility.h" #include "editor/editor_node.h" #include "editor/editor_paths.h" @@ -123,7 +122,7 @@ void EditorResourcePreview::_preview_ready(const String &p_path, int p_hash, con cache[p_path] = item; } - MessageQueue::get_singleton()->push_call(id, p_func, p_path, p_texture, p_small_texture, p_ud); + Callable(id, p_func).call_deferred(p_path, p_texture, p_small_texture, p_ud); } void EditorResourcePreview::_generate_preview(Ref &r_texture, Ref &r_small_texture, const QueueItem &p_item, const String &cache_base, Dictionary &p_metadata) { diff --git a/editor/export/editor_export_platform.cpp b/editor/export/editor_export_platform.cpp index 9a0d84d75198..855d610d72cb 100644 --- a/editor/export/editor_export_platform.cpp +++ b/editor/export/editor_export_platform.cpp @@ -901,7 +901,7 @@ Vector EditorExportPlatform::get_forced_export_files() { if (FileAccess::exists(abs_path)) { files.push_back(ts_data); // Remove the file later. - MessageQueue::get_singleton()->push_callable(callable_mp_static(DirAccess::remove_absolute), abs_path); + callable_mp_static(DirAccess::remove_absolute).call_deferred(abs_path); } } } diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 12a3478e4431..4e94ff11293e 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -651,7 +651,7 @@ void FileSystemDock::_notification(int p_what) { void FileSystemDock::_tree_multi_selected(Object *p_item, int p_column, bool p_selected) { // Update the import dock. import_dock_needs_update = true; - call_deferred(SNAME("_update_import_dock")); + callable_mp(this, &FileSystemDock::_update_import_dock).call_deferred(); // Return if we don't select something new. if (!p_selected) { @@ -3329,7 +3329,7 @@ void FileSystemDock::_file_multi_selected(int p_index, bool p_selected) { // Update the import dock. import_dock_needs_update = true; - call_deferred(SNAME("_update_import_dock")); + callable_mp(this, &FileSystemDock::_update_import_dock).call_deferred(); } void FileSystemDock::_tree_mouse_exited() { @@ -3645,16 +3645,11 @@ MenuButton *FileSystemDock::_create_file_menu_button() { } void FileSystemDock::_bind_methods() { - ClassDB::bind_method(D_METHOD("_update_tree"), &FileSystemDock::_update_tree); - ClassDB::bind_method(D_METHOD("_file_list_thumbnail_done"), &FileSystemDock::_file_list_thumbnail_done); ClassDB::bind_method(D_METHOD("_tree_thumbnail_done"), &FileSystemDock::_tree_thumbnail_done); - ClassDB::bind_method(D_METHOD("_select_file"), &FileSystemDock::_select_file); ClassDB::bind_method(D_METHOD("navigate_to_path", "path"), &FileSystemDock::navigate_to_path); - ClassDB::bind_method(D_METHOD("_update_import_dock"), &FileSystemDock::_update_import_dock); - ClassDB::bind_method(D_METHOD("add_resource_tooltip_plugin", "plugin"), &FileSystemDock::add_resource_tooltip_plugin); ClassDB::bind_method(D_METHOD("remove_resource_tooltip_plugin", "plugin"), &FileSystemDock::remove_resource_tooltip_plugin); diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp index c83fa82c1337..a81aa971f388 100644 --- a/editor/find_in_files.cpp +++ b/editor/find_in_files.cpp @@ -465,7 +465,7 @@ void FindInFilesDialog::_notification(int p_what) { case NOTIFICATION_VISIBILITY_CHANGED: { if (is_visible()) { // Doesn't work more than once if not deferred... - _search_text_line_edit->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)_search_text_line_edit, &Control::grab_focus).call_deferred(); _search_text_line_edit->select_all(); // Extensions might have changed in the meantime, we clean them and instance them again. for (int i = 0; i < _filters_container->get_child_count(); i++) { diff --git a/editor/gui/editor_spin_slider.cpp b/editor/gui/editor_spin_slider.cpp index 750837cce90c..051e4340bc31 100644 --- a/editor/gui/editor_spin_slider.cpp +++ b/editor/gui/editor_spin_slider.cpp @@ -92,7 +92,7 @@ void EditorSpinSlider::gui_input(const Ref &p_event) { } } else if (mb->get_button_index() == MouseButton::WHEEL_UP || mb->get_button_index() == MouseButton::WHEEL_DOWN) { if (grabber->is_visible()) { - call_deferred(SNAME("queue_redraw")); + callable_mp((CanvasItem *)this, &CanvasItem::queue_redraw).call_deferred(); } } } @@ -637,11 +637,11 @@ void EditorSpinSlider::_focus_entered() { _ensure_input_popup(); value_input->set_text(get_text_value()); value_input_popup->set_size(get_size()); - value_input_popup->call_deferred(SNAME("show")); - value_input->call_deferred(SNAME("grab_focus")); - value_input->call_deferred(SNAME("select_all")); value_input->set_focus_next(find_next_valid_focus()->get_path()); value_input->set_focus_previous(find_prev_valid_focus()->get_path()); + callable_mp((CanvasItem *)value_input_popup, &CanvasItem::show).call_deferred(); + callable_mp((Control *)value_input, &Control::grab_focus).call_deferred(); + callable_mp(value_input, &LineEdit ::select_all).call_deferred(); emit_signal("value_focus_entered"); } diff --git a/editor/gui/editor_toaster.cpp b/editor/gui/editor_toaster.cpp index 1abb5915083d..ac54a5a371a3 100644 --- a/editor/gui/editor_toaster.cpp +++ b/editor/gui/editor_toaster.cpp @@ -406,7 +406,7 @@ void EditorToaster::popup_str(String p_message, Severity p_severity, String p_to // Since "_popup_str" adds nodes to the tree, and since the "add_child" method is not // thread-safe, it's better to defer the call to the next cycle to be thread-safe. is_processing_error = true; - call_deferred(SNAME("_popup_str"), p_message, p_severity, p_tooltip); + callable_mp(this, &EditorToaster::_popup_str).call_deferred(p_message, p_severity, p_tooltip); is_processing_error = false; } @@ -499,11 +499,6 @@ EditorToaster *EditorToaster::get_singleton() { return singleton; } -void EditorToaster::_bind_methods() { - // Binding method to make it defer-able. - ClassDB::bind_method(D_METHOD("_popup_str", "message", "severity", "tooltip"), &EditorToaster::_popup_str); -} - EditorToaster::EditorToaster() { set_notify_transform(true); set_process_internal(true); diff --git a/editor/gui/editor_toaster.h b/editor/gui/editor_toaster.h index 3e39d9d5191a..5034cb66fc5d 100644 --- a/editor/gui/editor_toaster.h +++ b/editor/gui/editor_toaster.h @@ -105,7 +105,6 @@ class EditorToaster : public HBoxContainer { protected: static EditorToaster *singleton; - static void _bind_methods(); void _notification(int p_what); diff --git a/editor/gui/scene_tree_editor.cpp b/editor/gui/scene_tree_editor.cpp index 33135a6bea65..766a50726006 100644 --- a/editor/gui/scene_tree_editor.cpp +++ b/editor/gui/scene_tree_editor.cpp @@ -31,7 +31,6 @@ #include "scene_tree_editor.h" #include "core/config/project_settings.h" -#include "core/object/message_queue.h" #include "core/object/script_language.h" #include "editor/editor_file_system.h" #include "editor/editor_node.h" @@ -593,7 +592,7 @@ void SceneTreeEditor::_node_script_changed(Node *p_node) { return; } - MessageQueue::get_singleton()->push_call(this, "_update_tree"); + callable_mp(this, &SceneTreeEditor::_update_tree).call_deferred(false); tree_dirty = true; } @@ -626,7 +625,7 @@ void SceneTreeEditor::_node_renamed(Node *p_node) { emit_signal(SNAME("node_renamed")); if (!tree_dirty) { - MessageQueue::get_singleton()->push_call(this, "_update_tree"); + callable_mp(this, &SceneTreeEditor::_update_tree).call_deferred(false); tree_dirty = true; } } @@ -843,12 +842,12 @@ void SceneTreeEditor::_test_update_tree() { return; // did not change } - MessageQueue::get_singleton()->push_call(this, "_update_tree"); + callable_mp(this, &SceneTreeEditor::_update_tree).call_deferred(false); tree_dirty = true; } void SceneTreeEditor::_tree_process_mode_changed() { - MessageQueue::get_singleton()->push_call(this, "_update_tree"); + callable_mp(this, &SceneTreeEditor::_update_tree).call_deferred(false); tree_dirty = true; } @@ -863,7 +862,7 @@ void SceneTreeEditor::_tree_changed() { return; } - MessageQueue::get_singleton()->push_call(this, "_test_update_tree"); + callable_mp(this, &SceneTreeEditor::_test_update_tree).call_deferred(); pending_test_update = true; } @@ -1484,7 +1483,6 @@ void SceneTreeEditor::set_connecting_signal(bool p_enable) { void SceneTreeEditor::_bind_methods() { ClassDB::bind_method(D_METHOD("_update_tree"), &SceneTreeEditor::_update_tree, DEFVAL(false)); // Still used by UndoRedo. ClassDB::bind_method("_rename_node", &SceneTreeEditor::_rename_node); - ClassDB::bind_method("_test_update_tree", &SceneTreeEditor::_test_update_tree); ClassDB::bind_method(D_METHOD("update_tree"), &SceneTreeEditor::update_tree); @@ -1642,7 +1640,7 @@ void SceneTreeDialog::_notification(int p_what) { tree->update_tree(); // Select the search bar by default. - filter->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)filter, &Control::grab_focus).call_deferred(); } } break; diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp index 1ee273f64b30..1b413c09780f 100644 --- a/editor/inspector_dock.cpp +++ b/editor/inspector_dock.cpp @@ -461,15 +461,6 @@ void InspectorDock::_notification(int p_what) { } void InspectorDock::_bind_methods() { - ClassDB::bind_method("_unref_resource", &InspectorDock::_unref_resource); - ClassDB::bind_method("_paste_resource", &InspectorDock::_paste_resource); - ClassDB::bind_method("_copy_resource", &InspectorDock::_copy_resource); - - ClassDB::bind_method("_menu_collapseall", &InspectorDock::_menu_collapseall); - ClassDB::bind_method("_menu_expandall", &InspectorDock::_menu_expandall); - - ClassDB::bind_method("edit_resource", &InspectorDock::edit_resource); - ClassDB::bind_method("store_script_properties", &InspectorDock::store_script_properties); ClassDB::bind_method("apply_script_properties", &InspectorDock::apply_script_properties); diff --git a/editor/localization_editor.cpp b/editor/localization_editor.cpp index 71906b58e795..46c6ef571263 100644 --- a/editor/localization_editor.cpp +++ b/editor/localization_editor.cpp @@ -189,7 +189,7 @@ void LocalizationEditor::_translation_res_select() { if (updating_translations) { return; } - call_deferred(SNAME("update_translations")); + callable_mp(this, &LocalizationEditor::update_translations).call_deferred(); } void LocalizationEditor::_translation_res_option_popup(bool p_arrow_clicked) { diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp index 84251e147684..fe2ce707353b 100644 --- a/editor/plugins/animation_player_editor_plugin.cpp +++ b/editor/plugins/animation_player_editor_plugin.cpp @@ -2139,7 +2139,7 @@ void AnimationPlayerEditorPlugin::_clear_dummy_player() { } Node *parent = dummy_player->get_parent(); if (parent) { - parent->call_deferred("remove_child", dummy_player); + callable_mp(parent, &Node::remove_child).call_deferred(dummy_player); } dummy_player->queue_free(); dummy_player = nullptr; diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp index e9c8b0c6108f..0e61a7e29f6b 100644 --- a/editor/plugins/animation_state_machine_editor.cpp +++ b/editor/plugins/animation_state_machine_editor.cpp @@ -203,7 +203,7 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Refget_position())) { //edit name - call_deferred(SNAME("_open_editor"), node_rects[i].node_name); + callable_mp(this, &AnimationNodeStateMachineEditor::_open_editor).call_deferred(node_rects[i].node_name); return; } @@ -1610,12 +1610,6 @@ void AnimationNodeStateMachineEditor::_update_mode() { void AnimationNodeStateMachineEditor::_bind_methods() { ClassDB::bind_method("_update_graph", &AnimationNodeStateMachineEditor::_update_graph); - ClassDB::bind_method("_open_editor", &AnimationNodeStateMachineEditor::_open_editor); - ClassDB::bind_method("_connect_to", &AnimationNodeStateMachineEditor::_connect_to); - ClassDB::bind_method("_stop_connecting", &AnimationNodeStateMachineEditor::_stop_connecting); - ClassDB::bind_method("_delete_selected", &AnimationNodeStateMachineEditor::_delete_selected); - ClassDB::bind_method("_delete_all", &AnimationNodeStateMachineEditor::_delete_all); - ClassDB::bind_method("_delete_tree_draw", &AnimationNodeStateMachineEditor::_delete_tree_draw); BIND_THEME_ITEM_EXT(Theme::DATA_TYPE_STYLEBOX, AnimationNodeStateMachineEditor, panel_style, "panel", "GraphStateMachine"); BIND_THEME_ITEM_EXT(Theme::DATA_TYPE_STYLEBOX, AnimationNodeStateMachineEditor, error_panel_style, "error_panel", "GraphStateMachine"); diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index 945b026a21ef..f16aff555c88 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -976,7 +976,7 @@ void CanvasItemEditor::_node_created(Node *p_node) { c->_edit_set_position(xform.xform(node_create_position)); } - call_deferred(SNAME("_reset_create_position")); // Defer the call in case more than one node is added. + callable_mp(this, &CanvasItemEditor::_reset_create_position).call_deferred(); // Defer the call in case more than one node is added. } void CanvasItemEditor::_reset_create_position() { @@ -2610,7 +2610,7 @@ void CanvasItemEditor::_gui_input_viewport(const Ref &p_event) { // Grab focus if (!viewport->has_focus() && (!get_viewport()->gui_get_focus_owner() || !get_viewport()->gui_get_focus_owner()->is_text_field())) { - viewport->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)viewport, &Control::grab_focus).call_deferred(); } } @@ -3911,6 +3911,11 @@ void CanvasItemEditor::_update_editor_settings() { void CanvasItemEditor::_notification(int p_what) { switch (p_what) { + case NOTIFICATION_READY: { + EditorRunBar::get_singleton()->connect("play_pressed", callable_mp(this, &CanvasItemEditor::_update_override_camera_button).bind(true)); + EditorRunBar::get_singleton()->connect("stop_pressed", callable_mp(this, &CanvasItemEditor::_update_override_camera_button).bind(false)); + } break; + case NOTIFICATION_PHYSICS_PROCESS: { EditorNode::get_singleton()->get_scene_root()->set_snap_controls_to_pixels(GLOBAL_GET("gui/common/snap_controls_to_pixels")); @@ -4723,7 +4728,7 @@ void CanvasItemEditor::_focus_selection(int p_op) { zoom *= 0.90; zoom_widget->set_zoom(zoom); viewport->queue_redraw(); // Redraw to update the global canvas transform after zoom changes. - call_deferred(SNAME("center_at"), rect.get_center()); // Defer because the updated transform is needed. + callable_mp(this, &CanvasItemEditor::center_at).call_deferred(rect.get_center()); // Defer because the updated transform is needed. } else { center_at(rect.get_center()); } @@ -5080,9 +5085,6 @@ CanvasItemEditor::CanvasItemEditor() { SceneTreeDock::get_singleton()->connect("node_created", callable_mp(this, &CanvasItemEditor::_node_created)); SceneTreeDock::get_singleton()->connect("add_node_used", callable_mp(this, &CanvasItemEditor::_reset_create_position)); - EditorRunBar::get_singleton()->call_deferred(SNAME("connect"), "play_pressed", callable_mp(this, &CanvasItemEditor::_update_override_camera_button).bind(true)); - EditorRunBar::get_singleton()->call_deferred(SNAME("connect"), "stop_pressed", callable_mp(this, &CanvasItemEditor::_update_override_camera_button).bind(false)); - // Add some margin to the sides for better esthetics. // This prevents the first button's hover/pressed effect from "touching" the panel's border, // which looks ugly. diff --git a/editor/plugins/gizmos/joint_3d_gizmo_plugin.cpp b/editor/plugins/gizmos/joint_3d_gizmo_plugin.cpp index 1fce7f5efb05..3a8a0cff962b 100644 --- a/editor/plugins/gizmos/joint_3d_gizmo_plugin.cpp +++ b/editor/plugins/gizmos/joint_3d_gizmo_plugin.cpp @@ -284,7 +284,7 @@ Joint3DGizmoPlugin::Joint3DGizmoPlugin() { update_timer->set_wait_time(1.0 / 120.0); update_timer->connect("timeout", callable_mp(this, &Joint3DGizmoPlugin::incremental_update_gizmos)); update_timer->set_autostart(true); - EditorNode::get_singleton()->call_deferred(SNAME("add_child"), update_timer); + callable_mp((Node *)EditorNode::get_singleton(), &Node::add_child).call_deferred(update_timer, false, Node::INTERNAL_MODE_DISABLED); } void Joint3DGizmoPlugin::incremental_update_gizmos() { diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index dc1f9f8bd28b..e4d24832bff2 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -2734,11 +2734,11 @@ void Node3DEditorViewport::_notification(int p_what) { } else { set_freelook_active(false); } - call_deferred(SNAME("update_transform_gizmo_view")); + callable_mp(this, &Node3DEditorViewport::update_transform_gizmo_view).call_deferred(); } break; case NOTIFICATION_RESIZED: { - call_deferred(SNAME("update_transform_gizmo_view")); + callable_mp(this, &Node3DEditorViewport::update_transform_gizmo_view).call_deferred(); } break; case NOTIFICATION_PROCESS: { @@ -3355,7 +3355,7 @@ void Node3DEditorViewport::_menu_option(int p_option) { view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(VIEW_ORTHOGONAL), false); orthogonal = false; auto_orthogonal = false; - call_deferred(SNAME("update_transform_gizmo_view")); + callable_mp(this, &Node3DEditorViewport::update_transform_gizmo_view).call_deferred(); _update_camera(0); _update_name(); @@ -3365,7 +3365,7 @@ void Node3DEditorViewport::_menu_option(int p_option) { view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(VIEW_ORTHOGONAL), true); orthogonal = true; auto_orthogonal = false; - call_deferred(SNAME("update_transform_gizmo_view")); + callable_mp(this, &Node3DEditorViewport::update_transform_gizmo_view).call_deferred(); _update_camera(0); _update_name(); } break; @@ -3985,8 +3985,6 @@ Dictionary Node3DEditorViewport::get_state() const { } void Node3DEditorViewport::_bind_methods() { - ClassDB::bind_method(D_METHOD("update_transform_gizmo_view"), &Node3DEditorViewport::update_transform_gizmo_view); // Used by call_deferred. - ADD_SIGNAL(MethodInfo("toggle_maximize_view", PropertyInfo(Variant::OBJECT, "viewport"))); ADD_SIGNAL(MethodInfo("clicked", PropertyInfo(Variant::OBJECT, "viewport"))); } diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index eb1c5d249b22..9a8164a3cf2d 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -733,7 +733,7 @@ void ScriptEditor::_open_recent_script(int p_idx) { // clear button if (p_idx == recent_scripts->get_item_count() - 1) { EditorSettings::get_singleton()->set_project_metadata("recent_files", "scripts", Array()); - call_deferred(SNAME("_update_recent_scripts")); + callable_mp(this, &ScriptEditor::_update_recent_scripts).call_deferred(); return; } @@ -1031,7 +1031,7 @@ void ScriptEditor::_scene_saved_callback(const String &p_path) { void ScriptEditor::trigger_live_script_reload() { if (!pending_auto_reload && auto_reload_running_scripts) { - call_deferred(SNAME("_live_auto_reload_running_scripts")); + callable_mp(this, &ScriptEditor::_live_auto_reload_running_scripts).call_deferred(); pending_auto_reload = true; } } @@ -1082,7 +1082,7 @@ bool ScriptEditor::_test_script_times_on_disk(Ref p_for_script) { script_editor->reload_scripts(); need_reload = false; } else { - disk_changed->call_deferred(SNAME("popup_centered_ratio"), 0.3); + callable_mp((Window *)disk_changed, &Window::popup_centered_ratio).call_deferred(0.3); } } @@ -2873,7 +2873,7 @@ void ScriptEditor::_tree_changed() { } waiting_update_names = true; - call_deferred(SNAME("_update_script_names")); + callable_mp(this, &ScriptEditor::_update_script_names).call_deferred(); } void ScriptEditor::_split_dragged(float) { @@ -3393,7 +3393,7 @@ void ScriptEditor::_help_class_goto(const String &p_desc) { _update_script_names(); _save_layout(); - call_deferred("_help_tab_goto", cname, p_desc); + callable_mp(this, &ScriptEditor::_help_tab_goto).call_deferred(cname, p_desc); } bool ScriptEditor::_help_tab_goto(const String &p_name, const String &p_desc) { @@ -3791,18 +3791,7 @@ void ScriptEditor::_filter_methods_text_changed(const String &p_newtext) { } void ScriptEditor::_bind_methods() { - ClassDB::bind_method("_close_docs_tab", &ScriptEditor::_close_docs_tab); - ClassDB::bind_method("_close_all_tabs", &ScriptEditor::_close_all_tabs); - ClassDB::bind_method("_close_other_tabs", &ScriptEditor::_close_other_tabs); - ClassDB::bind_method("_goto_script_line2", &ScriptEditor::_goto_script_line2); - ClassDB::bind_method("_copy_script_path", &ScriptEditor::_copy_script_path); - - ClassDB::bind_method("_help_class_open", &ScriptEditor::_help_class_open); ClassDB::bind_method("_help_tab_goto", &ScriptEditor::_help_tab_goto); - ClassDB::bind_method("_live_auto_reload_running_scripts", &ScriptEditor::_live_auto_reload_running_scripts); - ClassDB::bind_method("_update_members_overview", &ScriptEditor::_update_members_overview); - ClassDB::bind_method("_update_recent_scripts", &ScriptEditor::_update_recent_scripts); - ClassDB::bind_method("get_current_editor", &ScriptEditor::_get_current_editor); ClassDB::bind_method("get_open_script_editors", &ScriptEditor::_get_open_script_editors); diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index 574b18731e43..38f3d865d45b 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -886,7 +886,7 @@ void ScriptTextEditor::_breakpoint_item_pressed(int p_idx) { _edit_option(breakpoints_menu->get_item_id(p_idx)); } else { code_editor->goto_line(breakpoints_menu->get_item_metadata(p_idx)); - code_editor->get_text_editor()->call_deferred(SNAME("center_viewport_to_caret")); //Need to be deferred, because goto uses call_deferred(). + callable_mp((TextEdit *)code_editor->get_text_editor(), &TextEdit::center_viewport_to_caret).call_deferred(0); // Needs to be deferred, because goto uses call_deferred(). } } @@ -1273,27 +1273,27 @@ void ScriptTextEditor::_edit_option(int p_op) { switch (p_op) { case EDIT_UNDO: { tx->undo(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_REDO: { tx->redo(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_CUT: { tx->cut(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_COPY: { tx->copy(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_PASTE: { tx->paste(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_SELECT_ALL: { tx->select_all(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_MOVE_LINE_UP: { code_editor->move_lines_up(); diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp index 5ee4d4a96148..6d6da694052b 100644 --- a/editor/plugins/shader_editor_plugin.cpp +++ b/editor/plugins/shader_editor_plugin.cpp @@ -602,6 +602,7 @@ void ShaderEditorPlugin::_file_removed(const String &p_removed_file) { void ShaderEditorPlugin::_notification(int p_what) { switch (p_what) { case NOTIFICATION_READY: { + EditorNode::get_singleton()->connect("resource_saved", callable_mp(this, &ShaderEditorPlugin::_resource_saved), CONNECT_DEFERRED); EditorNode::get_singleton()->connect("scene_closed", callable_mp(this, &ShaderEditorPlugin::_close_builtin_shaders_from_scene)); FileSystemDock::get_singleton()->connect("file_removed", callable_mp(this, &ShaderEditorPlugin::_file_removed)); } break; @@ -677,9 +678,6 @@ ShaderEditorPlugin::ShaderEditorPlugin() { button = EditorNode::get_singleton()->add_bottom_panel_item(TTR("Shader Editor"), window_wrapper); - // Defer connect because Editor class is not in the binding system yet. - EditorNode::get_singleton()->call_deferred("connect", "resource_saved", callable_mp(this, &ShaderEditorPlugin::_resource_saved), CONNECT_DEFERRED); - shader_create_dialog = memnew(ShaderCreateDialog); vb->add_child(shader_create_dialog); shader_create_dialog->connect("shader_created", callable_mp(this, &ShaderEditorPlugin::_shader_created)); diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp index 9a709e8ddadd..acd45da89079 100644 --- a/editor/plugins/skeleton_3d_editor_plugin.cpp +++ b/editor/plugins/skeleton_3d_editor_plugin.cpp @@ -889,18 +889,6 @@ void Skeleton3DEditor::_node_removed(Node *p_node) { _update_properties(); } -void Skeleton3DEditor::_bind_methods() { - ClassDB::bind_method(D_METHOD("_node_removed"), &Skeleton3DEditor::_node_removed); - ClassDB::bind_method(D_METHOD("_joint_tree_selection_changed"), &Skeleton3DEditor::_joint_tree_selection_changed); - ClassDB::bind_method(D_METHOD("_joint_tree_rmb_select"), &Skeleton3DEditor::_joint_tree_rmb_select); - ClassDB::bind_method(D_METHOD("_update_properties"), &Skeleton3DEditor::_update_properties); - ClassDB::bind_method(D_METHOD("_on_click_skeleton_option"), &Skeleton3DEditor::_on_click_skeleton_option); - - ClassDB::bind_method(D_METHOD("move_skeleton_bone"), &Skeleton3DEditor::move_skeleton_bone); - - ClassDB::bind_method(D_METHOD("_draw_gizmo"), &Skeleton3DEditor::_draw_gizmo); -} - void Skeleton3DEditor::edit_mode_toggled(const bool pressed) { edit_mode = pressed; _update_gizmo_visible(); diff --git a/editor/plugins/skeleton_3d_editor_plugin.h b/editor/plugins/skeleton_3d_editor_plugin.h index 3cc7c8549292..839061a2febd 100644 --- a/editor/plugins/skeleton_3d_editor_plugin.h +++ b/editor/plugins/skeleton_3d_editor_plugin.h @@ -198,7 +198,6 @@ class Skeleton3DEditor : public VBoxContainer { protected: void _notification(int p_what); void _node_removed(Node *p_node); - static void _bind_methods(); public: static Skeleton3DEditor *get_singleton() { return singleton; } diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp index c7945e44f065..475aba0eebce 100644 --- a/editor/plugins/text_editor.cpp +++ b/editor/plugins/text_editor.cpp @@ -352,27 +352,27 @@ void TextEditor::_edit_option(int p_op) { switch (p_op) { case EDIT_UNDO: { tx->undo(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_REDO: { tx->redo(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_CUT: { tx->cut(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_COPY: { tx->copy(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_PASTE: { tx->paste(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_SELECT_ALL: { tx->select_all(); - tx->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)tx, &Control::grab_focus).call_deferred(); } break; case EDIT_MOVE_LINE_UP: { code_editor->move_lines_up(); diff --git a/editor/plugins/text_shader_editor.cpp b/editor/plugins/text_shader_editor.cpp index 3a2ddeb94ec9..e5b9e3854fdb 100644 --- a/editor/plugins/text_shader_editor.cpp +++ b/editor/plugins/text_shader_editor.cpp @@ -170,8 +170,8 @@ void ShaderTextEditor::set_edited_code(const String &p_code) { get_text_editor()->set_text(p_code); get_text_editor()->clear_undo_history(); - get_text_editor()->call_deferred(SNAME("set_h_scroll"), 0); - get_text_editor()->call_deferred(SNAME("set_v_scroll"), 0); + callable_mp((TextEdit *)get_text_editor(), &TextEdit::set_h_scroll).call_deferred(0); + callable_mp((TextEdit *)get_text_editor(), &TextEdit::set_v_scroll).call_deferred(0); get_text_editor()->tag_saved_version(); _validate_script(); @@ -719,7 +719,7 @@ void TextShaderEditor::_menu_option(int p_option) { } break; } if (p_option != SEARCH_FIND && p_option != SEARCH_REPLACE && p_option != SEARCH_GOTO_LINE) { - shader_editor->get_text_editor()->call_deferred(SNAME("grab_focus")); + callable_mp((Control *)shader_editor->get_text_editor(), &Control::grab_focus).call_deferred(); } } @@ -820,7 +820,7 @@ void TextShaderEditor::_check_for_external_edit() { if (use_autoreload) { _reload_shader_include_from_disk(); } else { - disk_changed->call_deferred(SNAME("popup_centered")); + callable_mp((Window *)disk_changed, &Window::popup_centered).call_deferred(Size2i()); } } return; @@ -834,7 +834,7 @@ void TextShaderEditor::_check_for_external_edit() { if (use_autoreload) { _reload_shader_from_disk(); } else { - disk_changed->call_deferred(SNAME("popup_centered")); + callable_mp((Window *)disk_changed, &Window::popup_centered).call_deferred(Size2i()); } } } diff --git a/editor/plugins/tiles/tile_data_editors.cpp b/editor/plugins/tiles/tile_data_editors.cpp index c8247e0551fb..8e4c26bd1530 100644 --- a/editor/plugins/tiles/tile_data_editors.cpp +++ b/editor/plugins/tiles/tile_data_editors.cpp @@ -53,7 +53,7 @@ void TileDataEditor::_tile_set_changed_plan_update() { _tile_set_changed_update_needed = true; - call_deferred(SNAME("_tile_set_changed_deferred_update")); + callable_mp(this, &TileDataEditor::_tile_set_changed_deferred_update).call_deferred(); } void TileDataEditor::_tile_set_changed_deferred_update() { @@ -80,8 +80,6 @@ TileData *TileDataEditor::_get_tile_data(TileMapCell p_cell) { } void TileDataEditor::_bind_methods() { - ClassDB::bind_method(D_METHOD("_tile_set_changed_deferred_update"), &TileDataEditor::_tile_set_changed_deferred_update); - ADD_SIGNAL(MethodInfo("needs_redraw")); } diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp index 895df177efd6..10dc20d24f85 100644 --- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp +++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp @@ -954,7 +954,7 @@ void TileSetAtlasSourceEditor::_tile_data_editor_dropdown_button_pressed() { } void TileSetAtlasSourceEditor::_tile_data_editors_tree_selected() { - tile_data_editors_popup->call_deferred(SNAME("hide")); + callable_mp((Window *)tile_data_editors_popup, &Window::hide).call_deferred(); _update_current_tile_data_editor(); tile_atlas_control->queue_redraw(); tile_atlas_control_unscaled->queue_redraw(); diff --git a/editor/plugins/tiles/tiles_editor_plugin.cpp b/editor/plugins/tiles/tiles_editor_plugin.cpp index b96f3f21b8ae..e7e94fdefa8e 100644 --- a/editor/plugins/tiles/tiles_editor_plugin.cpp +++ b/editor/plugins/tiles/tiles_editor_plugin.cpp @@ -125,7 +125,7 @@ void TilesEditorUtils::_thread() { tile_map->set_position(-(scale * encompassing_rect.get_center()) + thumbnail_size2 / 2); // Add the viewport at the last moment to avoid rendering too early. - EditorNode::get_singleton()->call_deferred("add_child", viewport); + callable_mp((Node *)EditorNode::get_singleton(), &Node::add_child).call_deferred(viewport, false, Node::INTERNAL_MODE_DISABLED); RS::get_singleton()->connect(SNAME("frame_pre_draw"), callable_mp(const_cast(this), &TilesEditorUtils::_preview_frame_started), Object::CONNECT_ONE_SHOT); diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp index 5c22e454ab47..24b76526c660 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -182,7 +182,7 @@ void VisualShaderGraphPlugin::show_port_preview(VisualShader::Type p_type, int p } void VisualShaderGraphPlugin::update_node_deferred(VisualShader::Type p_type, int p_node_id) { - call_deferred(SNAME("update_node"), p_type, p_node_id); + callable_mp(this, &VisualShaderGraphPlugin::update_node).call_deferred(p_type, p_node_id); } void VisualShaderGraphPlugin::update_node(VisualShader::Type p_type, int p_node_id) { @@ -1492,14 +1492,14 @@ void VisualShaderEditor::_update_custom_script(const Ref