Signals: Manually port most of remaining connect_compat uses

It's tedious work...

Some can't be ported as they depend on private or protected methods
of different classes, which is not supported by callable_mp (even if
it's a class inherited by the current one).
This commit is contained in:
Rémi Verschelde 2020-02-21 23:26:13 +01:00
parent 01afc442c7
commit f742dabafe
50 changed files with 187 additions and 244 deletions

View File

@ -5734,10 +5734,13 @@ void AnimationTrackEditor::_bind_methods() {
ClassDB::bind_method("_track_grab_focus", &AnimationTrackEditor::_track_grab_focus); ClassDB::bind_method("_track_grab_focus", &AnimationTrackEditor::_track_grab_focus);
ClassDB::bind_method("_update_tracks", &AnimationTrackEditor::_update_tracks); ClassDB::bind_method("_update_tracks", &AnimationTrackEditor::_update_tracks);
ClassDB::bind_method("_insert_delay", &AnimationTrackEditor::_insert_delay); ClassDB::bind_method("_insert_delay", &AnimationTrackEditor::_insert_delay);
ClassDB::bind_method("_clear_selection", &AnimationTrackEditor::_clear_selection);
ClassDB::bind_method("_clear_selection_for_anim", &AnimationTrackEditor::_clear_selection_for_anim); ClassDB::bind_method("_clear_selection_for_anim", &AnimationTrackEditor::_clear_selection_for_anim);
ClassDB::bind_method("_select_at_anim", &AnimationTrackEditor::_select_at_anim); ClassDB::bind_method("_select_at_anim", &AnimationTrackEditor::_select_at_anim);
ClassDB::bind_method("_key_selected", &AnimationTrackEditor::_key_selected); // Still used by some connect_compat.
ClassDB::bind_method("_key_deselected", &AnimationTrackEditor::_key_deselected); // Still used by some connect_compat.
ClassDB::bind_method("_clear_selection", &AnimationTrackEditor::_clear_selection); // Still used by some connect_compat.
ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag"))); ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag")));
ADD_SIGNAL(MethodInfo("keying_changed")); ADD_SIGNAL(MethodInfo("keying_changed"));
ADD_SIGNAL(MethodInfo("animation_len_changed", PropertyInfo(Variant::FLOAT, "len"))); ADD_SIGNAL(MethodInfo("animation_len_changed", PropertyInfo(Variant::FLOAT, "len")));

View File

@ -1712,7 +1712,7 @@ CodeTextEditor::CodeTextEditor() {
error->set_v_size_flags(SIZE_EXPAND | SIZE_SHRINK_CENTER); error->set_v_size_flags(SIZE_EXPAND | SIZE_SHRINK_CENTER);
error->set_mouse_filter(MOUSE_FILTER_STOP); error->set_mouse_filter(MOUSE_FILTER_STOP);
error->connect("gui_input", callable_mp(this, &CodeTextEditor::_error_pressed)); error->connect("gui_input", callable_mp(this, &CodeTextEditor::_error_pressed));
find_replace_bar->connect_compat("error", error, "set_text"); find_replace_bar->connect("error", callable_mp(error, &Label::set_text));
// Warnings // Warnings
warning_button = memnew(ToolButton); warning_button = memnew(ToolButton);

View File

@ -247,7 +247,7 @@ EditorHelpSearch::EditorHelpSearch() {
results_tree->set_hide_root(true); results_tree->set_hide_root(true);
results_tree->set_select_mode(Tree::SELECT_ROW); results_tree->set_select_mode(Tree::SELECT_ROW);
results_tree->connect("item_activated", callable_mp(this, &EditorHelpSearch::_confirmed)); results_tree->connect("item_activated", callable_mp(this, &EditorHelpSearch::_confirmed));
results_tree->connect_compat("item_selected", get_ok(), "set_disabled", varray(false)); results_tree->connect("item_selected", callable_mp((BaseButton *)get_ok(), &BaseButton::set_disabled), varray(false));
vbox->add_child(results_tree, true); vbox->add_child(results_tree, true);
} }

View File

