diff options
Diffstat (limited to 'editor/filesystem_dock.cpp')
| -rw-r--r-- | editor/filesystem_dock.cpp | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index cb89e5c7d0..3dc854d6bd 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -815,7 +815,8 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) { if (searched_string.length() > 0) { // Display the search results. - _search(EditorFileSystem::get_singleton()->get_filesystem(), &file_list, 128); + // Limit the number of results displayed to avoid an infinite loop. + _search(EditorFileSystem::get_singleton()->get_filesystem(), &file_list, 10000); } else { if (display_mode == DISPLAY_MODE_TREE_ONLY || always_show_folders) { // Display folders in the list. @@ -1985,20 +1986,6 @@ void FileSystemDock::_resource_created() { editor->save_resource_as(RES(r), fpath); } -void FileSystemDock::_focus_current_search_box() { - LineEdit *current_search_box = nullptr; - if (display_mode == DISPLAY_MODE_TREE_ONLY) { - current_search_box = tree_search_box; - } else if (display_mode == DISPLAY_MODE_SPLIT) { - current_search_box = file_list_search_box; - } - - if (current_search_box) { - current_search_box->grab_focus(); - current_search_box->select_all(); - } -} - void FileSystemDock::_search_changed(const String &p_text, const Control *p_from) { if (searched_string.length() == 0) { // Register the uncollapsed paths before they change. @@ -2040,7 +2027,17 @@ void FileSystemDock::fix_dependencies(const String &p_for_file) { } void FileSystemDock::focus_on_filter() { - file_list_search_box->grab_focus(); + LineEdit *current_search_box = nullptr; + if (display_mode == DISPLAY_MODE_TREE_ONLY) { + current_search_box = tree_search_box; + } else if (display_mode == DISPLAY_MODE_SPLIT) { + current_search_box = file_list_search_box; + } + + if (current_search_box) { + current_search_box->grab_focus(); + current_search_box->select_all(); + } } void FileSystemDock::set_file_list_display_mode(FileListDisplayMode p_mode) { @@ -2590,7 +2587,7 @@ void FileSystemDock::_tree_gui_input(Ref<InputEvent> p_event) { } else if (ED_IS_SHORTCUT("filesystem_dock/rename", p_event)) { _tree_rmb_option(FILE_RENAME); } else if (ED_IS_SHORTCUT("editor/open_search", p_event)) { - _focus_current_search_box(); + focus_on_filter(); } else { return; } @@ -2611,7 +2608,7 @@ void FileSystemDock::_file_list_gui_input(Ref<InputEvent> p_event) { } else if (ED_IS_SHORTCUT("filesystem_dock/rename", p_event)) { _file_list_rmb_option(FILE_RENAME); } else if (ED_IS_SHORTCUT("editor/open_search", p_event)) { - _focus_current_search_box(); + focus_on_filter(); } else { return; } |
