summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editor/connections_dialog.cpp31
-rw-r--r--editor/connections_dialog.h2
2 files changed, 16 insertions, 17 deletions
diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp
index db12dbc72b..c1a5ae9ce1 100644
--- a/editor/connections_dialog.cpp
+++ b/editor/connections_dialog.cpp
@@ -350,6 +350,7 @@ void ConnectDialog::_update_method_tree() {
}
if (script_methods_only->is_pressed()) {
+ empty_tree_label->set_visible(root_item->get_first_child() == nullptr);
return;
}
@@ -376,6 +377,8 @@ void ConnectDialog::_update_method_tree() {
}
current_class = ClassDB::get_parent_class_nocheck(current_class);
} while (current_class != StringName());
+
+ empty_tree_label->set_visible(root_item->get_first_child() == nullptr);
}
void ConnectDialog::_method_check_button_pressed(const CheckButton *p_button) {
@@ -432,6 +435,7 @@ void ConnectDialog::_notification(int p_what) {
from_signal->add_theme_style_override("normal", style);
}
method_search->set_right_icon(get_theme_icon("Search", "EditorIcons"));
+ open_method_tree->set_icon(get_theme_icon("Edit", "EditorIcons"));
} break;
}
}
@@ -597,18 +601,9 @@ ConnectDialog::ConnectDialog() {
main_hb->add_child(vbc_left);
vbc_left->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- HBoxContainer *from_signal_hb = memnew(HBoxContainer);
-
from_signal = memnew(LineEdit);
+ vbc_left->add_margin_child(TTR("From Signal:"), from_signal);
from_signal->set_editable(false);
- from_signal->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- from_signal_hb->add_child(from_signal);
-
- advanced = memnew(CheckButton(TTR("Advanced")));
- from_signal_hb->add_child(advanced);
- advanced->connect("pressed", callable_mp(this, &ConnectDialog::_advanced_pressed));
-
- vbc_left->add_margin_child(TTR("From Signal:"), from_signal_hb);
tree = memnew(SceneTreeEditor(false));
tree->set_connecting_signal(true);
@@ -646,6 +641,10 @@ ConnectDialog::ConnectDialog() {
method_tree->connect("item_selected", callable_mp(this, &ConnectDialog::_method_selected));
method_tree->connect("item_activated", callable_mp((Window *)method_popup, &Window::hide));
+ empty_tree_label = memnew(Label(TTR("No method found matching given filters.")));
+ method_tree->add_child(empty_tree_label);
+ empty_tree_label->set_anchors_and_offsets_preset(Control::PRESET_CENTER);
+
script_methods_only = memnew(CheckButton(TTR("Script Methods Only")));
method_vbc->add_child(script_methods_only);
script_methods_only->set_h_size_flags(Control::SIZE_SHRINK_END);
@@ -712,15 +711,13 @@ ConnectDialog::ConnectDialog() {
dst_method->connect("text_submitted", callable_mp(this, &ConnectDialog::_text_submitted));
hbc_method->add_child(dst_method);
- Button *open_tree_button = memnew(Button);
- open_tree_button->set_flat(false);
- open_tree_button->set_text("...");
- open_tree_button->connect("pressed", callable_mp(this, &ConnectDialog::_open_method_popup));
- hbc_method->add_child(open_tree_button);
+ open_method_tree = memnew(Button);
+ hbc_method->add_child(open_method_tree);
+ open_method_tree->set_text("Pick");
+ open_method_tree->connect("pressed", callable_mp(this, &ConnectDialog::_open_method_popup));
- advanced = memnew(CheckButton);
+ advanced = memnew(CheckButton(TTR("Advanced")));
vbc_left->add_child(advanced);
- advanced->set_text(TTR("Advanced"));
advanced->set_h_size_flags(Control::SIZE_SHRINK_BEGIN | Control::SIZE_EXPAND);
advanced->set_pressed(EditorSettings::get_singleton()->get_project_metadata("editor_metadata", "use_advanced_connections", false));
advanced->connect("pressed", callable_mp(this, &ConnectDialog::_advanced_pressed));
diff --git a/editor/connections_dialog.h b/editor/connections_dialog.h
index 0bea897976..17a292434c 100644
--- a/editor/connections_dialog.h
+++ b/editor/connections_dialog.h
@@ -117,8 +117,10 @@ private:
SceneTreeEditor *tree = nullptr;
AcceptDialog *error = nullptr;
+ Button *open_method_tree = nullptr;
AcceptDialog *method_popup = nullptr;
Tree *method_tree = nullptr;
+ Label *empty_tree_label = nullptr;
LineEdit *method_search = nullptr;
CheckButton *script_methods_only = nullptr;
CheckButton *compatible_methods_only = nullptr;