@ -29,6 +29,7 @@
/*************************************************************************/ /*************************************************************************/
#include "editor_layouts_dialog.h" #include "editor_layouts_dialog.h"
#include "core/class_db.h" #include "core/class_db.h"
#include "core/io/config_file.h" #include "core/io/config_file.h"
#include "core/os/keyboard.h" #include "core/os/keyboard.h"
@ -128,7 +129,7 @@ EditorLayoutsDialog::EditorLayoutsDialog() {
name->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_BEGIN, 5); name->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_BEGIN, 5);
name->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, -5); name->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, -5);
name->connect("gui_input", callable_mp(this, &EditorLayoutsDialog::_line_gui_input)); name->connect("gui_input", callable_mp(this, &EditorLayoutsDialog::_line_gui_input));
name->connect_compat("focus_entered", layout_names, "unselect_all"); name->connect("focus_entered", callable_mp(layout_names, &ItemList::unselect_all));
} }
void EditorLayoutsDialog::set_name_line_enabled(bool p_enabled) { void EditorLayoutsDialog::set_name_line_enabled(bool p_enabled) {

View File

@ -2972,7 +2972,7 @@ void EditorNode::add_editor_plugin(EditorPlugin *p_editor, bool p_config_changed
ToolButton *tb = memnew(ToolButton); ToolButton *tb = memnew(ToolButton);
tb->set_toggle_mode(true); tb->set_toggle_mode(true);
tb->connect_compat("pressed", singleton, "_editor_select", varray(singleton->main_editor_buttons.size())); tb->connect("pressed", callable_mp(singleton, &EditorNode::_editor_select), varray(singleton->main_editor_buttons.size()));
tb->set_text(p_editor->get_name()); tb->set_text(p_editor->get_name());
Ref<Texture2D> icon = p_editor->get_icon(); Ref<Texture2D> icon = p_editor->get_icon();
@ -5473,6 +5473,8 @@ void EditorNode::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_gui_base"), &EditorNode::get_gui_base); ClassDB::bind_method(D_METHOD("get_gui_base"), &EditorNode::get_gui_base);
ClassDB::bind_method(D_METHOD("_on_plugin_ready"), &EditorNode::_on_plugin_ready); // Still used by some connect_compat.
ClassDB::bind_method("_screenshot", &EditorNode::_screenshot); ClassDB::bind_method("_screenshot", &EditorNode::_screenshot);
ClassDB::bind_method("_save_screenshot", &EditorNode::_save_screenshot); ClassDB::bind_method("_save_screenshot", &EditorNode::_save_screenshot);

View File

@ -788,7 +788,7 @@ EditorPropertyLayers::EditorPropertyLayers() {
add_child(layers); add_child(layers);
layers->set_hide_on_checkable_item_selection(false); layers->set_hide_on_checkable_item_selection(false);
layers->connect("id_pressed", callable_mp(this, &EditorPropertyLayers::_menu_pressed)); layers->connect("id_pressed", callable_mp(this, &EditorPropertyLayers::_menu_pressed));
layers->connect_compat("popup_hide", button, "set_pressed", varray(false)); layers->connect("popup_hide", callable_mp((BaseButton *)button, &BaseButton::set_pressed), varray(false));
} }
///////////////////// INT ///////////////////////// ///////////////////// INT /////////////////////////
@ -2854,7 +2854,7 @@ EditorPropertyResource::EditorPropertyResource() {
edit->set_flat(true); edit->set_flat(true);
edit->set_toggle_mode(true); edit->set_toggle_mode(true);
menu->connect("id_pressed", callable_mp(this, &EditorPropertyResource::_menu_option)); menu->connect("id_pressed", callable_mp(this, &EditorPropertyResource::_menu_option));
menu->connect_compat("popup_hide", edit, "set_pressed", varray(false)); menu->connect("popup_hide", callable_mp((BaseButton *)edit, &BaseButton::set_pressed), varray(false));
edit->connect("pressed", callable_mp(this, &EditorPropertyResource::_update_menu)); edit->connect("pressed", callable_mp(this, &EditorPropertyResource::_update_menu));
hbc->add_child(edit); hbc->add_child(edit);
edit->connect("gui_input", callable_mp(this, &EditorPropertyResource::_button_input)); edit->connect("gui_input", callable_mp(this, &EditorPropertyResource::_button_input));

View File

@ -557,8 +557,8 @@ const char *FindInFilesPanel::SIGNAL_FILES_MODIFIED = "files_modified";
FindInFilesPanel::FindInFilesPanel() { FindInFilesPanel::FindInFilesPanel() {
_finder = memnew(FindInFiles); _finder = memnew(FindInFiles);
_finder->connect_compat(FindInFiles::SIGNAL_RESULT_FOUND, this, "_on_result_found"); _finder->connect(FindInFiles::SIGNAL_RESULT_FOUND, callable_mp(this, &FindInFilesPanel::_on_result_found));
_finder->connect_compat(FindInFiles::SIGNAL_FINISHED, this, "_on_finished"); _finder->connect(FindInFiles::SIGNAL_FINISHED, callable_mp(this, &FindInFilesPanel::_on_finished));
add_child(_finder); add_child(_finder);
VBoxContainer *vbc = memnew(VBoxContainer); VBoxContainer *vbc = memnew(VBoxContainer);

View File

@ -345,7 +345,7 @@ void InspectorDock::_notification(int p_what) {
void InspectorDock::_bind_methods() { void InspectorDock::_bind_methods() {
ClassDB::bind_method("update_keying", &InspectorDock::update_keying); ClassDB::bind_method("update_keying", &InspectorDock::update_keying);
ClassDB::bind_method("_transform_keyed", &InspectorDock::_transform_keyed); ClassDB::bind_method("_transform_keyed", &InspectorDock::_transform_keyed); // Still used by some connect_compat.
ClassDB::bind_method("_unref_resource", &InspectorDock::_unref_resource); ClassDB::bind_method("_unref_resource", &InspectorDock::_unref_resource);
ClassDB::bind_method("_paste_resource", &InspectorDock::_paste_resource); ClassDB::bind_method("_paste_resource", &InspectorDock::_paste_resource);

View File

@ -1501,16 +1501,16 @@ void AnimationPlayerEditor::_prepare_onion_layers_2() {
void AnimationPlayerEditor::_start_onion_skinning() { void AnimationPlayerEditor::_start_onion_skinning() {
// FIXME: Using "idle_frame" makes onion layers update one frame behind the current. // FIXME: Using "idle_frame" makes onion layers update one frame behind the current.
if (!get_tree()->is_connected_compat("idle_frame", this, "call_deferred")) { if (!get_tree()->is_connected("idle_frame", callable_mp((Object *)this, &Object::call_deferred))) {
get_tree()->connect_compat("idle_frame", this, "call_deferred", varray("_prepare_onion_layers_1")); get_tree()->connect("idle_frame", callable_mp((Object *)this, &Object::call_deferred), varray("_prepare_onion_layers_1"));
} }
} }
void AnimationPlayerEditor::_stop_onion_skinning() { void AnimationPlayerEditor::_stop_onion_skinning() {
if (get_tree()->is_connected_compat("idle_frame", this, "call_deferred")) { if (get_tree()->is_connected("idle_frame", callable_mp((Object *)this, &Object::call_deferred))) {
get_tree()->disconnect_compat("idle_frame", this, "call_deferred"); get_tree()->disconnect("idle_frame", callable_mp((Object *)this, &Object::call_deferred));
_free_onion_layers(); _free_onion_layers();

View File

@ -5390,7 +5390,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
editor = p_editor; editor = p_editor;
editor_selection = p_editor->get_editor_selection(); editor_selection = p_editor->get_editor_selection();
editor_selection->add_editor_plugin(this); editor_selection->add_editor_plugin(this);
editor_selection->connect_compat("selection_changed", this, "update"); editor_selection->connect("selection_changed", callable_mp((CanvasItem *)this, &CanvasItem::update));
editor_selection->connect("selection_changed", callable_mp(this, &CanvasItemEditor::_selection_changed)); editor_selection->connect("selection_changed", callable_mp(this, &CanvasItemEditor::_selection_changed));
editor->call_deferred("connect", make_binds("play_pressed", Callable(this, "_update_override_camera_button"), true)); editor->call_deferred("connect", make_binds("play_pressed", Callable(this, "_update_override_camera_button"), true));

View File

@ -70,15 +70,15 @@ void CurveEditor::set_curve(Ref<Curve> curve) {
return; return;
if (_curve_ref.is_valid()) { if (_curve_ref.is_valid()) {
_curve_ref->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_curve_changed"); _curve_ref->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &CurveEditor::_curve_changed));
_curve_ref->disconnect_compat(Curve::SIGNAL_RANGE_CHANGED, this, "_curve_changed"); _curve_ref->disconnect(Curve::SIGNAL_RANGE_CHANGED, callable_mp(this, &CurveEditor::_curve_changed));
} }
_curve_ref = curve; _curve_ref = curve;
if (_curve_ref.is_valid()) { if (_curve_ref.is_valid()) {
_curve_ref->connect_compat(CoreStringNames::get_singleton()->changed, this, "_curve_changed"); _curve_ref->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &CurveEditor::_curve_changed));
_curve_ref->connect_compat(Curve::SIGNAL_RANGE_CHANGED, this, "_curve_changed"); _curve_ref->connect(Curve::SIGNAL_RANGE_CHANGED, callable_mp(this, &CurveEditor::_curve_changed));
} }
_selected_point = -1; _selected_point = -1;
@ -749,7 +749,6 @@ void CurveEditor::_draw() {
void CurveEditor::_bind_methods() { void CurveEditor::_bind_methods() {
ClassDB::bind_method(D_METHOD("_gui_input"), &CurveEditor::on_gui_input); ClassDB::bind_method(D_METHOD("_gui_input"), &CurveEditor::on_gui_input);
ClassDB::bind_method(D_METHOD("_curve_changed"), &CurveEditor::_curve_changed);
} }
//--------------- //---------------

View File

@ -1259,7 +1259,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) :
button_uv = memnew(ToolButton); button_uv = memnew(ToolButton);
add_child(button_uv); add_child(button_uv);
button_uv->set_tooltip(TTR("Open Polygon 2D UV editor.")); button_uv->set_tooltip(TTR("Open Polygon 2D UV editor."));
button_uv->connect_compat("pressed", this, "_menu_option", varray(MODE_EDIT_UV)); button_uv->connect("pressed", callable_mp(this, &Polygon2DEditor::_menu_option), varray(MODE_EDIT_UV));
uv_mode = UV_MODE_EDIT_POINT; uv_mode = UV_MODE_EDIT_POINT;
uv_edit = memnew(AcceptDialog); uv_edit = memnew(AcceptDialog);
@ -1374,7 +1374,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) :
uv_menu->get_popup()->add_item(TTR("Clear UV"), UVEDIT_UV_CLEAR); uv_menu->get_popup()->add_item(TTR("Clear UV"), UVEDIT_UV_CLEAR);
uv_menu->get_popup()->add_separator(); uv_menu->get_popup()->add_separator();
uv_menu->get_popup()->add_item(TTR("Grid Settings"), UVEDIT_GRID_SETTINGS); uv_menu->get_popup()->add_item(TTR("Grid Settings"), UVEDIT_GRID_SETTINGS);
uv_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); uv_menu->get_popup()->connect("id_pressed", callable_mp(this, &Polygon2DEditor::_menu_option));
uv_mode_hb->add_child(memnew(VSeparator)); uv_mode_hb->add_child(memnew(VSeparator));

View File

@ -3042,16 +3042,12 @@ void ScriptEditor::_bind_methods() {
ClassDB::bind_method("_copy_script_path", &ScriptEditor::_copy_script_path); ClassDB::bind_method("_copy_script_path", &ScriptEditor::_copy_script_path);
ClassDB::bind_method("_get_debug_tooltip", &ScriptEditor::_get_debug_tooltip); ClassDB::bind_method("_get_debug_tooltip", &ScriptEditor::_get_debug_tooltip);
ClassDB::bind_method("_update_autosave_timer", &ScriptEditor::_update_autosave_timer);
ClassDB::bind_method("_update_script_connections", &ScriptEditor::_update_script_connections); ClassDB::bind_method("_update_script_connections", &ScriptEditor::_update_script_connections);
ClassDB::bind_method("_help_class_open", &ScriptEditor::_help_class_open); ClassDB::bind_method("_help_class_open", &ScriptEditor::_help_class_open);
ClassDB::bind_method("_live_auto_reload_running_scripts", &ScriptEditor::_live_auto_reload_running_scripts); ClassDB::bind_method("_live_auto_reload_running_scripts", &ScriptEditor::_live_auto_reload_running_scripts);
ClassDB::bind_method("_unhandled_input", &ScriptEditor::_unhandled_input); ClassDB::bind_method("_unhandled_input", &ScriptEditor::_unhandled_input);
ClassDB::bind_method("_update_members_overview", &ScriptEditor::_update_members_overview); ClassDB::bind_method("_update_members_overview", &ScriptEditor::_update_members_overview);
ClassDB::bind_method("_update_recent_scripts", &ScriptEditor::_update_recent_scripts); ClassDB::bind_method("_update_recent_scripts", &ScriptEditor::_update_recent_scripts);
ClassDB::bind_method("_start_find_in_files", &ScriptEditor::_start_find_in_files);
ClassDB::bind_method("_on_find_in_files_result_selected", &ScriptEditor::_on_find_in_files_result_selected);
ClassDB::bind_method("_on_find_in_files_modified_files", &ScriptEditor::_on_find_in_files_modified_files);
ClassDB::bind_method(D_METHOD("get_drag_data_fw", "point", "from"), &ScriptEditor::get_drag_data_fw); ClassDB::bind_method(D_METHOD("get_drag_data_fw", "point", "from"), &ScriptEditor::get_drag_data_fw);
ClassDB::bind_method(D_METHOD("can_drop_data_fw", "point", "data", "from"), &ScriptEditor::can_drop_data_fw); ClassDB::bind_method(D_METHOD("can_drop_data_fw", "point", "data", "from"), &ScriptEditor::can_drop_data_fw);
@ -3340,7 +3336,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
autosave_timer = memnew(Timer); autosave_timer = memnew(Timer);
autosave_timer->set_one_shot(false); autosave_timer->set_one_shot(false);
autosave_timer->connect_compat(SceneStringNames::get_singleton()->tree_entered, this, "_update_autosave_timer"); autosave_timer->connect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &ScriptEditor::_update_autosave_timer));
autosave_timer->connect("timeout", callable_mp(this, &ScriptEditor::_autosave_scripts)); autosave_timer->connect("timeout", callable_mp(this, &ScriptEditor::_autosave_scripts));
add_child(autosave_timer); add_child(autosave_timer);
@ -3351,14 +3347,14 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
help_search_dialog->connect("go_to_help", callable_mp(this, &ScriptEditor::_help_class_goto)); help_search_dialog->connect("go_to_help", callable_mp(this, &ScriptEditor::_help_class_goto));
find_in_files_dialog = memnew(FindInFilesDialog); find_in_files_dialog = memnew(FindInFilesDialog);
find_in_files_dialog->connect_compat(FindInFilesDialog::SIGNAL_FIND_REQUESTED, this, "_start_find_in_files", varray(false)); find_in_files_dialog->connect(FindInFilesDialog::SIGNAL_FIND_REQUESTED, callable_mp(this, &ScriptEditor::_start_find_in_files), varray(false));
find_in_files_dialog->connect_compat(FindInFilesDialog::SIGNAL_REPLACE_REQUESTED, this, "_start_find_in_files", varray(true)); find_in_files_dialog->connect(FindInFilesDialog::SIGNAL_REPLACE_REQUESTED, callable_mp(this, &ScriptEditor::_start_find_in_files), varray(true));
add_child(find_in_files_dialog); add_child(find_in_files_dialog);
find_in_files = memnew(FindInFilesPanel); find_in_files = memnew(FindInFilesPanel);
find_in_files_button = editor->add_bottom_panel_item(TTR("Search Results"), find_in_files); find_in_files_button = editor->add_bottom_panel_item(TTR("Search Results"), find_in_files);
find_in_files->set_custom_minimum_size(Size2(0, 200) * EDSCALE); find_in_files->set_custom_minimum_size(Size2(0, 200) * EDSCALE);
find_in_files->connect_compat(FindInFilesPanel::SIGNAL_RESULT_SELECTED, this, "_on_find_in_files_result_selected"); find_in_files->connect(FindInFilesPanel::SIGNAL_RESULT_SELECTED, callable_mp(this, &ScriptEditor::_on_find_in_files_result_selected));
find_in_files->connect_compat(FindInFilesPanel::SIGNAL_FILES_MODIFIED, this, "_on_find_in_files_modified_files"); find_in_files->connect(FindInFilesPanel::SIGNAL_FILES_MODIFIED, callable_mp(this, &ScriptEditor::_on_find_in_files_modified_files));
find_in_files->hide(); find_in_files->hide();
find_in_files_button->hide(); find_in_files_button->hide();

View File

@ -260,7 +260,7 @@ void TileSetEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, C
void TileSetEditor::_bind_methods() { void TileSetEditor::_bind_methods() {
ClassDB::bind_method("_undo_redo_import_scene", &TileSetEditor::_undo_redo_import_scene); ClassDB::bind_method("_undo_redo_import_scene", &TileSetEditor::_undo_redo_import_scene);
ClassDB::bind_method("_on_workspace_process", &TileSetEditor::_on_workspace_process); ClassDB::bind_method("_on_workspace_process", &TileSetEditor::_on_workspace_process); // Still used by some connect_compat.
ClassDB::bind_method("_set_snap_step", &TileSetEditor::_set_snap_step); ClassDB::bind_method("_set_snap_step", &TileSetEditor::_set_snap_step);
ClassDB::bind_method("_set_snap_off", &TileSetEditor::_set_snap_off); ClassDB::bind_method("_set_snap_off", &TileSetEditor::_set_snap_off);
ClassDB::bind_method("_set_snap_sep", &TileSetEditor::_set_snap_sep); ClassDB::bind_method("_set_snap_sep", &TileSetEditor::_set_snap_sep);

View File

@ -85,7 +85,7 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
visual_shader->set_graph_offset(graph->get_scroll_ofs() / EDSCALE); visual_shader->set_graph_offset(graph->get_scroll_ofs() / EDSCALE);
} else { } else {
if (visual_shader.is_valid()) { if (visual_shader.is_valid()) {
if (visual_shader->is_connected_compat("changed", this, "")) { if (visual_shader->is_connected("changed", callable_mp(this, &VisualShaderEditor::_update_preview))) {
visual_shader->disconnect("changed", callable_mp(this, &VisualShaderEditor::_update_preview)); visual_shader->disconnect("changed", callable_mp(this, &VisualShaderEditor::_update_preview));
} }
} }
@ -523,10 +523,6 @@ void VisualShaderEditor::_update_graph() {
expression = expression_node->get_expression(); expression = expression_node->get_expression();
} }
/*if (!vsnode->is_connected("changed", this, "_node_changed")) {
vsnode->connect("changed", this, "_node_changed", varray(vsnode->get_instance_id()), CONNECT_DEFERRED);
}*/
node->set_offset(position); node->set_offset(position);
node->set_title(vsnode->get_caption()); node->set_title(vsnode->get_caption());
@ -662,7 +658,7 @@ void VisualShaderEditor::_update_graph() {
case Variant::COLOR: { case Variant::COLOR: {
button->set_custom_minimum_size(Size2(30, 0) * EDSCALE); button->set_custom_minimum_size(Size2(30, 0) * EDSCALE);
button->connect_compat("draw", this, "_draw_color_over_button", varray(button, default_value)); button->connect("draw", callable_mp(this, &VisualShaderEditor::_draw_color_over_button), varray(button, default_value));
} break; } break;
case Variant::BOOL: { case Variant::BOOL: {
button->set_text(((bool)default_value) ? "true" : "false"); button->set_text(((bool)default_value) ? "true" : "false");
@ -2940,15 +2936,10 @@ class VisualShaderNodePluginInputEditor : public OptionButton {
Ref<VisualShaderNodeInput> input; Ref<VisualShaderNodeInput> input;
protected:
static void _bind_methods() {
ClassDB::bind_method("_item_selected", &VisualShaderNodePluginInputEditor::_item_selected);
}
public: public:
void _notification(int p_what) { void _notification(int p_what) {
if (p_what == NOTIFICATION_READY) { if (p_what == NOTIFICATION_READY) {
connect_compat("item_selected", this, "_item_selected"); connect("item_selected", callable_mp(this, &VisualShaderNodePluginInputEditor::_item_selected));
} }
} }
@ -3078,25 +3069,22 @@ public:
bool res_prop = Object::cast_to<EditorPropertyResource>(p_properties[i]); bool res_prop = Object::cast_to<EditorPropertyResource>(p_properties[i]);
if (res_prop) { if (res_prop) {
p_properties[i]->connect_compat("resource_selected", this, "_resource_selected"); p_properties[i]->connect("resource_selected", callable_mp(this, &VisualShaderNodePluginDefaultEditor::_resource_selected));
} }
properties[i]->connect_compat("property_changed", this, "_property_changed"); properties[i]->connect("property_changed", callable_mp(this, &VisualShaderNodePluginDefaultEditor::_property_changed));
properties[i]->set_object_and_property(node.ptr(), p_names[i]); properties[i]->set_object_and_property(node.ptr(), p_names[i]);
properties[i]->update_property(); properties[i]->update_property();
properties[i]->set_name_split_ratio(0); properties[i]->set_name_split_ratio(0);
} }
node->connect_compat("changed", this, "_node_changed"); node->connect("changed", callable_mp(this, &VisualShaderNodePluginDefaultEditor::_node_changed));
node->connect_compat("editor_refresh_request", this, "_refresh_request", varray(), CONNECT_DEFERRED); node->connect("editor_refresh_request", callable_mp(this, &VisualShaderNodePluginDefaultEditor::_refresh_request), varray(), CONNECT_DEFERRED);
} }
static void _bind_methods() { static void _bind_methods() {
ClassDB::bind_method("_property_changed", &VisualShaderNodePluginDefaultEditor::_property_changed, DEFVAL(String()), DEFVAL(false)); ClassDB::bind_method("_refresh_request", &VisualShaderNodePluginDefaultEditor::_refresh_request); // Used by UndoRedo.
ClassDB::bind_method("_node_changed", &VisualShaderNodePluginDefaultEditor::_node_changed); ClassDB::bind_method("_open_inspector", &VisualShaderNodePluginDefaultEditor::_open_inspector); // Used by UndoRedo.
ClassDB::bind_method("_refresh_request", &VisualShaderNodePluginDefaultEditor::_refresh_request); ClassDB::bind_method("_show_prop_names", &VisualShaderNodePluginDefaultEditor::_show_prop_names); // Used with call_deferred.
ClassDB::bind_method("_resource_selected", &VisualShaderNodePluginDefaultEditor::_resource_selected);
ClassDB::bind_method("_open_inspector", &VisualShaderNodePluginDefaultEditor::_open_inspector);
ClassDB::bind_method("_show_prop_names", &VisualShaderNodePluginDefaultEditor::_show_prop_names);
} }
}; };

View File

@ -811,7 +811,7 @@ public:
create_dir = memnew(Button); create_dir = memnew(Button);
pnhb->add_child(create_dir); pnhb->add_child(create_dir);
create_dir->set_text(TTR("Create Folder")); create_dir->set_text(TTR("Create Folder"));
create_dir->connect_compat("pressed", this, "_create_folder"); create_dir->connect("pressed", callable_mp(this, &ProjectDialog::_create_folder));
path_container = memnew(VBoxContainer); path_container = memnew(VBoxContainer);
vb->add_child(path_container); vb->add_child(path_container);
@ -848,7 +848,7 @@ public:
browse = memnew(Button); browse = memnew(Button);
browse->set_text(TTR("Browse")); browse->set_text(TTR("Browse"));
browse->connect_compat("pressed", this, "_browse_path"); browse->connect("pressed", callable_mp(this, &ProjectDialog::_browse_path));
pphb->add_child(browse); pphb->add_child(browse);
// install status icon // install status icon
@ -858,7 +858,7 @@ public:
install_browse = memnew(Button); install_browse = memnew(Button);
install_browse->set_text(TTR("Browse")); install_browse->set_text(TTR("Browse"));
install_browse->connect_compat("pressed", this, "_browse_install_path"); install_browse->connect("pressed", callable_mp(this, &ProjectDialog::_browse_install_path));
iphb->add_child(install_browse); iphb->add_child(install_browse);
msg = memnew(Label); msg = memnew(Label);
@ -928,13 +928,13 @@ public:
fdialog_install->set_access(FileDialog::ACCESS_FILESYSTEM); fdialog_install->set_access(FileDialog::ACCESS_FILESYSTEM);
add_child(fdialog); add_child(fdialog);
add_child(fdialog_install); add_child(fdialog_install);
project_name->connect_compat("text_changed", this, "_text_changed"); project_name->connect("text_changed", callable_mp(this, &ProjectDialog::_text_changed));
project_path->connect_compat("text_changed", this, "_path_text_changed"); project_path->connect("text_changed", callable_mp(this, &ProjectDialog::_path_text_changed));
install_path->connect_compat("text_changed", this, "_path_text_changed"); install_path->connect("text_changed", callable_mp(this, &ProjectDialog::_path_text_changed));
fdialog->connect_compat("dir_selected", this, "_path_selected"); fdialog->connect("dir_selected", callable_mp(this, &ProjectDialog::_path_selected));
fdialog->connect_compat("file_selected", this, "_file_selected"); fdialog->connect("file_selected", callable_mp(this, &ProjectDialog::_file_selected));
fdialog_install->connect_compat("dir_selected", this, "_install_path_selected"); fdialog_install->connect("dir_selected", callable_mp(this, &ProjectDialog::_install_path_selected));
fdialog_install->connect_compat("file_selected", this, "_install_path_selected"); fdialog_install->connect("file_selected", callable_mp(this, &ProjectDialog::_install_path_selected));
set_hide_on_ok(false); set_hide_on_ok(false);
mode = MODE_NEW; mode = MODE_NEW;
@ -2516,8 +2516,8 @@ ProjectManager::ProjectManager() {
pc->set_v_size_flags(SIZE_EXPAND_FILL); pc->set_v_size_flags(SIZE_EXPAND_FILL);
_project_list = memnew(ProjectList); _project_list = memnew(ProjectList);
_project_list->connect_compat(ProjectList::SIGNAL_SELECTION_CHANGED, this, "_update_project_buttons"); _project_list->connect(ProjectList::SIGNAL_SELECTION_CHANGED, callable_mp(this, &ProjectManager::_update_project_buttons));
_project_list->connect_compat(ProjectList::SIGNAL_PROJECT_ASK_OPEN, this, "_open_selected_projects_ask"); _project_list->connect(ProjectList::SIGNAL_PROJECT_ASK_OPEN, callable_mp(this, &ProjectManager::_open_selected_projects_ask));
pc->add_child(_project_list); pc->add_child(_project_list);
_project_list->set_enable_h_scroll(false); _project_list->set_enable_h_scroll(false);

View File

@ -2098,7 +2098,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
timer = memnew(Timer); timer = memnew(Timer);
timer->set_wait_time(1.5); timer->set_wait_time(1.5);
timer->connect_compat("timeout", ProjectSettings::get_singleton(), "save"); timer->connect("timeout", callable_mp(ProjectSettings::get_singleton(), &ProjectSettings::save));
timer->set_one_shot(true); timer->set_one_shot(true);
add_child(timer); add_child(timer);

View File

@ -34,7 +34,6 @@
#include "core/os/input.h" #include "core/os/input.h"
#include "core/os/keyboard.h" #include "core/os/keyboard.h"
#include "core/project_settings.h" #include "core/project_settings.h"
#include "editor/debugger/editor_debugger_node.h" #include "editor/debugger/editor_debugger_node.h"
#include "editor/editor_feature_profile.h" #include "editor/editor_feature_profile.h"
#include "editor/editor_node.h" #include "editor/editor_node.h"
@ -1052,7 +1051,7 @@ void SceneTreeDock::_notification(int p_what) {
if (canvas_item_plugin) { if (canvas_item_plugin) {
canvas_item_plugin->get_canvas_item_editor()->connect_compat("item_lock_status_changed", scene_tree, "_update_tree"); canvas_item_plugin->get_canvas_item_editor()->connect_compat("item_lock_status_changed", scene_tree, "_update_tree");
canvas_item_plugin->get_canvas_item_editor()->connect_compat("item_group_status_changed", scene_tree, "_update_tree"); canvas_item_plugin->get_canvas_item_editor()->connect_compat("item_group_status_changed", scene_tree, "_update_tree");
scene_tree->connect_compat("node_changed", canvas_item_plugin->get_canvas_item_editor()->get_viewport_control(), "update"); scene_tree->connect("node_changed", callable_mp((CanvasItem *)canvas_item_plugin->get_canvas_item_editor()->get_viewport_control(), &CanvasItem::update));
} }
SpatialEditorPlugin *spatial_editor_plugin = Object::cast_to<SpatialEditorPlugin>(editor_data->get_editor("3D")); SpatialEditorPlugin *spatial_editor_plugin = Object::cast_to<SpatialEditorPlugin>(editor_data->get_editor("3D"));
@ -2113,7 +2112,7 @@ void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node, bool p_keep_prop
Object::Connection &c = F->get(); Object::Connection &c = F->get();
if (!(c.flags & Object::CONNECT_PERSIST)) if (!(c.flags & Object::CONNECT_PERSIST))
continue; continue;
newnode->connect_compat(c.signal.get_name(), c.callable.get_object(), c.callable.get_method(), c.binds, Object::CONNECT_PERSIST); newnode->connect(c.signal.get_name(), c.callable, c.binds, Object::CONNECT_PERSIST);
} }
} }

View File

@ -1089,6 +1089,7 @@ void SceneTreeEditor::set_connecting_signal(bool p_enable) {
void SceneTreeEditor::_bind_methods() { void SceneTreeEditor::_bind_methods() {
ClassDB::bind_method("_update_tree", &SceneTreeEditor::_update_tree); // Still used by some connect_compat.
ClassDB::bind_method("_rename_node", &SceneTreeEditor::_rename_node); ClassDB::bind_method("_rename_node", &SceneTreeEditor::_rename_node);
ClassDB::bind_method("_test_update_tree", &SceneTreeEditor::_test_update_tree); ClassDB::bind_method("_test_update_tree", &SceneTreeEditor::_test_update_tree);

View File

@ -76,7 +76,6 @@ void NoiseTexture::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_bump_strength"), &NoiseTexture::get_bump_strength); ClassDB::bind_method(D_METHOD("get_bump_strength"), &NoiseTexture::get_bump_strength);
ClassDB::bind_method(D_METHOD("_update_texture"), &NoiseTexture::_update_texture); ClassDB::bind_method(D_METHOD("_update_texture"), &NoiseTexture::_update_texture);
ClassDB::bind_method(D_METHOD("_queue_update"), &NoiseTexture::_queue_update);
ClassDB::bind_method(D_METHOD("_generate_texture"), &NoiseTexture::_generate_texture); ClassDB::bind_method(D_METHOD("_generate_texture"), &NoiseTexture::_generate_texture);
ClassDB::bind_method(D_METHOD("_thread_done", "image"), &NoiseTexture::_thread_done); ClassDB::bind_method(D_METHOD("_thread_done", "image"), &NoiseTexture::_thread_done);
@ -184,11 +183,11 @@ void NoiseTexture::set_noise(Ref<OpenSimplexNoise> p_noise) {
if (p_noise == noise) if (p_noise == noise)
return; return;
if (noise.is_valid()) { if (noise.is_valid()) {
noise->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_queue_update"); noise->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &NoiseTexture::_queue_update));
} }
noise = p_noise; noise = p_noise;
if (noise.is_valid()) { if (noise.is_valid()) {
noise->connect_compat(CoreStringNames::get_singleton()->changed, this, "_queue_update"); noise->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &NoiseTexture::_queue_update));
} }
_queue_update(); _queue_update();
} }

View File

@ -30,14 +30,14 @@
#include "visual_script.h" #include "visual_script.h"
#include <stdint.h>
#include "core/core_string_names.h" #include "core/core_string_names.h"
#include "core/os/os.h" #include "core/os/os.h"
#include "core/project_settings.h" #include "core/project_settings.h"
#include "scene/main/node.h" #include "scene/main/node.h"
#include "visual_script_nodes.h" #include "visual_script_nodes.h"
#include <stdint.h>
//used by editor, this is not really saved //used by editor, this is not really saved
void VisualScriptNode::set_breakpoint(bool p_breakpoint) { void VisualScriptNode::set_breakpoint(bool p_breakpoint) {
breakpoint = p_breakpoint; breakpoint = p_breakpoint;

View File

@ -29,6 +29,7 @@
/*************************************************************************/ /*************************************************************************/
#include "area_2d.h" #include "area_2d.h"
#include "scene/scene_string_names.h" #include "scene/scene_string_names.h"
#include "servers/audio_server.h" #include "servers/audio_server.h"
#include "servers/physics_2d_server.h" #include "servers/physics_2d_server.h"
@ -171,8 +172,8 @@ void Area2D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i
E->get().rc = 0; E->get().rc = 0;
E->get().in_tree = node && node->is_inside_tree(); E->get().in_tree = node && node->is_inside_tree();
if (node) { if (node) {
node->connect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area2D::_body_enter_tree), make_binds(objid));
node->connect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area2D::_body_exit_tree), make_binds(objid));
if (E->get().in_tree) { if (E->get().in_tree) {
emit_signal(SceneStringNames::get_singleton()->body_entered, node); emit_signal(SceneStringNames::get_singleton()->body_entered, node);
} }
@ -198,8 +199,8 @@ void Area2D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i
if (E->get().rc == 0) { if (E->get().rc == 0) {
if (node) { if (node) {
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area2D::_body_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area2D::_body_exit_tree));
if (E->get().in_tree) if (E->get().in_tree)
emit_signal(SceneStringNames::get_singleton()->body_exited, obj); emit_signal(SceneStringNames::get_singleton()->body_exited, obj);
} }
@ -273,8 +274,8 @@ void Area2D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i
E->get().rc = 0; E->get().rc = 0;
E->get().in_tree = node && node->is_inside_tree(); E->get().in_tree = node && node->is_inside_tree();
if (node) { if (node) {
node->connect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_area_enter_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area2D::_area_enter_tree), make_binds(objid));
node->connect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_area_exit_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area2D::_area_exit_tree), make_binds(objid));
if (E->get().in_tree) { if (E->get().in_tree) {
emit_signal(SceneStringNames::get_singleton()->area_entered, node); emit_signal(SceneStringNames::get_singleton()->area_entered, node);
} }
@ -300,8 +301,8 @@ void Area2D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i
if (E->get().rc == 0) { if (E->get().rc == 0) {
if (node) { if (node) {
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_area_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area2D::_area_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_area_exit_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area2D::_area_exit_tree));
if (E->get().in_tree) if (E->get().in_tree)
emit_signal(SceneStringNames::get_singleton()->area_exited, obj); emit_signal(SceneStringNames::get_singleton()->area_exited, obj);
} }
@ -333,12 +334,11 @@ void Area2D::_clear_monitoring() {
Object *obj = ObjectDB::get_instance(E->key()); Object *obj = ObjectDB::get_instance(E->key());
Node *node = Object::cast_to<Node>(obj); Node *node = Object::cast_to<Node>(obj);
if (!node) //node may have been deleted in previous frame or at other legiminate point if (!node) //node may have been deleted in previous frame or at other legitimate point
continue; continue;
//ERR_CONTINUE(!node);
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area2D::_body_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area2D::_body_exit_tree));
if (!E->get().in_tree) if (!E->get().in_tree)
continue; continue;
@ -363,12 +363,11 @@ void Area2D::_clear_monitoring() {
Object *obj = ObjectDB::get_instance(E->key()); Object *obj = ObjectDB::get_instance(E->key());
Node *node = Object::cast_to<Node>(obj); Node *node = Object::cast_to<Node>(obj);
if (!node) //node may have been deleted in previous frame or at other legiminate point if (!node) //node may have been deleted in previous frame or at other legitimate point
continue; continue;
//ERR_CONTINUE(!node);
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_area_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area2D::_area_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_area_exit_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area2D::_area_exit_tree));
if (!E->get().in_tree) if (!E->get().in_tree)
continue; continue;
@ -584,13 +583,6 @@ void Area2D::_validate_property(PropertyInfo &property) const {
} }
void Area2D::_bind_methods() { void Area2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("_body_enter_tree", "id"), &Area2D::_body_enter_tree);
ClassDB::bind_method(D_METHOD("_body_exit_tree", "id"), &Area2D::_body_exit_tree);
ClassDB::bind_method(D_METHOD("_area_enter_tree", "id"), &Area2D::_area_enter_tree);
ClassDB::bind_method(D_METHOD("_area_exit_tree", "id"), &Area2D::_area_exit_tree);
ClassDB::bind_method(D_METHOD("set_space_override_mode", "space_override_mode"), &Area2D::set_space_override_mode); ClassDB::bind_method(D_METHOD("set_space_override_mode", "space_override_mode"), &Area2D::set_space_override_mode);
ClassDB::bind_method(D_METHOD("get_space_override_mode"), &Area2D::get_space_override_mode); ClassDB::bind_method(D_METHOD("get_space_override_mode"), &Area2D::get_space_override_mode);

View File

@ -29,6 +29,7 @@
/*************************************************************************/ /*************************************************************************/
#include "cpu_particles_2d.h" #include "cpu_particles_2d.h"
#include "core/core_string_names.h" #include "core/core_string_names.h"
#include "scene/2d/canvas_item.h" #include "scene/2d/canvas_item.h"
#include "scene/2d/particles_2d.h" #include "scene/2d/particles_2d.h"
@ -212,12 +213,12 @@ void CPUParticles2D::set_texture(const Ref<Texture2D> &p_texture) {
return; return;
if (texture.is_valid()) if (texture.is_valid())
texture->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_texture_changed"); texture->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &CPUParticles2D::_texture_changed));
texture = p_texture; texture = p_texture;
if (texture.is_valid()) if (texture.is_valid())
texture->connect_compat(CoreStringNames::get_singleton()->changed, this, "_texture_changed"); texture->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &CPUParticles2D::_texture_changed));
update(); update();
_update_mesh_texture(); _update_mesh_texture();
@ -1326,8 +1327,6 @@ void CPUParticles2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("convert_from_particles", "particles"), &CPUParticles2D::convert_from_particles); ClassDB::bind_method(D_METHOD("convert_from_particles", "particles"), &CPUParticles2D::convert_from_particles);
ClassDB::bind_method(D_METHOD("_texture_changed"), &CPUParticles2D::_texture_changed);
ADD_GROUP("Emission Shape", "emission_"); ADD_GROUP("Emission Shape", "emission_");
ADD_PROPERTY(PropertyInfo(Variant::INT, "emission_shape", PROPERTY_HINT_ENUM, "Point,Sphere,Box,Points,Directed Points"), "set_emission_shape", "get_emission_shape"); ADD_PROPERTY(PropertyInfo(Variant::INT, "emission_shape", PROPERTY_HINT_ENUM, "Point,Sphere,Box,Points,Directed Points"), "set_emission_shape", "get_emission_shape");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "emission_sphere_radius", PROPERTY_HINT_RANGE, "0.01,128,0.01"), "set_emission_sphere_radius", "get_emission_sphere_radius"); ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "emission_sphere_radius", PROPERTY_HINT_RANGE, "0.01,128,0.01"), "set_emission_sphere_radius", "get_emission_sphere_radius");

