@@ -119,7 +119,7 @@ void ProjectExportDialog::_notification(int p_what) {
119119
120120 case NOTIFICATION_THEME_CHANGED : {
121121 _script_encryption_key_visibility_changed (show_script_key->is_pressed ());
122-
122+ options_filter-> set_right_icon ( get_editor_theme_icon ( SNAME ( " Search " )));
123123 duplicate_preset->set_button_icon (presets->get_editor_theme_icon (SNAME (" Duplicate" )));
124124 delete_preset->set_button_icon (presets->get_editor_theme_icon (SNAME (" Remove" )));
125125 patch_add_btn->set_button_icon (get_editor_theme_icon (SNAME (" Add" )));
@@ -145,6 +145,18 @@ void ProjectExportDialog::_notification(int p_what) {
145145 }
146146}
147147
148+ void ProjectExportDialog::shortcut_input (const Ref<InputEvent> &p_event) {
149+ const Ref<InputEventKey> &key = p_event;
150+
151+ if (key.is_valid () && key->is_pressed () && !key->is_echo ()) {
152+ if (ED_IS_SHORTCUT (" editor/open_search" , p_event)) {
153+ options_filter->grab_focus ();
154+ options_filter->select_all ();
155+ options_filter->accept_event ();
156+ }
157+ }
158+ }
159+
148160void ProjectExportDialog::popup_export () {
149161 add_preset->get_popup ()->clear ();
150162 for (int i = 0 ; i < EditorExport::get_singleton ()->get_export_platform_count (); i++) {
@@ -291,6 +303,7 @@ void ProjectExportDialog::_edit_preset(int p_index) {
291303 updating = true ;
292304
293305 presets->select (p_index);
306+ _options_filter_changed (options_filter->get_text ());
294307 duplicate_preset->set_disabled (false );
295308 delete_preset->set_disabled (false );
296309 get_ok_button ()->set_disabled (false );
@@ -534,6 +547,26 @@ void ProjectExportDialog::_advanced_options_pressed() {
534547 _update_presets ();
535548}
536549
550+ void ProjectExportDialog::_options_filter_changed (const String &p_filter) {
551+ const bool search_active = !p_filter.is_empty ();
552+ advanced_options->set_disabled (search_active);
553+ if (search_active) {
554+ advanced_options->set_pressed_no_signal (true );
555+ advanced_options->set_tooltip_text (TTRC (" Advanced settings are always shown when searching." ));
556+ } else {
557+ advanced_options->set_pressed_no_signal (EDITOR_GET (" _export_preset_advanced_mode" ));
558+ advanced_options->set_tooltip_text (" " );
559+ }
560+
561+ const int current_preset = presets->get_current ();
562+ if (current_preset >= 0 && current_preset < EditorExport::get_singleton ()->get_export_preset_count ()) {
563+ Ref<EditorExportPreset> current = EditorExport::get_singleton ()->get_export_preset (current_preset);
564+ if (current.is_valid ()) {
565+ current->set_options_search_active (search_active);
566+ }
567+ }
568+ }
569+
537570void ProjectExportDialog::_runnable_pressed () {
538571 if (updating) {
539572 return ;
@@ -1551,6 +1584,7 @@ ProjectExportDialog::ProjectExportDialog() {
15511584 set_title (TTRC (" Export" ));
15521585 set_flag (FLAG_MAXIMIZE_DISABLED , false );
15531586 set_clamp_to_embedder (true );
1587+ set_process_shortcut_input (true );
15541588
15551589 VBoxContainer *main_vb = memnew (VBoxContainer);
15561590 add_child (main_vb);
@@ -1662,12 +1696,27 @@ ProjectExportDialog::ProjectExportDialog() {
16621696
16631697 // Main preset parameters.
16641698
1699+ VBoxContainer *parameters_vb = memnew (VBoxContainer);
1700+ parameters_vb->set_name (TTRC (" Options" ));
1701+ parameters_vb->set_v_size_flags (Control::SIZE_EXPAND_FILL );
1702+ sections->add_child (parameters_vb);
1703+
1704+ options_filter = memnew (LineEdit);
1705+ options_filter->set_placeholder (TTRC (" Filter Options" ));
1706+ options_filter->set_accessibility_name (TTRC (" Filter Options" ));
1707+ options_filter->set_clear_button_enabled (true );
1708+ options_filter->set_virtual_keyboard_show_on_focus (false );
1709+ options_filter->set_h_size_flags (Control::SIZE_EXPAND_FILL );
1710+ options_filter->connect (SceneStringName (text_changed), callable_mp (this , &ProjectExportDialog::_options_filter_changed));
1711+ parameters_vb->add_child (options_filter);
1712+
16651713 parameters = memnew (EditorInspector);
1666- parameters->set_name (TTRC (" Options" ));
16671714 parameters->set_mark_unsaved (false );
16681715 parameters->set_v_size_flags (Control::SIZE_EXPAND_FILL );
16691716 parameters->set_use_doc_hints (true );
1670- sections->add_child (parameters);
1717+ parameters->register_text_enter (options_filter);
1718+ parameters->set_use_filter (true );
1719+ parameters_vb->add_child (parameters);
16711720 parameters->connect (" property_edited" , callable_mp (this , &ProjectExportDialog::_update_parameters));
16721721 EditorExport::get_singleton ()->connect (" export_presets_updated" , callable_mp (this , &ProjectExportDialog::_force_update_current_preset_parameters));
16731722
0 commit comments