Browse Source

Move "Go to Line..." from "Edit" to "Go To" in text editor

Michael Alexsander Silva Dias 6 years ago
parent
commit
68ce87fbab
2 changed files with 28 additions and 21 deletions
  1. 27 20
      editor/plugins/text_editor.cpp
  2. 1 1
      editor/plugins/text_editor.h

+ 27 - 20
editor/plugins/text_editor.cpp

@@ -221,19 +221,19 @@ void TextEditor::_validate_script() {
 
 
 void TextEditor::_update_bookmark_list() {
 void TextEditor::_update_bookmark_list() {
 
 
-	bookmarks_menu->get_popup()->clear();
+	bookmarks_menu->clear();
 
 
-	bookmarks_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_bookmark"), BOOKMARK_TOGGLE);
-	bookmarks_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/remove_all_bookmarks"), BOOKMARK_REMOVE_ALL);
-	bookmarks_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_next_bookmark"), BOOKMARK_GOTO_NEXT);
-	bookmarks_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_previous_bookmark"), BOOKMARK_GOTO_PREV);
+	bookmarks_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_bookmark"), BOOKMARK_TOGGLE);
+	bookmarks_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/remove_all_bookmarks"), BOOKMARK_REMOVE_ALL);
+	bookmarks_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_next_bookmark"), BOOKMARK_GOTO_NEXT);
+	bookmarks_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_previous_bookmark"), BOOKMARK_GOTO_PREV);
 
 
 	Array bookmark_list = code_editor->get_text_edit()->get_bookmarks_array();
 	Array bookmark_list = code_editor->get_text_edit()->get_bookmarks_array();
 	if (bookmark_list.size() == 0) {
 	if (bookmark_list.size() == 0) {
 		return;
 		return;
 	}
 	}
 
 
-	bookmarks_menu->get_popup()->add_separator();
+	bookmarks_menu->add_separator();
 
 
 	for (int i = 0; i < bookmark_list.size(); i++) {
 	for (int i = 0; i < bookmark_list.size(); i++) {
 		String line = code_editor->get_text_edit()->get_line(bookmark_list[i]).strip_edges();
 		String line = code_editor->get_text_edit()->get_line(bookmark_list[i]).strip_edges();
@@ -242,17 +242,17 @@ void TextEditor::_update_bookmark_list() {
 			line = line.substr(0, 50);
 			line = line.substr(0, 50);
 		}
 		}
 
 
-		bookmarks_menu->get_popup()->add_item(String::num((int)bookmark_list[i] + 1) + " - \"" + line + "\"");
-		bookmarks_menu->get_popup()->set_item_metadata(bookmarks_menu->get_popup()->get_item_count() - 1, bookmark_list[i]);
+		bookmarks_menu->add_item(String::num((int)bookmark_list[i] + 1) + " - \"" + line + "\"");
+		bookmarks_menu->set_item_metadata(bookmarks_menu->get_item_count() - 1, bookmark_list[i]);
 	}
 	}
 }
 }
 
 
 void TextEditor::_bookmark_item_pressed(int p_idx) {
 void TextEditor::_bookmark_item_pressed(int p_idx) {
 
 
 	if (p_idx < 4) { // Any item before the separator.
 	if (p_idx < 4) { // Any item before the separator.
-		_edit_option(bookmarks_menu->get_popup()->get_item_id(p_idx));
+		_edit_option(bookmarks_menu->get_item_id(p_idx));
 	} else {
 	} else {
-		code_editor->goto_line(bookmarks_menu->get_popup()->get_item_metadata(p_idx));
+		code_editor->goto_line(bookmarks_menu->get_item_metadata(p_idx));
 	}
 	}
 }
 }
 
 
@@ -636,11 +636,6 @@ TextEditor::TextEditor() {
 	search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_next"), SEARCH_FIND_NEXT);
 	search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_next"), SEARCH_FIND_NEXT);
 	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/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_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/goto_line"), SEARCH_GOTO_LINE);
-
-	goto_line_dialog = memnew(GotoLineDialog);
-	add_child(goto_line_dialog);
 
 
 	edit_menu = memnew(MenuButton);
 	edit_menu = memnew(MenuButton);
 	edit_menu->set_text(TTR("Edit"));
 	edit_menu->set_text(TTR("Edit"));
@@ -689,13 +684,25 @@ TextEditor::TextEditor() {
 	highlighter_menu->add_radio_check_item(TTR("Standard"));
 	highlighter_menu->add_radio_check_item(TTR("Standard"));
 	highlighter_menu->connect("id_pressed", this, "_change_syntax_highlighter");
 	highlighter_menu->connect("id_pressed", this, "_change_syntax_highlighter");
 
 
-	bookmarks_menu = memnew(MenuButton);
-	edit_hb->add_child(bookmarks_menu);
-	bookmarks_menu->set_text(TTR("Bookmarks"));
-	bookmarks_menu->set_switch_on_hover(true);
+	MenuButton *goto_menu = memnew(MenuButton);
+	edit_hb->add_child(goto_menu);
+	goto_menu->set_text(TTR("Go To"));
+	goto_menu->set_switch_on_hover(true);
+	goto_menu->get_popup()->connect("id_pressed", this, "_edit_option");
+
+	goto_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_line"), SEARCH_GOTO_LINE);
+	goto_menu->get_popup()->add_separator();
+
+	bookmarks_menu = memnew(PopupMenu);
+	bookmarks_menu->set_name(TTR("Bookmarks"));
+	goto_menu->get_popup()->add_child(bookmarks_menu);
+	goto_menu->get_popup()->add_submenu_item(TTR("Bookmarks"), "Bookmarks");
 	_update_bookmark_list();
 	_update_bookmark_list();
 	bookmarks_menu->connect("about_to_show", this, "_update_bookmark_list");
 	bookmarks_menu->connect("about_to_show", this, "_update_bookmark_list");
-	bookmarks_menu->get_popup()->connect("index_pressed", this, "_bookmark_item_pressed");
+	bookmarks_menu->connect("index_pressed", this, "_bookmark_item_pressed");
+
+	goto_line_dialog = memnew(GotoLineDialog);
+	add_child(goto_line_dialog);
 
 
 	code_editor->get_text_edit()->set_drag_forwarding(this);
 	code_editor->get_text_edit()->set_drag_forwarding(this);
 }
 }

+ 1 - 1
editor/plugins/text_editor.h

@@ -46,7 +46,7 @@ private:
 	MenuButton *edit_menu;
 	MenuButton *edit_menu;
 	PopupMenu *highlighter_menu;
 	PopupMenu *highlighter_menu;
 	MenuButton *search_menu;
 	MenuButton *search_menu;
-	MenuButton *bookmarks_menu;
+	PopupMenu *bookmarks_menu;
 	PopupMenu *context_menu;
 	PopupMenu *context_menu;
 
 
 	GotoLineDialog *goto_line_dialog;
 	GotoLineDialog *goto_line_dialog;