View File

@ -29,9 +29,9 @@
/*************************************************************************/ /*************************************************************************/
#include "line_2d.h" #include "line_2d.h"
#include "line_builder.h"
#include "core/core_string_names.h" #include "core/core_string_names.h"
#include "line_builder.h"
// Needed so we can bind functions // Needed so we can bind functions
VARIANT_ENUM_CAST(Line2D::LineJointMode) VARIANT_ENUM_CAST(Line2D::LineJointMode)
@ -101,14 +101,14 @@ float Line2D::get_width() const {
void Line2D::set_curve(const Ref<Curve> &p_curve) { void Line2D::set_curve(const Ref<Curve> &p_curve) {
// Cleanup previous connection if any // Cleanup previous connection if any
if (_curve.is_valid()) { if (_curve.is_valid()) {
_curve->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_curve_changed"); _curve->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Line2D::_curve_changed));
} }
_curve = p_curve; _curve = p_curve;
// Connect to the curve so the line will update when it is changed // Connect to the curve so the line will update when it is changed
if (_curve.is_valid()) { if (_curve.is_valid()) {
_curve->connect_compat(CoreStringNames::get_singleton()->changed, this, "_curve_changed"); _curve->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Line2D::_curve_changed));
} }
update(); update();
@ -171,14 +171,14 @@ void Line2D::set_gradient(const Ref<Gradient> &p_gradient) {
// Cleanup previous connection if any // Cleanup previous connection if any
if (_gradient.is_valid()) { if (_gradient.is_valid()) {
_gradient->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_gradient_changed"); _gradient->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Line2D::_gradient_changed));
} }
_gradient = p_gradient; _gradient = p_gradient;
// Connect to the gradient so the line will update when the ColorRamp is changed // Connect to the gradient so the line will update when the ColorRamp is changed
if (_gradient.is_valid()) { if (_gradient.is_valid()) {
_gradient->connect_compat(CoreStringNames::get_singleton()->changed, this, "_gradient_changed"); _gradient->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Line2D::_gradient_changed));
} }
update(); update();
@ -428,7 +428,4 @@ void Line2D::_bind_methods() {
BIND_ENUM_CONSTANT(LINE_TEXTURE_NONE); BIND_ENUM_CONSTANT(LINE_TEXTURE_NONE);
BIND_ENUM_CONSTANT(LINE_TEXTURE_TILE); BIND_ENUM_CONSTANT(LINE_TEXTURE_TILE);
BIND_ENUM_CONSTANT(LINE_TEXTURE_STRETCH); BIND_ENUM_CONSTANT(LINE_TEXTURE_STRETCH);
ClassDB::bind_method(D_METHOD("_gradient_changed"), &Line2D::_gradient_changed);
ClassDB::bind_method(D_METHOD("_curve_changed"), &Line2D::_curve_changed);
} }

