diff options
Diffstat (limited to 'editor/input_event_configuration_dialog.cpp')
-rw-r--r-- | editor/input_event_configuration_dialog.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/editor/input_event_configuration_dialog.cpp b/editor/input_event_configuration_dialog.cpp index e2aac6c75d..2ecce2f739 100644 --- a/editor/input_event_configuration_dialog.cpp +++ b/editor/input_event_configuration_dialog.cpp @@ -285,7 +285,7 @@ void InputEventConfigurationDialog::_update_input_list() { for (int i = 0; i < keycode_get_count(); i++) { String name = keycode_get_name_by_index(i); - if (!search_term.is_empty() && name.findn(search_term) == -1) { + if (!search_term.is_empty() && !name.containsn(search_term)) { continue; } @@ -309,7 +309,7 @@ void InputEventConfigurationDialog::_update_input_list() { mb->set_button_index(mouse_buttons[i]); String desc = EventListenerLineEdit::get_event_text(mb, false); - if (!search_term.is_empty() && desc.findn(search_term) == -1) { + if (!search_term.is_empty() && !desc.containsn(search_term)) { continue; } @@ -332,7 +332,7 @@ void InputEventConfigurationDialog::_update_input_list() { joyb->set_button_index((JoyButton)i); String desc = EventListenerLineEdit::get_event_text(joyb, false); - if (!search_term.is_empty() && desc.findn(search_term) == -1) { + if (!search_term.is_empty() && !desc.containsn(search_term)) { continue; } @@ -358,7 +358,7 @@ void InputEventConfigurationDialog::_update_input_list() { joym->set_axis_value(direction); String desc = EventListenerLineEdit::get_event_text(joym, false); - if (!search_term.is_empty() && desc.findn(search_term) == -1) { + if (!search_term.is_empty() && !desc.containsn(search_term)) { continue; } @@ -446,6 +446,11 @@ void InputEventConfigurationDialog::_key_location_selected(int p_location) { _set_event(k, original_event); } +void InputEventConfigurationDialog::_input_list_item_activated() { + TreeItem *selected = input_list_tree->get_selected(); + selected->set_collapsed(!selected->is_collapsed()); +} + void InputEventConfigurationDialog::_input_list_item_selected() { TreeItem *selected = input_list_tree->get_selected(); @@ -587,7 +592,7 @@ void InputEventConfigurationDialog::_notification(int p_what) { void InputEventConfigurationDialog::popup_and_configure(const Ref<InputEvent> &p_event, const String &p_current_action_name) { if (p_event.is_valid()) { - _set_event(p_event->duplicate(), p_event); + _set_event(p_event->duplicate(), p_event->duplicate()); } else { // Clear Event _set_event(Ref<InputEvent>(), Ref<InputEvent>()); @@ -648,8 +653,8 @@ InputEventConfigurationDialog::InputEventConfigurationDialog() { event_listener->set_h_size_flags(Control::SIZE_EXPAND_FILL); event_listener->set_stretch_ratio(0.75); event_listener->connect("event_changed", callable_mp(this, &InputEventConfigurationDialog::_on_listen_input_changed)); - event_listener->connect("focus_entered", callable_mp((AcceptDialog *)this, &AcceptDialog::set_close_on_escape).bind(false)); - event_listener->connect("focus_exited", callable_mp((AcceptDialog *)this, &AcceptDialog::set_close_on_escape).bind(true)); + event_listener->connect(SceneStringName(focus_entered), callable_mp((AcceptDialog *)this, &AcceptDialog::set_close_on_escape).bind(false)); + event_listener->connect(SceneStringName(focus_exited), callable_mp((AcceptDialog *)this, &AcceptDialog::set_close_on_escape).bind(true)); main_vbox->add_child(event_listener); main_vbox->add_child(memnew(HSeparator)); @@ -670,6 +675,7 @@ InputEventConfigurationDialog::InputEventConfigurationDialog() { input_list_tree = memnew(Tree); input_list_tree->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); input_list_tree->set_custom_minimum_size(Size2(0, 100 * EDSCALE)); // Min height for tree + input_list_tree->connect("item_activated", callable_mp(this, &InputEventConfigurationDialog::_input_list_item_activated)); input_list_tree->connect("item_selected", callable_mp(this, &InputEventConfigurationDialog::_input_list_item_selected)); input_list_tree->set_v_size_flags(Control::SIZE_EXPAND_FILL); manual_vbox->add_child(input_list_tree); |