Browse Source

Add shortcut Shift + F3 to search pervious in the built-in docs

When using the built-in docs, Godot would not support the shortcut "Shift + F3"
to search for the previous occurrence of the search entry text, thus causing an
inconsistent behaviour when using shortcuts in the "ScriptEditor" compared to
using them in the "ScriptTextEditor".

The previous parameter of the function "EditorHelp::_search()" in the class
"editor_help" seems to be unused, thus replaced with a bool representing to
search for previous search entry text or not. By adding the shortcut to
Godot's "ScriptEditor", this commit now improves Godot's consistensy when
using shortcuts.

Fixes #31147.

Co-Authored-By: Oscar Ferm <[email protected]>
Marqus 5 years ago
parent
commit
c84e73bf92

+ 7 - 4
editor/editor_help.cpp

@@ -72,9 +72,12 @@ void EditorHelp::_unhandled_key_input(const Ref<InputEvent> &p_ev) {
 	}
 	}
 }
 }
 
 
-void EditorHelp::_search(const String &) {
+void EditorHelp::_search(bool p_search_previous) {
 
 
-	find_bar->search_next();
+	if (p_search_previous)
+		find_bar->search_prev();
+	else
+		find_bar->search_next();
 }
 }
 
 
 void EditorHelp::_class_list_select(const String &p_select) {
 void EditorHelp::_class_list_select(const String &p_select) {
@@ -1502,8 +1505,8 @@ String EditorHelp::get_class() {
 	return edited_class;
 	return edited_class;
 }
 }
 
 
-void EditorHelp::search_again() {
-	_search(prev_search);
+void EditorHelp::search_again(bool p_search_previous) {
+	_search(p_search_previous);
 }
 }
 
 
 int EditorHelp::get_scroll() const {
 int EditorHelp::get_scroll() const {

+ 2 - 2
editor/editor_help.h

@@ -158,7 +158,7 @@ class EditorHelp : public VBoxContainer {
 	void _update_doc();
 	void _update_doc();
 
 
 	void _request_help(const String &p_string);
 	void _request_help(const String &p_string);
-	void _search(const String &p_str);
+	void _search(bool p_search_previous = false);
 
 
 	void _unhandled_key_input(const Ref<InputEvent> &p_ev);
 	void _unhandled_key_input(const Ref<InputEvent> &p_ev);
 
 
@@ -179,7 +179,7 @@ public:
 	void scroll_to_section(int p_section_index);
 	void scroll_to_section(int p_section_index);
 
 
 	void popup_search();
 	void popup_search();
-	void search_again();
+	void search_again(bool p_search_previous = false);
 
 
 	String get_class();
 	String get_class();
 
 

+ 4 - 0
editor/plugins/script_editor_plugin.cpp

@@ -1325,6 +1325,9 @@ void ScriptEditor::_menu_option(int p_option) {
 				case HELP_SEARCH_FIND_NEXT: {
 				case HELP_SEARCH_FIND_NEXT: {
 					help->search_again();
 					help->search_again();
 				} break;
 				} break;
+				case HELP_SEARCH_FIND_PREVIOUS: {
+					help->search_again(true);
+				} break;
 				case FILE_CLOSE: {
 				case FILE_CLOSE: {
 					_close_current_tab();
 					_close_current_tab();
 				} break;
 				} break;
@@ -2827,6 +2830,7 @@ void ScriptEditor::_update_selected_editor_menu() {
 
 
 		script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find", TTR("Find..."), KEY_MASK_CMD | KEY_F), HELP_SEARCH_FIND);
 		script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find", TTR("Find..."), KEY_MASK_CMD | KEY_F), HELP_SEARCH_FIND);
 		script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_next", TTR("Find Next"), KEY_F3), HELP_SEARCH_FIND_NEXT);
 		script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_next", TTR("Find Next"), KEY_F3), HELP_SEARCH_FIND_NEXT);
+		script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_previous", TTR("Find Previous"), KEY_MASK_SHIFT | KEY_F3), HELP_SEARCH_FIND_PREVIOUS);
 		script_search_menu->get_popup()->add_separator();
 		script_search_menu->get_popup()->add_separator();
 		script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_in_files", TTR("Find in Files"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F), SEARCH_IN_FILES);
 		script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_in_files", TTR("Find in Files"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F), SEARCH_IN_FILES);
 		script_search_menu->show();
 		script_search_menu->show();

+ 1 - 0
editor/plugins/script_editor_plugin.h

@@ -168,6 +168,7 @@ class ScriptEditor : public PanelContainer {
 		REQUEST_DOCS,
 		REQUEST_DOCS,
 		HELP_SEARCH_FIND,
 		HELP_SEARCH_FIND,
 		HELP_SEARCH_FIND_NEXT,
 		HELP_SEARCH_FIND_NEXT,
+		HELP_SEARCH_FIND_PREVIOUS,
 		WINDOW_MOVE_UP,
 		WINDOW_MOVE_UP,
 		WINDOW_MOVE_DOWN,
 		WINDOW_MOVE_DOWN,
 		WINDOW_NEXT,
 		WINDOW_NEXT,