View File

@ -507,14 +507,14 @@ void NavigationRegion2D::set_navigation_polygon(const Ref<NavigationPolygon> &p_
} }
if (navpoly.is_valid()) { if (navpoly.is_valid()) {
navpoly->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_navpoly_changed"); navpoly->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &NavigationRegion2D::_navpoly_changed));
} }
navpoly = p_navpoly; navpoly = p_navpoly;
Navigation2DServer::get_singleton()->region_set_navpoly(region, p_navpoly); Navigation2DServer::get_singleton()->region_set_navpoly(region, p_navpoly);
if (navpoly.is_valid()) { if (navpoly.is_valid()) {
navpoly->connect_compat(CoreStringNames::get_singleton()->changed, this, "_navpoly_changed"); navpoly->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &NavigationRegion2D::_navpoly_changed));
} }
_navpoly_changed(); _navpoly_changed();

View File

@ -192,14 +192,15 @@ real_t StaticBody2D::get_constant_angular_velocity() const {
void StaticBody2D::set_physics_material_override(const Ref<PhysicsMaterial> &p_physics_material_override) { void StaticBody2D::set_physics_material_override(const Ref<PhysicsMaterial> &p_physics_material_override) {
if (physics_material_override.is_valid()) { if (physics_material_override.is_valid()) {
if (physics_material_override->is_connected_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics")) if (physics_material_override->is_connected(CoreStringNames::get_singleton()->changed, callable_mp(this, &StaticBody2D::_reload_physics_characteristics))) {
physics_material_override->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics"); physics_material_override->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &StaticBody2D::_reload_physics_characteristics));
}
} }
physics_material_override = p_physics_material_override; physics_material_override = p_physics_material_override;
if (physics_material_override.is_valid()) { if (physics_material_override.is_valid()) {
physics_material_override->connect_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics"); physics_material_override->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &StaticBody2D::_reload_physics_characteristics));
} }
_reload_physics_characteristics(); _reload_physics_characteristics();
} }
@ -218,8 +219,6 @@ void StaticBody2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_physics_material_override", "physics_material_override"), &StaticBody2D::set_physics_material_override); ClassDB::bind_method(D_METHOD("set_physics_material_override", "physics_material_override"), &StaticBody2D::set_physics_material_override);
ClassDB::bind_method(D_METHOD("get_physics_material_override"), &StaticBody2D::get_physics_material_override); ClassDB::bind_method(D_METHOD("get_physics_material_override"), &StaticBody2D::get_physics_material_override);
ClassDB::bind_method(D_METHOD("_reload_physics_characteristics"), &StaticBody2D::_reload_physics_characteristics);
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "constant_linear_velocity"), "set_constant_linear_velocity", "get_constant_linear_velocity"); ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "constant_linear_velocity"), "set_constant_linear_velocity", "get_constant_linear_velocity");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "constant_angular_velocity"), "set_constant_angular_velocity", "get_constant_angular_velocity"); ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "constant_angular_velocity"), "set_constant_angular_velocity", "get_constant_angular_velocity");
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "physics_material_override", PROPERTY_HINT_RESOURCE_TYPE, "PhysicsMaterial"), "set_physics_material_override", "get_physics_material_override"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "physics_material_override", PROPERTY_HINT_RESOURCE_TYPE, "PhysicsMaterial"), "set_physics_material_override", "get_physics_material_override");
@ -311,8 +310,8 @@ void RigidBody2D::_body_inout(int p_status, ObjectID p_instance, int p_body_shap
//E->get().rc=0; //E->get().rc=0;
E->get().in_scene = node && node->is_inside_tree(); E->get().in_scene = node && node->is_inside_tree();
if (node) { if (node) {
node->connect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &RigidBody2D::_body_enter_tree), make_binds(objid));
node->connect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &RigidBody2D::_body_exit_tree), make_binds(objid));
if (E->get().in_scene) { if (E->get().in_scene) {
emit_signal(SceneStringNames::get_singleton()->body_entered, node); emit_signal(SceneStringNames::get_singleton()->body_entered, node);
} }
@ -340,8 +339,8 @@ void RigidBody2D::_body_inout(int p_status, ObjectID p_instance, int p_body_shap
if (E->get().shapes.empty()) { if (E->get().shapes.empty()) {
if (node) { if (node) {
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &RigidBody2D::_body_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &RigidBody2D::_body_exit_tree));
if (in_scene) if (in_scene)
emit_signal(SceneStringNames::get_singleton()->body_exited, node); emit_signal(SceneStringNames::get_singleton()->body_exited, node);
} }
@ -545,14 +544,15 @@ real_t RigidBody2D::get_weight() const {
void RigidBody2D::set_physics_material_override(const Ref<PhysicsMaterial> &p_physics_material_override) { void RigidBody2D::set_physics_material_override(const Ref<PhysicsMaterial> &p_physics_material_override) {
if (physics_material_override.is_valid()) { if (physics_material_override.is_valid()) {
if (physics_material_override->is_connected_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics")) if (physics_material_override->is_connected(CoreStringNames::get_singleton()->changed, callable_mp(this, &RigidBody2D::_reload_physics_characteristics))) {
physics_material_override->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics"); physics_material_override->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &RigidBody2D::_reload_physics_characteristics));
}
} }
physics_material_override = p_physics_material_override; physics_material_override = p_physics_material_override;
if (physics_material_override.is_valid()) { if (physics_material_override.is_valid()) {
physics_material_override->connect_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics"); physics_material_override->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &RigidBody2D::_reload_physics_characteristics));
} }
_reload_physics_characteristics(); _reload_physics_characteristics();
} }
@ -774,9 +774,8 @@ void RigidBody2D::set_contact_monitor(bool p_enabled) {
Node *node = Object::cast_to<Node>(obj); Node *node = Object::cast_to<Node>(obj);
if (node) { if (node) {
node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &RigidBody2D::_body_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &RigidBody2D::_body_exit_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree);
} }
} }
@ -845,8 +844,6 @@ void RigidBody2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_physics_material_override", "physics_material_override"), &RigidBody2D::set_physics_material_override); ClassDB::bind_method(D_METHOD("set_physics_material_override", "physics_material_override"), &RigidBody2D::set_physics_material_override);
ClassDB::bind_method(D_METHOD("get_physics_material_override"), &RigidBody2D::get_physics_material_override); ClassDB::bind_method(D_METHOD("get_physics_material_override"), &RigidBody2D::get_physics_material_override);
ClassDB::bind_method(D_METHOD("_reload_physics_characteristics"), &RigidBody2D::_reload_physics_characteristics);
ClassDB::bind_method(D_METHOD("set_gravity_scale", "gravity_scale"), &RigidBody2D::set_gravity_scale); ClassDB::bind_method(D_METHOD("set_gravity_scale", "gravity_scale"), &RigidBody2D::set_gravity_scale);
ClassDB::bind_method(D_METHOD("get_gravity_scale"), &RigidBody2D::get_gravity_scale); ClassDB::bind_method(D_METHOD("get_gravity_scale"), &RigidBody2D::get_gravity_scale);
@ -898,8 +895,6 @@ void RigidBody2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("test_motion", "motion", "infinite_inertia", "margin", "result"), &RigidBody2D::_test_motion, DEFVAL(true), DEFVAL(0.08), DEFVAL(Variant())); ClassDB::bind_method(D_METHOD("test_motion", "motion", "infinite_inertia", "margin", "result"), &RigidBody2D::_test_motion, DEFVAL(true), DEFVAL(0.08), DEFVAL(Variant()));
ClassDB::bind_method(D_METHOD("_direct_state_changed"), &RigidBody2D::_direct_state_changed); ClassDB::bind_method(D_METHOD("_direct_state_changed"), &RigidBody2D::_direct_state_changed);
ClassDB::bind_method(D_METHOD("_body_enter_tree"), &RigidBody2D::_body_enter_tree);
ClassDB::bind_method(D_METHOD("_body_exit_tree"), &RigidBody2D::_body_exit_tree);
ClassDB::bind_method(D_METHOD("get_colliding_bodies"), &RigidBody2D::get_colliding_bodies); ClassDB::bind_method(D_METHOD("get_colliding_bodies"), &RigidBody2D::get_colliding_bodies);

