Fix TextEditor not checking Standard highlighter in non-English UI

When using non-English UI, there were `Index p_idx = -1 is out of bounds (items.size() = 2).`
errors on on startup if any text file is open in the script editor. And clicking the Standard
highlighter option does not check that menu item.

This is caused by `TextEditor` searching for that menu item with unlocalized text. As already
did in `ScriptTextEditor`, this PR stores and searches for menu item with `TTR`ed text.
This commit is contained in:
Haoyu Qiu 2021-08-18 10:42:12 +08:00
parent 622ecf4f06
commit a66339a549
1 changed files with 2 additions and 2 deletions

View File

@ -44,7 +44,7 @@ void TextEditor::set_syntax_highlighter(SyntaxHighlighter *p_highlighter) {
if (p_highlighter != nullptr) { if (p_highlighter != nullptr) {
highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(p_highlighter->get_name()), true); highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(p_highlighter->get_name()), true);
} else { } else {
highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text("Standard"), true); highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(TTR("Standard")), true);
} }
// little work around. GDScript highlighter goes through text_edit for colours, // little work around. GDScript highlighter goes through text_edit for colours,
@ -657,7 +657,7 @@ TextEditor::TextEditor() {
convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/capitalize", TTR("Capitalize")), EDIT_CAPITALIZE); convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/capitalize", TTR("Capitalize")), EDIT_CAPITALIZE);
convert_case->connect("id_pressed", this, "_edit_option"); convert_case->connect("id_pressed", this, "_edit_option");
highlighters["Standard"] = NULL; highlighters[TTR("Standard")] = NULL;
highlighter_menu = memnew(PopupMenu); highlighter_menu = memnew(PopupMenu);
highlighter_menu->set_name("highlighter_menu"); highlighter_menu->set_name("highlighter_menu");
edit_menu->get_popup()->add_child(highlighter_menu); edit_menu->get_popup()->add_child(highlighter_menu);