mirror of
https://github.com/godotengine/godot.git
synced 2025-03-13 23:41:08 +08:00
Make 'Line/TextEdit's context menus hide their editing options when in readonly mode
Fixes #28243.
This commit is contained in:
parent
f5cc29f9f3
commit
f7a45eb0de
@ -1327,7 +1327,27 @@ void LineEdit::select_all() {
|
||||
|
||||
void LineEdit::set_editable(bool p_editable) {
|
||||
|
||||
if (editable == p_editable)
|
||||
return;
|
||||
|
||||
editable = p_editable;
|
||||
|
||||
// Reorganize context menu.
|
||||
menu->clear();
|
||||
if (editable)
|
||||
menu->add_item(RTR("Cut"), MENU_CUT, KEY_MASK_CMD | KEY_X);
|
||||
menu->add_item(RTR("Copy"), MENU_COPY, KEY_MASK_CMD | KEY_C);
|
||||
if (editable)
|
||||
menu->add_item(RTR("Paste"), MENU_PASTE, KEY_MASK_CMD | KEY_V);
|
||||
menu->add_separator();
|
||||
menu->add_item(RTR("Select All"), MENU_SELECT_ALL, KEY_MASK_CMD | KEY_A);
|
||||
if (editable) {
|
||||
menu->add_item(RTR("Clear"), MENU_CLEAR);
|
||||
menu->add_separator();
|
||||
menu->add_item(RTR("Undo"), MENU_UNDO, KEY_MASK_CMD | KEY_Z);
|
||||
menu->add_item(RTR("Redo"), MENU_REDO, KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_Z);
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
@ -1623,7 +1643,6 @@ LineEdit::LineEdit() {
|
||||
|
||||
deselect();
|
||||
set_focus_mode(FOCUS_ALL);
|
||||
editable = true;
|
||||
set_default_cursor_shape(CURSOR_IBEAM);
|
||||
set_mouse_filter(MOUSE_FILTER_STOP);
|
||||
|
||||
@ -1638,15 +1657,7 @@ LineEdit::LineEdit() {
|
||||
context_menu_enabled = true;
|
||||
menu = memnew(PopupMenu);
|
||||
add_child(menu);
|
||||
menu->add_item(RTR("Cut"), MENU_CUT, KEY_MASK_CMD | KEY_X);
|
||||
menu->add_item(RTR("Copy"), MENU_COPY, KEY_MASK_CMD | KEY_C);
|
||||
menu->add_item(RTR("Paste"), MENU_PASTE, KEY_MASK_CMD | KEY_V);
|
||||
menu->add_separator();
|
||||
menu->add_item(RTR("Select All"), MENU_SELECT_ALL, KEY_MASK_CMD | KEY_A);
|
||||
menu->add_item(RTR("Clear"), MENU_CLEAR);
|
||||
menu->add_separator();
|
||||
menu->add_item(RTR("Undo"), MENU_UNDO, KEY_MASK_CMD | KEY_Z);
|
||||
menu->add_item(RTR("Redo"), MENU_REDO, KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_Z);
|
||||
set_editable(true);
|
||||
menu->connect("id_pressed", this, "menu_option");
|
||||
expand_to_text_length = false;
|
||||
}
|
||||
|
@ -4344,7 +4344,27 @@ void TextEdit::clear() {
|
||||
|
||||
void TextEdit::set_readonly(bool p_readonly) {
|
||||
|
||||
if (readonly == p_readonly)
|
||||
return;
|
||||
|
||||
readonly = p_readonly;
|
||||
|
||||
// Reorganize context menu.
|
||||
menu->clear();
|
||||
if (!readonly)
|
||||
menu->add_item(RTR("Cut"), MENU_CUT, KEY_MASK_CMD | KEY_X);
|
||||
menu->add_item(RTR("Copy"), MENU_COPY, KEY_MASK_CMD | KEY_C);
|
||||
if (!readonly)
|
||||
menu->add_item(RTR("Paste"), MENU_PASTE, KEY_MASK_CMD | KEY_V);
|
||||
menu->add_separator();
|
||||
menu->add_item(RTR("Select All"), MENU_SELECT_ALL, KEY_MASK_CMD | KEY_A);
|
||||
if (!readonly) {
|
||||
menu->add_item(RTR("Clear"), MENU_CLEAR);
|
||||
menu->add_separator();
|
||||
menu->add_item(RTR("Undo"), MENU_UNDO, KEY_MASK_CMD | KEY_Z);
|
||||
menu->add_item(RTR("Redo"), MENU_REDO, KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_Z);
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
@ -6355,7 +6375,6 @@ void TextEdit::_bind_methods() {
|
||||
|
||||
TextEdit::TextEdit() {
|
||||
|
||||
readonly = false;
|
||||
setting_row = false;
|
||||
draw_tabs = false;
|
||||
override_selected_font_color = false;
|
||||
@ -6470,15 +6489,7 @@ TextEdit::TextEdit() {
|
||||
context_menu_enabled = true;
|
||||
menu = memnew(PopupMenu);
|
||||
add_child(menu);
|
||||
menu->add_item(RTR("Cut"), MENU_CUT, KEY_MASK_CMD | KEY_X);
|
||||
menu->add_item(RTR("Copy"), MENU_COPY, KEY_MASK_CMD | KEY_C);
|
||||
menu->add_item(RTR("Paste"), MENU_PASTE, KEY_MASK_CMD | KEY_V);
|
||||
menu->add_separator();
|
||||
menu->add_item(RTR("Select All"), MENU_SELECT_ALL, KEY_MASK_CMD | KEY_A);
|
||||
menu->add_item(RTR("Clear"), MENU_CLEAR);
|
||||
menu->add_separator();
|
||||
menu->add_item(RTR("Undo"), MENU_UNDO, KEY_MASK_CMD | KEY_Z);
|
||||
menu->add_item(RTR("Redo"), MENU_REDO, KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_Z);
|
||||
set_readonly(false);
|
||||
menu->connect("id_pressed", this, "menu_option");
|
||||
first_draw = true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user