View File

@ -29,6 +29,7 @@
/*************************************************************************/ /*************************************************************************/
#include "sprite.h" #include "sprite.h"
#include "core/core_string_names.h" #include "core/core_string_names.h"
#include "core/os/os.h" #include "core/os/os.h"
#include "scene/main/viewport.h" #include "scene/main/viewport.h"
@ -142,12 +143,12 @@ void Sprite::set_texture(const Ref<Texture2D> &p_texture) {
return; return;
if (texture.is_valid()) if (texture.is_valid())
texture->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_texture_changed"); texture->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Sprite::_texture_changed));
texture = p_texture; texture = p_texture;
if (texture.is_valid()) if (texture.is_valid())
texture->connect_compat(CoreStringNames::get_singleton()->changed, this, "_texture_changed"); texture->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Sprite::_texture_changed));
update(); update();
emit_signal("texture_changed"); emit_signal("texture_changed");
@ -492,8 +493,6 @@ void Sprite::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_rect"), &Sprite::get_rect); ClassDB::bind_method(D_METHOD("get_rect"), &Sprite::get_rect);
ClassDB::bind_method(D_METHOD("_texture_changed"), &Sprite::_texture_changed);
ADD_SIGNAL(MethodInfo("frame_changed")); ADD_SIGNAL(MethodInfo("frame_changed"));
ADD_SIGNAL(MethodInfo("texture_changed")); ADD_SIGNAL(MethodInfo("texture_changed"));

View File

@ -69,12 +69,12 @@ Ref<BitMap> TouchScreenButton::get_bitmask() const {
void TouchScreenButton::set_shape(const Ref<Shape2D> &p_shape) { void TouchScreenButton::set_shape(const Ref<Shape2D> &p_shape) {
if (shape.is_valid()) if (shape.is_valid())
shape->disconnect_compat("changed", this, "update"); shape->disconnect("changed", callable_mp((CanvasItem *)this, &CanvasItem::update));
shape = p_shape; shape = p_shape;
if (shape.is_valid()) if (shape.is_valid())
shape->connect_compat("changed", this, "update"); shape->connect("changed", callable_mp((CanvasItem *)this, &CanvasItem::update));
update(); update();
} }

View File

@ -224,7 +224,7 @@ void VisibilityEnabler2D::_find_nodes(Node *p_node) {
if (add) { if (add) {
p_node->connect_compat(SceneStringNames::get_singleton()->tree_exiting, this, "_node_removed", varray(p_node), CONNECT_ONESHOT); p_node->connect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &VisibilityEnabler2D::_node_removed), varray(p_node), CONNECT_ONESHOT);
nodes[p_node] = meta; nodes[p_node] = meta;
_change_node_state(p_node, false); _change_node_state(p_node, false);
} }
@ -267,7 +267,7 @@ void VisibilityEnabler2D::_notification(int p_what) {
if (!visible) if (!visible)
_change_node_state(E->key(), true); _change_node_state(E->key(), true);
E->key()->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, "_node_removed"); E->key()->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &VisibilityEnabler2D::_node_removed));
} }
nodes.clear(); nodes.clear();

View File

