diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-15 15:44:55 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-15 15:44:55 +0100 |
commit | 09df8f4a560b69d44e676ec8ec1f6b8fd866cd5e (patch) | |
tree | d8613fcfe320e3b95af942bd8ebb59b25b812425 /editor/connections_dialog.cpp | |
parent | 17944bbb3a96ed8ef2a963aa0269d80cbcd40af0 (diff) | |
parent | 9fa2355ceffefe3991e16ef4c3957f433fadd881 (diff) | |
download | redot-engine-09df8f4a560b69d44e676ec8ec1f6b8fd866cd5e.tar.gz |
Merge pull request #87952 from paulloz/dotnet/byebye-signal-callback-generation
Disable signal callback generation in C#
Diffstat (limited to 'editor/connections_dialog.cpp')
-rw-r--r-- | editor/connections_dialog.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp index e022294277..6ad8dae3b4 100644 --- a/editor/connections_dialog.cpp +++ b/editor/connections_dialog.cpp @@ -178,6 +178,7 @@ void ConnectDialog::_tree_node_selected() { set_dst_method(generate_method_callback_name(source, signal, current)); } _update_method_tree(); + _update_warning_label(); _update_ok_enabled(); } @@ -433,6 +434,23 @@ void ConnectDialog::_update_ok_enabled() { get_ok_button()->set_disabled(false); } +void ConnectDialog::_update_warning_label() { + Ref<Script> scr = source->get_node(dst_path)->get_script(); + if (scr.is_null()) { + warning_label->set_visible(false); + return; + } + + ScriptLanguage *language = scr->get_language(); + if (language->can_make_function()) { + warning_label->set_visible(false); + return; + } + + warning_label->set_text(vformat(TTR("%s: Callback code won't be generated, please add it manually."), language->get_name())); + warning_label->set_visible(true); +} + void ConnectDialog::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { @@ -617,6 +635,7 @@ void ConnectDialog::init(const ConnectionData &p_cd, const PackedStringArray &p_ void ConnectDialog::popup_dialog(const String p_for_signal) { from_signal->set_text(p_for_signal); + warning_label->add_theme_color_override("font_color", warning_label->get_theme_color(SNAME("warning_color"), EditorStringName(Editor))); error_label->add_theme_color_override("font_color", error_label->get_theme_color(SNAME("error_color"), EditorStringName(Editor))); filter_nodes->clear(); @@ -694,6 +713,10 @@ ConnectDialog::ConnectDialog() { connect_to_label = Object::cast_to<Label>(vbc_left->get_child(mc->get_index() - 1)); vbc_left->add_child(tree); + warning_label = memnew(Label); + vbc_left->add_child(warning_label); + warning_label->hide(); + error_label = memnew(Label); error_label->set_text(TTR("Scene does not contain any script.")); vbc_left->add_child(error_label); |