diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index dca54eb0283..42516a659cf 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -3146,6 +3146,10 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { project_settings_editor->popup_project_settings(); } break; + case PROJECT_FIND_IN_FILES: { + ScriptEditor::get_singleton()->open_find_in_files_dialog(""); + } break; + case PROJECT_INSTALL_ANDROID_SOURCE: { if (p_confirmed) { if (export_template_manager->is_android_template_installed(android_export_preset)) { @@ -7858,6 +7862,9 @@ EditorNode::EditorNode() { project_menu->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/project_settings", TTRC("Project Settings..."), Key::NONE, TTRC("Project Settings")), PROJECT_OPEN_SETTINGS); project_menu->connect(SceneStringName(id_pressed), callable_mp(this, &EditorNode::_menu_option)); + ED_SHORTCUT_AND_COMMAND("editor/find_in_files", TTRC("Find in Files..."), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::F); + project_menu->add_shortcut(ED_GET_SHORTCUT("editor/find_in_files"), PROJECT_FIND_IN_FILES); + project_menu->add_separator(); project_menu->add_item(TTR("Version Control"), PROJECT_VERSION_CONTROL); diff --git a/editor/editor_node.h b/editor/editor_node.h index eeb232c033c..41c6d8f0c14 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -160,6 +160,7 @@ public: // Project menu. PROJECT_OPEN_SETTINGS, + PROJECT_FIND_IN_FILES, PROJECT_VERSION_CONTROL, PROJECT_EXPORT, PROJECT_PACK_AS_ZIP, diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index 3fed1944917..b89dfcce081 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -1361,7 +1361,7 @@ void ScriptEditor::_menu_option(int p_option) { save_all_scripts(); } break; case SEARCH_IN_FILES: { - _on_find_in_files_requested(""); + open_find_in_files_dialog(""); } break; case REPLACE_IN_FILES: { _on_replace_in_files_requested(""); @@ -2620,7 +2620,7 @@ bool ScriptEditor::edit(const Ref &p_resource, int p_line, int p_col, se->connect("go_to_help", callable_mp(this, &ScriptEditor::_help_class_goto)); se->connect("request_save_history", callable_mp(this, &ScriptEditor::_save_history)); se->connect("request_save_previous_state", callable_mp(this, &ScriptEditor::_save_previous_state)); - se->connect("search_in_files_requested", callable_mp(this, &ScriptEditor::_on_find_in_files_requested)); + se->connect("search_in_files_requested", callable_mp(this, &ScriptEditor::open_find_in_files_dialog)); se->connect("replace_in_files_requested", callable_mp(this, &ScriptEditor::_on_replace_in_files_requested)); se->connect("go_to_method", callable_mp(this, &ScriptEditor::script_goto_method)); @@ -2839,6 +2839,12 @@ void ScriptEditor::_reload_scripts(bool p_refresh_only) { _update_script_names(); } +void ScriptEditor::open_find_in_files_dialog(const String &text) { + find_in_files_dialog->set_find_in_files_mode(FindInFilesDialog::SEARCH_MODE); + find_in_files_dialog->set_search_text(text); + find_in_files_dialog->popup_centered(); +} + void ScriptEditor::open_script_create_dialog(const String &p_base_name, const String &p_base_path) { _menu_option(FILE_MENU_NEW); script_create_dialog->config(p_base_name, p_base_path); @@ -3733,12 +3739,12 @@ void ScriptEditor::_update_selected_editor_menu() { script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_next", TTRC("Find Next"), Key::F3), HELP_SEARCH_FIND_NEXT); script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_previous", TTRC("Find Previous"), KeyModifierMask::SHIFT | Key::F3), HELP_SEARCH_FIND_PREVIOUS); script_search_menu->get_popup()->add_separator(); - script_search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_editor/find_in_files"), SEARCH_IN_FILES); + script_search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("editor/find_in_files"), SEARCH_IN_FILES); script_search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_editor/replace_in_files"), REPLACE_IN_FILES); script_search_menu->show(); } else { if (tab_container->get_tab_count() == 0) { - script_search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_editor/find_in_files"), SEARCH_IN_FILES); + script_search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("editor/find_in_files"), SEARCH_IN_FILES); script_search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_editor/replace_in_files"), REPLACE_IN_FILES); script_search_menu->show(); } else { @@ -3906,12 +3912,6 @@ void ScriptEditor::_script_changed() { NodeDock::get_singleton()->update_lists(); } -void ScriptEditor::_on_find_in_files_requested(const String &text) { - find_in_files_dialog->set_find_in_files_mode(FindInFilesDialog::SEARCH_MODE); - find_in_files_dialog->set_search_text(text); - find_in_files_dialog->popup_centered(); -} - void ScriptEditor::_on_replace_in_files_requested(const String &text) { find_in_files_dialog->set_find_in_files_mode(FindInFilesDialog::REPLACE_MODE); find_in_files_dialog->set_search_text(text); @@ -4668,7 +4668,6 @@ void ScriptEditorPlugin::edited_scene_changed() { ScriptEditorPlugin::ScriptEditorPlugin() { ED_SHORTCUT("script_editor/reopen_closed_script", TTRC("Reopen Closed Script"), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::T); ED_SHORTCUT("script_editor/clear_recent", TTRC("Clear Recent Scripts")); - ED_SHORTCUT("script_editor/find_in_files", TTRC("Find in Files"), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::F); ED_SHORTCUT("script_editor/replace_in_files", TTRC("Replace in Files"), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::R); ED_SHORTCUT("script_text_editor/convert_to_uppercase", TTRC("Uppercase"), KeyModifierMask::SHIFT | Key::F4); diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h index 8d34759d056..9f806309cbe 100644 --- a/editor/plugins/script_editor_plugin.h +++ b/editor/plugins/script_editor_plugin.h @@ -529,7 +529,6 @@ class ScriptEditor : public PanelContainer { Ref _load_text_file(const String &p_path, Error *r_error) const; Error _save_text_file(Ref p_text_file, const String &p_path); - void _on_find_in_files_requested(const String &text); void _on_replace_in_files_requested(const String &text); void _on_find_in_files_result_selected(const String &fpath, int line_number, int begin, int end); void _start_find_in_files(bool with_replace); @@ -557,6 +556,7 @@ public: bool is_files_panel_toggled(); void apply_scripts() const; void reload_scripts(bool p_refresh_only = false); + void open_find_in_files_dialog(const String &text); void open_script_create_dialog(const String &p_base_name, const String &p_base_path); void open_text_file_create_dialog(const String &p_base_path, const String &p_base_name = ""); Ref open_file(const String &p_file); diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index a5e6d43779b..7842ead4f57 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -2699,7 +2699,7 @@ void ScriptTextEditor::_enable_code_editor() { search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_previous"), SEARCH_FIND_PREV); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/replace"), SEARCH_REPLACE); search_menu->get_popup()->add_separator(); - search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_in_files"), SEARCH_IN_FILES); + search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("editor/find_in_files"), SEARCH_IN_FILES); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/replace_in_files"), REPLACE_IN_FILES); search_menu->get_popup()->add_separator(); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/contextual_help"), HELP_CONTEXTUAL); @@ -2894,7 +2894,6 @@ void ScriptTextEditor::register_editor() { ED_SHORTCUT_AND_COMMAND("script_text_editor/replace", TTRC("Replace..."), KeyModifierMask::CTRL | Key::R); ED_SHORTCUT_OVERRIDE("script_text_editor/replace", "macos", KeyModifierMask::ALT | KeyModifierMask::META | Key::F); - ED_SHORTCUT("script_text_editor/find_in_files", TTRC("Find in Files..."), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::F); ED_SHORTCUT("script_text_editor/replace_in_files", TTRC("Replace in Files..."), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::R); ED_SHORTCUT("script_text_editor/contextual_help", TTRC("Contextual Help"), KeyModifierMask::ALT | Key::F1); diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp index c00c7e744c7..f26a1e46d18 100644 --- a/editor/plugins/text_editor.cpp +++ b/editor/plugins/text_editor.cpp @@ -694,7 +694,7 @@ TextEditor::TextEditor() { search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_previous"), SEARCH_FIND_PREV); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/replace"), SEARCH_REPLACE); search_menu->get_popup()->add_separator(); - search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_in_files"), SEARCH_IN_FILES); + search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("editor/find_in_files"), SEARCH_IN_FILES); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/replace_in_files"), REPLACE_IN_FILES); MenuButton *goto_menu = memnew(MenuButton);