@ -29,6 +29,7 @@
/*************************************************************************/ /*************************************************************************/
#include "area.h" #include "area.h"
#include "scene/scene_string_names.h" #include "scene/scene_string_names.h"
#include "servers/audio_server.h" #include "servers/audio_server.h"
#include "servers/physics_server.h" #include "servers/physics_server.h"
@ -170,8 +171,8 @@ void Area::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, int
E->get().rc = 0; E->get().rc = 0;
E->get().in_tree = node && node->is_inside_tree(); E->get().in_tree = node && node->is_inside_tree();
if (node) { if (node) {
node->connect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area::_body_enter_tree), make_binds(objid));
node->connect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area::_body_exit_tree), make_binds(objid));
if (E->get().in_tree) { if (E->get().in_tree) {
emit_signal(SceneStringNames::get_singleton()->body_entered, node); emit_signal(SceneStringNames::get_singleton()->body_entered, node);
} }
@ -197,8 +198,8 @@ void Area::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, int
if (E->get().rc == 0) { if (E->get().rc == 0) {
if (node) { if (node) {
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area::_body_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area::_body_exit_tree));
if (E->get().in_tree) if (E->get().in_tree)
emit_signal(SceneStringNames::get_singleton()->body_exited, obj); emit_signal(SceneStringNames::get_singleton()->body_exited, obj);
} }
@ -244,8 +245,8 @@ void Area::_clear_monitoring() {
emit_signal(SceneStringNames::get_singleton()->body_exited, node); emit_signal(SceneStringNames::get_singleton()->body_exited, node);
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area::_body_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area::_body_exit_tree));
} }
} }
@ -274,8 +275,8 @@ void Area::_clear_monitoring() {
emit_signal(SceneStringNames::get_singleton()->area_exited, obj); emit_signal(SceneStringNames::get_singleton()->area_exited, obj);
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_area_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area::_area_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_area_exit_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area::_area_exit_tree));
} }
} }
} }
@ -363,8 +364,8 @@ void Area::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, int
E->get().rc = 0; E->get().rc = 0;
E->get().in_tree = node && node->is_inside_tree(); E->get().in_tree = node && node->is_inside_tree();
if (node) { if (node) {
node->connect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_area_enter_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area::_area_enter_tree), make_binds(objid));
node->connect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_area_exit_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area::_area_exit_tree), make_binds(objid));
if (E->get().in_tree) { if (E->get().in_tree) {
emit_signal(SceneStringNames::get_singleton()->area_entered, node); emit_signal(SceneStringNames::get_singleton()->area_entered, node);
} }
@ -390,8 +391,8 @@ void Area::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, int
if (E->get().rc == 0) { if (E->get().rc == 0) {
if (node) { if (node) {
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_area_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area::_area_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_area_exit_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area::_area_exit_tree));
if (E->get().in_tree) { if (E->get().in_tree) {
emit_signal(SceneStringNames::get_singleton()->area_exited, obj); emit_signal(SceneStringNames::get_singleton()->area_exited, obj);
} }
@ -618,13 +619,6 @@ void Area::_validate_property(PropertyInfo &property) const {
} }
void Area::_bind_methods() { void Area::_bind_methods() {
ClassDB::bind_method(D_METHOD("_body_enter_tree", "id"), &Area::_body_enter_tree);
ClassDB::bind_method(D_METHOD("_body_exit_tree", "id"), &Area::_body_exit_tree);
ClassDB::bind_method(D_METHOD("_area_enter_tree", "id"), &Area::_area_enter_tree);
ClassDB::bind_method(D_METHOD("_area_exit_tree", "id"), &Area::_area_exit_tree);
ClassDB::bind_method(D_METHOD("set_space_override_mode", "enable"), &Area::set_space_override_mode); ClassDB::bind_method(D_METHOD("set_space_override_mode", "enable"), &Area::set_space_override_mode);
ClassDB::bind_method(D_METHOD("get_space_override_mode"), &Area::get_space_override_mode); ClassDB::bind_method(D_METHOD("get_space_override_mode"), &Area::get_space_override_mode);

View File

@ -34,7 +34,6 @@
#include "core/core_string_names.h" #include "core/core_string_names.h"
#include "physics_body.h" #include "physics_body.h"
#include "scene/resources/material.h" #include "scene/resources/material.h"
#include "scene/scene_string_names.h"
#include "skeleton.h" #include "skeleton.h"
bool MeshInstance::_set(const StringName &p_name, const Variant &p_value) { bool MeshInstance::_set(const StringName &p_name, const Variant &p_value) {
@ -112,7 +111,7 @@ void MeshInstance::set_mesh(const Ref<Mesh> &p_mesh) {
return; return;
if (mesh.is_valid()) { if (mesh.is_valid()) {
mesh->disconnect_compat(CoreStringNames::get_singleton()->changed, this, SceneStringNames::get_singleton()->_mesh_changed); mesh->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &MeshInstance::_mesh_changed));
materials.clear(); materials.clear();
} }
@ -129,7 +128,7 @@ void MeshInstance::set_mesh(const Ref<Mesh> &p_mesh) {
blend_shape_tracks["blend_shapes/" + String(mesh->get_blend_shape_name(i))] = mt; blend_shape_tracks["blend_shapes/" + String(mesh->get_blend_shape_name(i))] = mt;
} }
mesh->connect_compat(CoreStringNames::get_singleton()->changed, this, SceneStringNames::get_singleton()->_mesh_changed); mesh->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &MeshInstance::_mesh_changed));
materials.resize(mesh->get_surface_count()); materials.resize(mesh->get_surface_count());
set_base(mesh->get_rid()); set_base(mesh->get_rid());
@ -403,7 +402,6 @@ void MeshInstance::_bind_methods() {
ClassDB::set_method_flags("MeshInstance", "create_trimesh_collision", METHOD_FLAGS_DEFAULT); ClassDB::set_method_flags("MeshInstance", "create_trimesh_collision", METHOD_FLAGS_DEFAULT);
ClassDB::bind_method(D_METHOD("create_convex_collision"), &MeshInstance::create_convex_collision); ClassDB::bind_method(D_METHOD("create_convex_collision"), &MeshInstance::create_convex_collision);
ClassDB::set_method_flags("MeshInstance", "create_convex_collision", METHOD_FLAGS_DEFAULT); ClassDB::set_method_flags("MeshInstance", "create_convex_collision", METHOD_FLAGS_DEFAULT);
ClassDB::bind_method(D_METHOD("_mesh_changed"), &MeshInstance::_mesh_changed);
ClassDB::bind_method(D_METHOD("create_debug_tangents"), &MeshInstance::create_debug_tangents); ClassDB::bind_method(D_METHOD("create_debug_tangents"), &MeshInstance::create_debug_tangents);
ClassDB::set_method_flags("MeshInstance", "create_debug_tangents", METHOD_FLAGS_DEFAULT | METHOD_FLAG_EDITOR); ClassDB::set_method_flags("MeshInstance", "create_debug_tangents", METHOD_FLAGS_DEFAULT | METHOD_FLAG_EDITOR);

View File

@ -180,14 +180,15 @@ PhysicsBody::PhysicsBody(PhysicsServer::BodyMode p_mode) :
void StaticBody::set_physics_material_override(const Ref<PhysicsMaterial> &p_physics_material_override) { void StaticBody::set_physics_material_override(const Ref<PhysicsMaterial> &p_physics_material_override) {
if (physics_material_override.is_valid()) { if (physics_material_override.is_valid()) {
if (physics_material_override->is_connected_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics")) if (physics_material_override->is_connected(CoreStringNames::get_singleton()->changed, callable_mp(this, &StaticBody::_reload_physics_characteristics))) {
physics_material_override->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics"); physics_material_override->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &StaticBody::_reload_physics_characteristics));
}
} }
physics_material_override = p_physics_material_override; physics_material_override = p_physics_material_override;
if (physics_material_override.is_valid()) { if (physics_material_override.is_valid()) {
physics_material_override->connect_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics"); physics_material_override->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &StaticBody::_reload_physics_characteristics));
} }
_reload_physics_characteristics(); _reload_physics_characteristics();
} }
@ -227,8 +228,6 @@ void StaticBody::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_physics_material_override", "physics_material_override"), &StaticBody::set_physics_material_override); ClassDB::bind_method(D_METHOD("set_physics_material_override", "physics_material_override"), &StaticBody::set_physics_material_override);
ClassDB::bind_method(D_METHOD("get_physics_material_override"), &StaticBody::get_physics_material_override); ClassDB::bind_method(D_METHOD("get_physics_material_override"), &StaticBody::get_physics_material_override);
ClassDB::bind_method(D_METHOD("_reload_physics_characteristics"), &StaticBody::_reload_physics_characteristics);
ClassDB::bind_method(D_METHOD("get_collision_exceptions"), &PhysicsBody::get_collision_exceptions); ClassDB::bind_method(D_METHOD("get_collision_exceptions"), &PhysicsBody::get_collision_exceptions);
ClassDB::bind_method(D_METHOD("add_collision_exception_with", "body"), &PhysicsBody::add_collision_exception_with); ClassDB::bind_method(D_METHOD("add_collision_exception_with", "body"), &PhysicsBody::add_collision_exception_with);
ClassDB::bind_method(D_METHOD("remove_collision_exception_with", "body"), &PhysicsBody::remove_collision_exception_with); ClassDB::bind_method(D_METHOD("remove_collision_exception_with", "body"), &PhysicsBody::remove_collision_exception_with);
@ -322,8 +321,8 @@ void RigidBody::_body_inout(int p_status, ObjectID p_instance, int p_body_shape,
//E->get().rc=0; //E->get().rc=0;
E->get().in_tree = node && node->is_inside_tree(); E->get().in_tree = node && node->is_inside_tree();
if (node) { if (node) {
node->connect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &RigidBody::_body_enter_tree), make_binds(objid));
node->connect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree, make_binds(objid)); node->connect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &RigidBody::_body_exit_tree), make_binds(objid));
if (E->get().in_tree) { if (E->get().in_tree) {
emit_signal(SceneStringNames::get_singleton()->body_entered, node); emit_signal(SceneStringNames::get_singleton()->body_entered, node);
} }
@ -349,8 +348,8 @@ void RigidBody::_body_inout(int p_status, ObjectID p_instance, int p_body_shape,
if (E->get().shapes.empty()) { if (E->get().shapes.empty()) {
if (node) { if (node) {
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &RigidBody::_body_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &RigidBody::_body_exit_tree));
if (in_tree) if (in_tree)
emit_signal(SceneStringNames::get_singleton()->body_exited, node); emit_signal(SceneStringNames::get_singleton()->body_exited, node);
} }
@ -550,14 +549,15 @@ real_t RigidBody::get_weight() const {
void RigidBody::set_physics_material_override(const Ref<PhysicsMaterial> &p_physics_material_override) { void RigidBody::set_physics_material_override(const Ref<PhysicsMaterial> &p_physics_material_override) {
if (physics_material_override.is_valid()) { if (physics_material_override.is_valid()) {
if (physics_material_override->is_connected_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics")) if (physics_material_override->is_connected(CoreStringNames::get_singleton()->changed, callable_mp(this, &RigidBody::_reload_physics_characteristics))) {
physics_material_override->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics"); physics_material_override->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &RigidBody::_reload_physics_characteristics));
}
} }
physics_material_override = p_physics_material_override; physics_material_override = p_physics_material_override;
if (physics_material_override.is_valid()) { if (physics_material_override.is_valid()) {
physics_material_override->connect_compat(CoreStringNames::get_singleton()->changed, this, "_reload_physics_characteristics"); physics_material_override->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &RigidBody::_reload_physics_characteristics));
} }
_reload_physics_characteristics(); _reload_physics_characteristics();
} }
@ -737,9 +737,8 @@ void RigidBody::set_contact_monitor(bool p_enabled) {
Node *node = Object::cast_to<Node>(obj); Node *node = Object::cast_to<Node>(obj);
if (node) { if (node) {
node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &RigidBody::_body_enter_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_entered, this, SceneStringNames::get_singleton()->_body_enter_tree); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &RigidBody::_body_exit_tree));
node->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, SceneStringNames::get_singleton()->_body_exit_tree);
} }
} }
@ -814,8 +813,6 @@ void RigidBody::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_physics_material_override", "physics_material_override"), &RigidBody::set_physics_material_override); ClassDB::bind_method(D_METHOD("set_physics_material_override", "physics_material_override"), &RigidBody::set_physics_material_override);
ClassDB::bind_method(D_METHOD("get_physics_material_override"), &RigidBody::get_physics_material_override); ClassDB::bind_method(D_METHOD("get_physics_material_override"), &RigidBody::get_physics_material_override);
ClassDB::bind_method(D_METHOD("_reload_physics_characteristics"), &RigidBody::_reload_physics_characteristics);
ClassDB::bind_method(D_METHOD("set_linear_velocity", "linear_velocity"), &RigidBody::set_linear_velocity); ClassDB::bind_method(D_METHOD("set_linear_velocity", "linear_velocity"), &RigidBody::set_linear_velocity);
ClassDB::bind_method(D_METHOD("get_linear_velocity"), &RigidBody::get_linear_velocity); ClassDB::bind_method(D_METHOD("get_linear_velocity"), &RigidBody::get_linear_velocity);
@ -860,8 +857,6 @@ void RigidBody::_bind_methods() {
ClassDB::bind_method(D_METHOD("is_able_to_sleep"), &RigidBody::is_able_to_sleep); ClassDB::bind_method(D_METHOD("is_able_to_sleep"), &RigidBody::is_able_to_sleep);
ClassDB::bind_method(D_METHOD("_direct_state_changed"), &RigidBody::_direct_state_changed); ClassDB::bind_method(D_METHOD("_direct_state_changed"), &RigidBody::_direct_state_changed);
ClassDB::bind_method(D_METHOD("_body_enter_tree"), &RigidBody::_body_enter_tree);
ClassDB::bind_method(D_METHOD("_body_exit_tree"), &RigidBody::_body_exit_tree);
ClassDB::bind_method(D_METHOD("set_axis_lock", "axis", "lock"), &RigidBody::set_axis_lock); ClassDB::bind_method(D_METHOD("set_axis_lock", "axis", "lock"), &RigidBody::set_axis_lock);
ClassDB::bind_method(D_METHOD("get_axis_lock", "axis"), &RigidBody::get_axis_lock); ClassDB::bind_method(D_METHOD("get_axis_lock", "axis"), &RigidBody::get_axis_lock);

View File

@ -30,9 +30,8 @@
#include "skeleton.h" #include "skeleton.h"
#include "core/message_queue.h"
#include "core/engine.h" #include "core/engine.h"
#include "core/message_queue.h"
#include "core/project_settings.h" #include "core/project_settings.h"
#include "scene/3d/physics_body.h" #include "scene/3d/physics_body.h"
#include "scene/resources/surface_tool.h" #include "scene/resources/surface_tool.h"

View File

@ -29,6 +29,7 @@
/*************************************************************************/ /*************************************************************************/
#include "sprite_3d.h" #include "sprite_3d.h"
#include "core/core_string_names.h" #include "core/core_string_names.h"
#include "scene/scene_string_names.h" #include "scene/scene_string_names.h"
@ -177,8 +178,6 @@ void SpriteBase3D::_im_update() {
_draw(); _draw();
pending_update = false; pending_update = false;
//texture->draw_rect_region(ci,dst_rect,src_rect,modulate);
} }
void SpriteBase3D::_queue_update() { void SpriteBase3D::_queue_update() {

View File

@ -170,7 +170,7 @@ void VisibilityEnabler::_find_nodes(Node *p_node) {
if (add) { if (add) {
p_node->connect_compat(SceneStringNames::get_singleton()->tree_exiting, this, "_node_removed", varray(p_node), CONNECT_ONESHOT); p_node->connect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &VisibilityEnabler::_node_removed), varray(p_node), CONNECT_ONESHOT);
nodes[p_node] = meta; nodes[p_node] = meta;
_change_node_state(p_node, false); _change_node_state(p_node, false);
} }
@ -208,7 +208,7 @@ void VisibilityEnabler::_notification(int p_what) {
if (!visible) if (!visible)
_change_node_state(E->key(), true); _change_node_state(E->key(), true);
E->key()->disconnect_compat(SceneStringNames::get_singleton()->tree_exiting, this, "_node_removed"); E->key()->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &VisibilityEnabler::_node_removed));
} }
nodes.clear(); nodes.clear();
@ -247,7 +247,6 @@ void VisibilityEnabler::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_enabler", "enabler", "enabled"), &VisibilityEnabler::set_enabler); ClassDB::bind_method(D_METHOD("set_enabler", "enabler", "enabled"), &VisibilityEnabler::set_enabler);
ClassDB::bind_method(D_METHOD("is_enabler_enabled", "enabler"), &VisibilityEnabler::is_enabler_enabled); ClassDB::bind_method(D_METHOD("is_enabler_enabled", "enabler"), &VisibilityEnabler::is_enabler_enabled);
ClassDB::bind_method(D_METHOD("_node_removed"), &VisibilityEnabler::_node_removed);
ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "pause_animations"), "set_enabler", "is_enabler_enabled", ENABLER_PAUSE_ANIMATIONS); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "pause_animations"), "set_enabler", "is_enabler_enabled", ENABLER_PAUSE_ANIMATIONS);
ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "freeze_bodies"), "set_enabler", "is_enabler_enabled", ENABLER_FREEZE_BODIES); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "freeze_bodies"), "set_enabler", "is_enabler_enabled", ENABLER_FREEZE_BODIES);

View File

@ -1007,12 +1007,12 @@ void AnimationPlayer::remove_animation(const StringName &p_name) {
void AnimationPlayer::_ref_anim(const Ref<Animation> &p_anim) { void AnimationPlayer::_ref_anim(const Ref<Animation> &p_anim) {
Ref<Animation>(p_anim)->connect_compat(SceneStringNames::get_singleton()->tracks_changed, this, "_animation_changed", varray(), CONNECT_REFERENCE_COUNTED); Ref<Animation>(p_anim)->connect(SceneStringNames::get_singleton()->tracks_changed, callable_mp(this, &AnimationPlayer::_animation_changed), varray(), CONNECT_REFERENCE_COUNTED);
} }
void AnimationPlayer::_unref_anim(const Ref<Animation> &p_anim) { void AnimationPlayer::_unref_anim(const Ref<Animation> &p_anim) {
Ref<Animation>(p_anim)->disconnect_compat(SceneStringNames::get_singleton()->tracks_changed, this, "_animation_changed"); Ref<Animation>(p_anim)->disconnect(SceneStringNames::get_singleton()->tracks_changed, callable_mp(this, &AnimationPlayer::_animation_changed));
} }
void AnimationPlayer::rename_animation(const StringName &p_name, const StringName &p_new_name) { void AnimationPlayer::rename_animation(const StringName &p_name, const StringName &p_new_name) {
@ -1619,9 +1619,6 @@ void AnimationPlayer::restore_animated_values(const AnimatedValuesBackup &p_back
#endif #endif
void AnimationPlayer::_bind_methods() { void AnimationPlayer::_bind_methods() {
ClassDB::bind_method(D_METHOD("_animation_changed"), &AnimationPlayer::_animation_changed);
ClassDB::bind_method(D_METHOD("add_animation", "name", "animation"), &AnimationPlayer::add_animation); ClassDB::bind_method(D_METHOD("add_animation", "name", "animation"), &AnimationPlayer::add_animation);
ClassDB::bind_method(D_METHOD("remove_animation", "name"), &AnimationPlayer::remove_animation); ClassDB::bind_method(D_METHOD("remove_animation", "name"), &AnimationPlayer::remove_animation);
ClassDB::bind_method(D_METHOD("rename_animation", "name", "newname"), &AnimationPlayer::rename_animation); ClassDB::bind_method(D_METHOD("rename_animation", "name", "newname"), &AnimationPlayer::rename_animation);

View File

@ -956,8 +956,8 @@ void ColorPickerButton::_update_picker() {
add_child(popup); add_child(popup);
picker->connect("color_changed", callable_mp(this, &ColorPickerButton::_color_changed)); picker->connect("color_changed", callable_mp(this, &ColorPickerButton::_color_changed));
popup->connect("modal_closed", callable_mp(this, &ColorPickerButton::_modal_closed)); popup->connect("modal_closed", callable_mp(this, &ColorPickerButton::_modal_closed));
popup->connect_compat("about_to_show", this, "set_pressed", varray(true)); popup->connect("about_to_show", callable_mp((BaseButton *)this, &BaseButton::set_pressed), varray(true));
popup->connect_compat("popup_hide", this, "set_pressed", varray(false)); popup->connect("popup_hide", callable_mp((BaseButton *)this, &BaseButton::set_pressed), varray(false));
picker->set_pick_color(color); picker->set_pick_color(color);
picker->set_edit_alpha(edit_alpha); picker->set_edit_alpha(edit_alpha);
emit_signal("picker_created"); emit_signal("picker_created");

View File

@ -338,6 +338,8 @@ void WindowDialog::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_resizable"), &WindowDialog::get_resizable); ClassDB::bind_method(D_METHOD("get_resizable"), &WindowDialog::get_resizable);
ClassDB::bind_method(D_METHOD("get_close_button"), &WindowDialog::get_close_button); ClassDB::bind_method(D_METHOD("get_close_button"), &WindowDialog::get_close_button);
ClassDB::bind_method(D_METHOD("_closed"), &WindowDialog::_closed); // Still used by some connect_compat.
ADD_PROPERTY(PropertyInfo(Variant::STRING, "window_title", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT_INTL), "set_title", "get_title"); ADD_PROPERTY(PropertyInfo(Variant::STRING, "window_title", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT_INTL), "set_title", "get_title");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "resizable", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT_INTL), "set_resizable", "get_resizable"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "resizable", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT_INTL), "set_resizable", "get_resizable");
} }
@ -562,6 +564,9 @@ void AcceptDialog::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_autowrap", "autowrap"), &AcceptDialog::set_autowrap); ClassDB::bind_method(D_METHOD("set_autowrap", "autowrap"), &AcceptDialog::set_autowrap);
ClassDB::bind_method(D_METHOD("has_autowrap"), &AcceptDialog::has_autowrap); ClassDB::bind_method(D_METHOD("has_autowrap"), &AcceptDialog::has_autowrap);
ClassDB::bind_method(D_METHOD("_ok"), &AcceptDialog::_ok_pressed); // Still used by some connect_compat.
ClassDB::bind_method(D_METHOD("_builtin_text_entered"), &AcceptDialog::_builtin_text_entered); // Still used by some connect_compat.
ADD_SIGNAL(MethodInfo("confirmed")); ADD_SIGNAL(MethodInfo("confirmed"));
ADD_SIGNAL(MethodInfo("custom_action", PropertyInfo(Variant::STRING_NAME, "action"))); ADD_SIGNAL(MethodInfo("custom_action", PropertyInfo(Variant::STRING_NAME, "action")));

View File

@ -259,7 +259,7 @@ void GraphEdit::add_child_notify(Node *p_child) {
gn->set_scale(Vector2(zoom, zoom)); gn->set_scale(Vector2(zoom, zoom));
gn->connect("offset_changed", callable_mp(this, &GraphEdit::_graph_node_moved), varray(gn)); gn->connect("offset_changed", callable_mp(this, &GraphEdit::_graph_node_moved), varray(gn));
gn->connect("raise_request", callable_mp(this, &GraphEdit::_graph_node_raised), varray(gn)); gn->connect("raise_request", callable_mp(this, &GraphEdit::_graph_node_raised), varray(gn));
gn->connect_compat("item_rect_changed", connections_layer, "update"); gn->connect("item_rect_changed", callable_mp((CanvasItem *)connections_layer, &CanvasItem::update));
_graph_node_moved(gn); _graph_node_moved(gn);
gn->set_mouse_filter(MOUSE_FILTER_PASS); gn->set_mouse_filter(MOUSE_FILTER_PASS);
} }

View File

@ -29,6 +29,7 @@
/*************************************************************************/ /*************************************************************************/
#include "menu_button.h" #include "menu_button.h"
#include "core/os/keyboard.h" #include "core/os/keyboard.h"
#include "scene/main/viewport.h" #include "scene/main/viewport.h"
@ -137,8 +138,8 @@ MenuButton::MenuButton() {
popup->hide(); popup->hide();
add_child(popup); add_child(popup);
popup->set_pass_on_modal_close_click(false); popup->set_pass_on_modal_close_click(false);
popup->connect_compat("about_to_show", this, "set_pressed", varray(true)); // For when switching from another MenuButton. popup->connect("about_to_show", callable_mp((BaseButton *)this, &BaseButton::set_pressed), varray(true)); // For when switching from another MenuButton.
popup->connect_compat("popup_hide", this, "set_pressed", varray(false)); popup->connect("popup_hide", callable_mp((BaseButton *)this, &BaseButton::set_pressed), varray(false));
} }
MenuButton::~MenuButton() { MenuButton::~MenuButton() {

View File

@ -29,6 +29,7 @@
/*************************************************************************/ /*************************************************************************/
#include "option_button.h" #include "option_button.h"
#include "core/print_string.h" #include "core/print_string.h"
Size2 OptionButton::get_minimum_size() const { Size2 OptionButton::get_minimum_size() const {
@ -362,7 +363,7 @@ OptionButton::OptionButton() {
popup->set_allow_search(true); popup->set_allow_search(true);
popup->connect("index_pressed", callable_mp(this, &OptionButton::_selected)); popup->connect("index_pressed", callable_mp(this, &OptionButton::_selected));
popup->connect("id_focused", callable_mp(this, &OptionButton::_focused)); popup->connect("id_focused", callable_mp(this, &OptionButton::_focused));
popup->connect_compat("popup_hide", this, "set_pressed", varray(false)); popup->connect("popup_hide", callable_mp((BaseButton *)this, &BaseButton::set_pressed), varray(false));
} }
OptionButton::~OptionButton() { OptionButton::~OptionButton() {

View File

@ -29,6 +29,7 @@
/*************************************************************************/ /*************************************************************************/
#include "popup_menu.h" #include "popup_menu.h"
#include "core/os/input.h" #include "core/os/input.h"
#include "core/os/keyboard.h" #include "core/os/keyboard.h"
#include "core/os/os.h" #include "core/os/os.h"
@ -1233,7 +1234,7 @@ void PopupMenu::_ref_shortcut(Ref<ShortCut> p_sc) {
if (!shortcut_refcount.has(p_sc)) { if (!shortcut_refcount.has(p_sc)) {
shortcut_refcount[p_sc] = 1; shortcut_refcount[p_sc] = 1;
p_sc->connect_compat("changed", this, "update"); p_sc->connect("changed", callable_mp((CanvasItem *)this, &CanvasItem::update));
} else { } else {
shortcut_refcount[p_sc] += 1; shortcut_refcount[p_sc] += 1;
} }
@ -1244,7 +1245,7 @@ void PopupMenu::_unref_shortcut(Ref<ShortCut> p_sc) {
ERR_FAIL_COND(!shortcut_refcount.has(p_sc)); ERR_FAIL_COND(!shortcut_refcount.has(p_sc));
shortcut_refcount[p_sc]--; shortcut_refcount[p_sc]--;
if (shortcut_refcount[p_sc] == 0) { if (shortcut_refcount[p_sc] == 0) {
p_sc->disconnect_compat("changed", this, "update"); p_sc->disconnect("changed", callable_mp((CanvasItem *)this, &CanvasItem::update));
shortcut_refcount.erase(p_sc); shortcut_refcount.erase(p_sc);
} }
} }

View File

@ -127,7 +127,6 @@ void TextureRect::_bind_methods() {
ClassDB::bind_method(D_METHOD("is_flipped_v"), &TextureRect::is_flipped_v); ClassDB::bind_method(D_METHOD("is_flipped_v"), &TextureRect::is_flipped_v);
ClassDB::bind_method(D_METHOD("set_stretch_mode", "stretch_mode"), &TextureRect::set_stretch_mode); ClassDB::bind_method(D_METHOD("set_stretch_mode", "stretch_mode"), &TextureRect::set_stretch_mode);
ClassDB::bind_method(D_METHOD("get_stretch_mode"), &TextureRect::get_stretch_mode); ClassDB::bind_method(D_METHOD("get_stretch_mode"), &TextureRect::get_stretch_mode);
ClassDB::bind_method(D_METHOD("_texture_changed"), &TextureRect::_texture_changed);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D"), "set_texture", "get_texture"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D"), "set_texture", "get_texture");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "expand"), "set_expand", "has_expand"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "expand"), "set_expand", "has_expand");
@ -160,13 +159,13 @@ void TextureRect::set_texture(const Ref<Texture2D> &p_tex) {
} }
if (texture.is_valid()) { if (texture.is_valid()) {
texture->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_texture_changed"); texture->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &TextureRect::_texture_changed));
} }
texture = p_tex; texture = p_tex;
if (texture.is_valid()) { if (texture.is_valid()) {
texture->connect_compat(CoreStringNames::get_singleton()->changed, this, "_texture_changed"); texture->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &TextureRect::_texture_changed));
} }
update(); update();

View File

@ -30,8 +30,6 @@
#include "node.h" #include "node.h"
#include <stdint.h>
#include "core/core_string_names.h" #include "core/core_string_names.h"
#include "core/io/resource_loader.h" #include "core/io/resource_loader.h"
#include "core/message_queue.h" #include "core/message_queue.h"
@ -46,6 +44,8 @@
#include "editor/editor_settings.h" #include "editor/editor_settings.h"
#endif #endif
#include <stdint.h>
VARIANT_ENUM_CAST(Node::PauseMode); VARIANT_ENUM_CAST(Node::PauseMode);
int Node::orphan_node_count = 0; int Node::orphan_node_count = 0;
@ -2346,15 +2346,18 @@ void Node::_duplicate_signals(const Node *p_original, Node *p_copy) const {
Node *copytarget = target; Node *copytarget = target;
// Atempt to find a path to the duplicate target, if it seems it's not part // Attempt to find a path to the duplicate target, if it seems it's not part
// of the duplicated and not yet parented hierarchy then at least try to connect // of the duplicated and not yet parented hierarchy then at least try to connect
// to the same target as the original // to the same target as the original
if (p_copy->has_node(ptarget)) if (p_copy->has_node(ptarget))
copytarget = p_copy->get_node(ptarget); copytarget = p_copy->get_node(ptarget);
if (copy && copytarget && !copy->is_connected_compat(E->get().signal.get_name(), copytarget, E->get().callable.get_method())) { if (copy && copytarget) {
copy->connect_compat(E->get().signal.get_name(), copytarget, E->get().callable.get_method(), E->get().binds, E->get().flags); const Callable copy_callable = Callable(copytarget, E->get().callable.get_method());
if (!copy->is_connected(E->get().signal.get_name(), copy_callable)) {
copy->connect(E->get().signal.get_name(), copy_callable, E->get().binds, E->get().flags);
}
} }
} }
} }
@ -2509,10 +2512,10 @@ void Node::_replace_connections_target(Node *p_new_target) {
Connection &c = E->get(); Connection &c = E->get();
if (c.flags & CONNECT_PERSIST) { if (c.flags & CONNECT_PERSIST) {
c.signal.get_object()->disconnect_compat(c.signal.get_name(), this, c.callable.get_method()); c.signal.get_object()->disconnect(c.signal.get_name(), Callable(this, c.callable.get_method()));
bool valid = p_new_target->has_method(c.callable.get_method()) || Ref<Script>(p_new_target->get_script()).is_null() || Ref<Script>(p_new_target->get_script())->has_method(c.callable.get_method()); bool valid = p_new_target->has_method(c.callable.get_method()) || Ref<Script>(p_new_target->get_script()).is_null() || Ref<Script>(p_new_target->get_script())->has_method(c.callable.get_method());
ERR_CONTINUE_MSG(!valid, "Attempt to connect signal '" + c.signal.get_object()->get_class() + "." + c.signal.get_name() + "' to nonexistent method '" + c.callable.get_object()->get_class() + "." + c.callable.get_method() + "'."); ERR_CONTINUE_MSG(!valid, "Attempt to connect signal '" + c.signal.get_object()->get_class() + "." + c.signal.get_name() + "' to nonexistent method '" + c.callable.get_object()->get_class() + "." + c.callable.get_method() + "'.");
c.signal.get_object()->connect_compat(c.signal.get_name(), p_new_target, c.callable.get_method(), c.binds, c.flags); c.signal.get_object()->connect(c.signal.get_name(), Callable(p_new_target, c.callable.get_method()), c.binds, c.flags);
} }
} }
} }

View File

@ -88,7 +88,7 @@ void SceneTreeTimer::release_connections() {
for (List<Connection>::Element *E = connections.front(); E; E = E->next()) { for (List<Connection>::Element *E = connections.front(); E; E = E->next()) {
Connection const &connection = E->get(); Connection const &connection = E->get();
disconnect_compat(connection.signal.get_name(), connection.callable.get_object(), connection.callable.get_method()); disconnect(connection.signal.get_name(), connection.callable);
} }
} }

View File

@ -1124,7 +1124,7 @@ void Viewport::set_world(const Ref<World> &p_world) {
_propagate_exit_world(this); _propagate_exit_world(this);
if (own_world.is_valid() && world.is_valid()) { if (own_world.is_valid() && world.is_valid()) {
world->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_own_world_changed"); world->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Viewport::_own_world_changed));
} }
world = p_world; world = p_world;
@ -1132,7 +1132,7 @@ void Viewport::set_world(const Ref<World> &p_world) {
if (own_world.is_valid()) { if (own_world.is_valid()) {
if (world.is_valid()) { if (world.is_valid()) {
own_world = world->duplicate(); own_world = world->duplicate();
world->connect_compat(CoreStringNames::get_singleton()->changed, this, "_own_world_changed"); world->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Viewport::_own_world_changed));
} else { } else {
own_world = Ref<World>(memnew(World)); own_world = Ref<World>(memnew(World));
} }
@ -2473,7 +2473,7 @@ List<Control *>::Element *Viewport::_gui_add_root_control(Control *p_control) {
List<Control *>::Element *Viewport::_gui_add_subwindow_control(Control *p_control) { List<Control *>::Element *Viewport::_gui_add_subwindow_control(Control *p_control) {
p_control->connect_compat("visibility_changed", this, "_subwindow_visibility_changed"); p_control->connect("visibility_changed", callable_mp(this, &Viewport::_subwindow_visibility_changed));
if (p_control->is_visible_in_tree()) { if (p_control->is_visible_in_tree()) {
gui.subwindow_order_dirty = true; gui.subwindow_order_dirty = true;
@ -2568,7 +2568,7 @@ void Viewport::_gui_remove_subwindow_control(List<Control *>::Element *SI) {
Control *control = SI->get(); Control *control = SI->get();
control->disconnect_compat("visibility_changed", this, "_subwindow_visibility_changed"); control->disconnect("visibility_changed", callable_mp(this, &Viewport::_subwindow_visibility_changed));
List<Control *>::Element *E = gui.subwindows.find(control); List<Control *>::Element *E = gui.subwindows.find(control);
if (E) if (E)
@ -2850,12 +2850,12 @@ void Viewport::set_use_own_world(bool p_world) {
if (!p_world) { if (!p_world) {
own_world = Ref<World>(); own_world = Ref<World>();
if (world.is_valid()) { if (world.is_valid()) {
world->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_own_world_changed"); world->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Viewport::_own_world_changed));
} }
} else { } else {
if (world.is_valid()) { if (world.is_valid()) {
own_world = world->duplicate(); own_world = world->duplicate();
world->connect_compat(CoreStringNames::get_singleton()->changed, this, "_own_world_changed"); world->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Viewport::_own_world_changed));
} else { } else {
own_world = Ref<World>(memnew(World)); own_world = Ref<World>(memnew(World));
} }
@ -3194,10 +3194,6 @@ void Viewport::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_default_canvas_item_texture_repeat", "mode"), &Viewport::set_default_canvas_item_texture_repeat); ClassDB::bind_method(D_METHOD("set_default_canvas_item_texture_repeat", "mode"), &Viewport::set_default_canvas_item_texture_repeat);
ClassDB::bind_method(D_METHOD("get_default_canvas_item_texture_repeat"), &Viewport::get_default_canvas_item_texture_repeat); ClassDB::bind_method(D_METHOD("get_default_canvas_item_texture_repeat"), &Viewport::get_default_canvas_item_texture_repeat);
ClassDB::bind_method(D_METHOD("_subwindow_visibility_changed"), &Viewport::_subwindow_visibility_changed);
ClassDB::bind_method(D_METHOD("_own_world_changed"), &Viewport::_own_world_changed);
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "arvr"), "set_use_arvr", "use_arvr"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "arvr"), "set_use_arvr", "use_arvr");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "size"), "set_size", "get_size"); ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "size"), "set_size", "get_size");

View File

@ -331,7 +331,7 @@ Node *SceneState::instance(GenEditState p_edit_state) const {
binds.write[j] = props[c.binds[j]]; binds.write[j] = props[c.binds[j]];
} }
cfrom->connect_compat(snames[c.signal], cto, snames[c.method], binds, CONNECT_PERSIST | c.flags); cfrom->connect(snames[c.signal], Callable(cto, snames[c.method]), binds, CONNECT_PERSIST | c.flags);
} }
//Node *s = ret_nodes[0]; //Node *s = ret_nodes[0];

View File

@ -1409,11 +1409,11 @@ void CurveTexture::ensure_default_setup(float p_min, float p_max) {
void CurveTexture::set_curve(Ref<Curve> p_curve) { void CurveTexture::set_curve(Ref<Curve> p_curve) {
if (_curve != p_curve) { if (_curve != p_curve) {
if (_curve.is_valid()) { if (_curve.is_valid()) {
_curve->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_update"); _curve->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &CurveTexture::_update));
} }
_curve = p_curve; _curve = p_curve;
if (_curve.is_valid()) { if (_curve.is_valid()) {
_curve->connect_compat(CoreStringNames::get_singleton()->changed, this, "_update"); _curve->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &CurveTexture::_update));
} }
_update(); _update();
} }
@ -1514,11 +1514,11 @@ void GradientTexture::set_gradient(Ref<Gradient> p_gradient) {
if (p_gradient == gradient) if (p_gradient == gradient)
return; return;
if (gradient.is_valid()) { if (gradient.is_valid()) {
gradient->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_update"); gradient->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &GradientTexture::_update));
} }
gradient = p_gradient; gradient = p_gradient;
if (gradient.is_valid()) { if (gradient.is_valid()) {
gradient->connect_compat(CoreStringNames::get_singleton()->changed, this, "_update"); gradient->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &GradientTexture::_update));
} }
_update(); _update();
emit_changed(); emit_changed();

View File

@ -119,12 +119,6 @@ SceneStringNames::SceneStringNames() {
camera_entered = StaticCString::create("camera_entered"); camera_entered = StaticCString::create("camera_entered");
camera_exited = StaticCString::create("camera_exited"); camera_exited = StaticCString::create("camera_exited");
_body_enter_tree = StaticCString::create("_body_enter_tree");
_body_exit_tree = StaticCString::create("_body_exit_tree");
_area_enter_tree = StaticCString::create("_area_enter_tree");
_area_exit_tree = StaticCString::create("_area_exit_tree");
_input = StaticCString::create("_input"); _input = StaticCString::create("_input");
_input_event = StaticCString::create("_input_event"); _input_event = StaticCString::create("_input_event");
@ -167,8 +161,8 @@ SceneStringNames::SceneStringNames() {
drop_data = StaticCString::create("drop_data"); drop_data = StaticCString::create("drop_data");
can_drop_data = StaticCString::create("can_drop_data"); can_drop_data = StaticCString::create("can_drop_data");
_im_update = StaticCString::create("_im_update"); _im_update = StaticCString::create("_im_update"); // Sprite3D
_queue_update = StaticCString::create("_queue_update"); _queue_update = StaticCString::create("_queue_update"); // Sprite3D
baked_light_changed = StaticCString::create("baked_light_changed"); baked_light_changed = StaticCString::create("baked_light_changed");
_baked_light_changed = StaticCString::create("_baked_light_changed"); _baked_light_changed = StaticCString::create("_baked_light_changed");
@ -200,8 +194,6 @@ SceneStringNames::SceneStringNames() {
mesh_materials[i] = "material/" + itos(i); mesh_materials[i] = "material/" + itos(i);
} }
_mesh_changed = StaticCString::create("_mesh_changed");
parameters_base_path = "parameters/"; parameters_base_path = "parameters/";
tracks_changed = "tracks_changed"; tracks_changed = "tracks_changed";

View File

@ -33,6 +33,7 @@
#include "core/node_path.h" #include "core/node_path.h"
#include "core/string_name.h" #include "core/string_name.h"
class SceneStringNames { class SceneStringNames {
friend void register_scene_types(); friend void register_scene_types();
@ -147,12 +148,6 @@ public:
StringName camera_entered; StringName camera_entered;
StringName camera_exited; StringName camera_exited;
StringName _body_enter_tree;
StringName _body_exit_tree;
StringName _area_enter_tree;
StringName _area_exit_tree;
StringName changed; StringName changed;
StringName _shader_changed; StringName _shader_changed;
@ -211,7 +206,6 @@ public:
MAX_MATERIALS = 32 MAX_MATERIALS = 32
}; };
StringName mesh_materials[MAX_MATERIALS]; StringName mesh_materials[MAX_MATERIALS];
StringName _mesh_changed;
}; };
#endif // SCENE_STRING_NAMES_H #endif // SCENE_STRING_NAMES_H