Initial editor accessibility.

This commit is contained in:
Pāvels Nadtočajevs
2025-03-21 09:55:22 +02:00
parent 4310cb82b8
commit 302fa831cc
137 changed files with 1544 additions and 93 deletions

View File

@@ -515,6 +515,7 @@ bool EditorFileSystemImportFormatSupportQueryBlend::query() {
blender_path = memnew(LineEdit);
blender_path->set_h_size_flags(Control::SIZE_EXPAND_FILL);
blender_path->set_accessibility_name(TTRC("Path"));
hb->add_child(blender_path);
blender_path_browse = memnew(Button);

View File

@@ -1365,6 +1365,7 @@ GridMapEditor::GridMapEditor() {
settings_pick_distance->set_min(500.0f);
settings_pick_distance->set_step(1.0f);
settings_pick_distance->set_value(EDITOR_GET("editors/grid_map/pick_distance"));
settings_pick_distance->set_accessibility_name(TTRC("Pick Distance"));
settings_vbc->add_margin_child(TTR("Pick Distance:"), settings_pick_distance);
options->get_popup()->connect(SceneStringName(id_pressed), callable_mp(this, &GridMapEditor::_menu_option));
@@ -1382,6 +1383,7 @@ GridMapEditor::GridMapEditor() {
transform_mode_button->set_toggle_mode(true);
transform_mode_button->set_button_group(mode_buttons_group);
transform_mode_button->set_shortcut(ED_SHORTCUT("grid_map/transform_tool", TTRC("Transform"), Key::T, true));
transform_mode_button->set_accessibility_name(TTRC("Transform"));
transform_mode_button->connect(SceneStringName(toggled),
callable_mp(this, &GridMapEditor::_on_tool_mode_changed).unbind(1));
mode_buttons->add_child(transform_mode_button);
@@ -1394,6 +1396,7 @@ GridMapEditor::GridMapEditor() {
select_mode_button->set_toggle_mode(true);
select_mode_button->set_button_group(mode_buttons_group);
select_mode_button->set_shortcut(ED_SHORTCUT("grid_map/selection_tool", TTRC("Selection"), Key::Q, true));
select_mode_button->set_accessibility_name(TTRC("Select"));
select_mode_button->connect(SceneStringName(toggled),
callable_mp(this, &GridMapEditor::_on_tool_mode_changed).unbind(1));
mode_buttons->add_child(select_mode_button);
@@ -1404,6 +1407,7 @@ GridMapEditor::GridMapEditor() {
erase_mode_button->set_toggle_mode(true);
erase_mode_button->set_button_group(mode_buttons_group);
erase_mode_button->set_shortcut(ED_SHORTCUT("grid_map/erase_tool", TTRC("Erase"), Key::W, true));
erase_mode_button->set_accessibility_name(TTRC("Erase"));
mode_buttons->add_child(erase_mode_button);
erase_mode_button->connect(SceneStringName(toggled),
callable_mp(this, &GridMapEditor::_on_tool_mode_changed).unbind(1));
@@ -1414,6 +1418,7 @@ GridMapEditor::GridMapEditor() {
paint_mode_button->set_toggle_mode(true);
paint_mode_button->set_button_group(mode_buttons_group);
paint_mode_button->set_shortcut(ED_SHORTCUT("grid_map/paint_tool", TTRC("Paint"), Key::E, true));
paint_mode_button->set_accessibility_name(TTRC("Paint"));
paint_mode_button->connect(SceneStringName(toggled),
callable_mp(this, &GridMapEditor::_on_tool_mode_changed).unbind(1));
mode_buttons->add_child(paint_mode_button);
@@ -1424,6 +1429,7 @@ GridMapEditor::GridMapEditor() {
pick_mode_button->set_toggle_mode(true);
pick_mode_button->set_button_group(mode_buttons_group);
pick_mode_button->set_shortcut(ED_SHORTCUT("grid_map/pick_tool", TTRC("Pick"), Key::R, true));
pick_mode_button->set_accessibility_name(TTRC("Pick"));
pick_mode_button->connect(SceneStringName(toggled),
callable_mp(this, &GridMapEditor::_on_tool_mode_changed).unbind(1));
mode_buttons->add_child(pick_mode_button);
@@ -1438,6 +1444,7 @@ GridMapEditor::GridMapEditor() {
fill_action_button = memnew(Button);
fill_action_button->set_theme_type_variation(SceneStringName(FlatButton));
fill_action_button->set_shortcut(ED_SHORTCUT("grid_map/fill_tool", TTRC("Fill"), Key::Z, true));
fill_action_button->set_accessibility_name(TTRC("Fill"));
fill_action_button->connect(SceneStringName(pressed),
callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_SELECTION_FILL));
action_buttons->add_child(fill_action_button);
@@ -1446,6 +1453,7 @@ GridMapEditor::GridMapEditor() {
move_action_button = memnew(Button);
move_action_button->set_theme_type_variation(SceneStringName(FlatButton));
move_action_button->set_shortcut(ED_SHORTCUT("grid_map/move_tool", TTRC("Move"), Key::X, true));
fill_action_button->set_accessibility_name(TTRC("Move"));
move_action_button->connect(SceneStringName(pressed),
callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_SELECTION_CUT));
action_buttons->add_child(move_action_button);
@@ -1454,6 +1462,7 @@ GridMapEditor::GridMapEditor() {
duplicate_action_button = memnew(Button);
duplicate_action_button->set_theme_type_variation(SceneStringName(FlatButton));
duplicate_action_button->set_shortcut(ED_SHORTCUT("grid_map/duplicate_tool", TTRC("Duplicate"), Key::C, true));
duplicate_action_button->set_accessibility_name(TTRC("Duplicate"));
duplicate_action_button->connect(SceneStringName(pressed),
callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_SELECTION_DUPLICATE));
action_buttons->add_child(duplicate_action_button);
@@ -1462,6 +1471,7 @@ GridMapEditor::GridMapEditor() {
delete_action_button = memnew(Button);
delete_action_button->set_theme_type_variation(SceneStringName(FlatButton));
delete_action_button->set_shortcut(ED_SHORTCUT("grid_map/delete_tool", TTRC("Delete"), Key::V, true));
delete_action_button->set_accessibility_name(TTRC("Delete"));
delete_action_button->connect(SceneStringName(pressed),
callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_SELECTION_CLEAR));
action_buttons->add_child(delete_action_button);
@@ -1476,6 +1486,7 @@ GridMapEditor::GridMapEditor() {
rotate_x_button = memnew(Button);
rotate_x_button->set_theme_type_variation(SceneStringName(FlatButton));
rotate_x_button->set_shortcut(ED_SHORTCUT("grid_map/cursor_rotate_x", TTRC("Cursor Rotate X"), Key::A, true));
rotate_x_button->set_accessibility_name(TTRC("Rotate X"));
rotate_x_button->connect(SceneStringName(pressed),
callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_CURSOR_ROTATE_X));
rotation_buttons->add_child(rotate_x_button);
@@ -1484,6 +1495,7 @@ GridMapEditor::GridMapEditor() {
rotate_y_button = memnew(Button);
rotate_y_button->set_theme_type_variation(SceneStringName(FlatButton));
rotate_y_button->set_shortcut(ED_SHORTCUT("grid_map/cursor_rotate_y", TTRC("Cursor Rotate Y"), Key::S, true));
rotate_y_button->set_accessibility_name(TTRC("Rotate Y"));
rotate_y_button->connect(SceneStringName(pressed),
callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_CURSOR_ROTATE_Y));
rotation_buttons->add_child(rotate_y_button);
@@ -1507,6 +1519,7 @@ GridMapEditor::GridMapEditor() {
floor->set_min(-32767);
floor->set_max(32767);
floor->set_step(1);
floor->set_accessibility_name(TTRC("Grid Floor"));
floor->set_tooltip_text(
vformat(TTR("Change Grid Floor:\nPrevious Plane (%s)\nNext Plane (%s)"),
ED_GET_SHORTCUT("grid_map/previous_floor")->get_as_text(),
@@ -1521,6 +1534,7 @@ GridMapEditor::GridMapEditor() {
search_box = memnew(LineEdit);
search_box->add_theme_constant_override("minimum_character_width", 10);
search_box->set_placeholder(TTR("Filter Meshes"));
search_box->set_accessibility_name(TTRC("Filter Meshes"));
search_box->set_clear_button_enabled(true);
toolbar->add_child(search_box);
search_box->connect(SceneStringName(text_changed), callable_mp(this, &GridMapEditor::_text_changed));
@@ -1537,6 +1551,7 @@ GridMapEditor::GridMapEditor() {
mode_thumbnail = memnew(Button);
mode_thumbnail->set_theme_type_variation(SceneStringName(FlatButton));
mode_thumbnail->set_toggle_mode(true);
mode_thumbnail->set_accessibility_name(TTRC("View as Thumbnails"));
mode_thumbnail->set_pressed(true);
toolbar->add_child(mode_thumbnail);
mode_thumbnail->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_set_display_mode).bind(DISPLAY_THUMBNAIL));
@@ -1544,6 +1559,7 @@ GridMapEditor::GridMapEditor() {
mode_list = memnew(Button);
mode_list->set_theme_type_variation(SceneStringName(FlatButton));
mode_list->set_toggle_mode(true);
mode_list->set_accessibility_name(TTRC("View as List"));
mode_list->set_pressed(false);
toolbar->add_child(mode_list);
mode_list->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_set_display_mode).bind(DISPLAY_LIST));

View File

@@ -341,6 +341,7 @@ AudioStreamInteractiveTransitionEditor::AudioStreamInteractiveTransitionEditor()
transition_enabled = memnew(CheckBox);
transition_enabled->set_text(TTR("Enabled"));
transition_enabled->set_accessibility_name(TTRC("Use Transition"));
edit_vb->add_margin_child(TTR("Use Transition:"), transition_enabled);
transition_enabled->connect(SceneStringName(pressed), callable_mp(this, &AudioStreamInteractiveTransitionEditor::_edited));
@@ -350,6 +351,7 @@ AudioStreamInteractiveTransitionEditor::AudioStreamInteractiveTransitionEditor()
transition_from->add_item(TTR("Next Beat"), AudioStreamInteractive::TRANSITION_FROM_TIME_NEXT_BEAT);
transition_from->add_item(TTR("Next Bar"), AudioStreamInteractive::TRANSITION_FROM_TIME_NEXT_BAR);
transition_from->add_item(TTR("Clip End"), AudioStreamInteractive::TRANSITION_FROM_TIME_END);
transition_from->set_accessibility_name(TTRC("Transition From"));
transition_from->connect(SceneStringName(item_selected), callable_mp(this, &AudioStreamInteractiveTransitionEditor::_edited).unbind(1));
@@ -358,25 +360,30 @@ AudioStreamInteractiveTransitionEditor::AudioStreamInteractiveTransitionEditor()
transition_to->add_item(TTR("Same Position"), AudioStreamInteractive::TRANSITION_TO_TIME_SAME_POSITION);
transition_to->add_item(TTR("Clip Start"), AudioStreamInteractive::TRANSITION_TO_TIME_START);
transition_to->add_item(TTR("Prev Position"), AudioStreamInteractive::TRANSITION_TO_TIME_PREVIOUS_POSITION);
transition_to->set_accessibility_name(TTRC("Transition To"));
transition_to->connect(SceneStringName(item_selected), callable_mp(this, &AudioStreamInteractiveTransitionEditor::_edited).unbind(1));
fade_mode = memnew(OptionButton);
edit_vb->add_margin_child(TTR("Fade Mode:"), fade_mode);
fade_mode->connect(SceneStringName(item_selected), callable_mp(this, &AudioStreamInteractiveTransitionEditor::_edited).unbind(1));
fade_mode->set_accessibility_name(TTRC("Fade Mode"));
fade_beats = memnew(SpinBox);
edit_vb->add_margin_child(TTR("Fade Beats:"), fade_beats);
fade_beats->set_max(16);
fade_beats->set_step(0.1);
fade_beats->connect(SceneStringName(value_changed), callable_mp(this, &AudioStreamInteractiveTransitionEditor::_edited).unbind(1));
fade_beats->set_accessibility_name(TTRC("Fade Beats"));
filler_clip = memnew(OptionButton);
edit_vb->add_margin_child(TTR("Filler Clip:"), filler_clip);
filler_clip->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED);
filler_clip->connect(SceneStringName(item_selected), callable_mp(this, &AudioStreamInteractiveTransitionEditor::_edited).unbind(1));
filler_clip->set_accessibility_name(TTRC("Filler Clip"));
hold_previous = memnew(CheckBox);
hold_previous->set_text(TTR("Enabled"));
hold_previous->set_accessibility_name(TTRC("Hold Previous"));
hold_previous->connect(SceneStringName(pressed), callable_mp(this, &AudioStreamInteractiveTransitionEditor::_edited));
edit_vb->add_margin_child(TTR("Hold Previous:"), hold_previous);

View File

@@ -339,6 +339,7 @@ EditorNetworkProfiler::EditorNetworkProfiler() {
incoming_bandwidth_text->set_editable(false);
incoming_bandwidth_text->set_custom_minimum_size(Size2(120, 0) * EDSCALE);
incoming_bandwidth_text->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_RIGHT);
incoming_bandwidth_text->set_accessibility_name(TTRC("Incoming Bandwidth"));
hb->add_child(incoming_bandwidth_text);
Control *down_up_spacer = memnew(Control);
@@ -354,6 +355,7 @@ EditorNetworkProfiler::EditorNetworkProfiler() {
outgoing_bandwidth_text->set_editable(false);
outgoing_bandwidth_text->set_custom_minimum_size(Size2(120, 0) * EDSCALE);
outgoing_bandwidth_text->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_RIGHT);
outgoing_bandwidth_text->set_accessibility_name(TTRC("Outgoing Bandwidth"));
hb->add_child(outgoing_bandwidth_text);
// Set initial texts in the incoming/outgoing bandwidth labels

View File

@@ -234,6 +234,7 @@ ReplicationEditor::ReplicationEditor() {
np_line_edit = memnew(LineEdit);
np_line_edit->set_placeholder(":property");
np_line_edit->set_accessibility_name(TTRC("Path"));
np_line_edit->set_h_size_flags(SIZE_EXPAND_FILL);
np_line_edit->connect(SceneStringName(text_submitted), callable_mp(this, &ReplicationEditor::_np_text_submitted));
hb->add_child(np_line_edit);
@@ -251,6 +252,7 @@ ReplicationEditor::ReplicationEditor() {
pin->set_theme_type_variation(SceneStringName(FlatButton));
pin->set_toggle_mode(true);
pin->set_tooltip_text(TTR("Pin replication editor"));
pin->set_accessibility_name(TTRC("Pin"));
hb->add_child(pin);
tree = memnew(Tree);

View File

@@ -137,6 +137,7 @@ OpenXRActionEditor::OpenXRActionEditor(Ref<OpenXRAction> p_action) {
action_name->set_tooltip_text(TTR("Internal name of the action. Some XR runtimes don't allow spaces or special characters."));
action_name->set_custom_minimum_size(Size2(150.0 * EDSCALE, 0.0));
action_name->connect(SceneStringName(text_changed), callable_mp(this, &OpenXRActionEditor::_on_action_name_changed));
action_name->set_accessibility_name(TTRC("Action Name"));
add_child(action_name);
action_localized_name = memnew(LineEdit);
@@ -145,6 +146,7 @@ OpenXRActionEditor::OpenXRActionEditor(Ref<OpenXRAction> p_action) {
action_localized_name->set_custom_minimum_size(Size2(150.0 * EDSCALE, 0.0));
action_localized_name->set_h_size_flags(Control::SIZE_EXPAND_FILL);
action_localized_name->connect(SceneStringName(text_changed), callable_mp(this, &OpenXRActionEditor::_on_action_localized_name_changed));
action_localized_name->set_accessibility_name(TTRC("Action Localized Name"));
add_child(action_localized_name);
action_type_button = memnew(OptionButton);
@@ -154,6 +156,7 @@ OpenXRActionEditor::OpenXRActionEditor(Ref<OpenXRAction> p_action) {
action_type_button->add_item("Vector2", OpenXRAction::OPENXR_ACTION_VECTOR2);
action_type_button->add_item("Pose", OpenXRAction::OPENXR_ACTION_POSE);
action_type_button->add_item("Haptic", OpenXRAction::OPENXR_ACTION_HAPTIC);
action_type_button->set_accessibility_name(TTRC("Action Type"));
action_type_button->select(int(action->get_action_type()));
action_type_button->set_custom_minimum_size(Size2(100.0 * EDSCALE, 0.0));
action_type_button->connect(SceneStringName(item_selected), callable_mp(this, &OpenXRActionEditor::_on_item_selected));
@@ -163,6 +166,7 @@ OpenXRActionEditor::OpenXRActionEditor(Ref<OpenXRAction> p_action) {
rem_action = memnew(Button);
rem_action->set_tooltip_text(TTR("Remove action"));
rem_action->set_accessibility_name(TTRC("Remove action"));
rem_action->connect(SceneStringName(pressed), callable_mp(this, &OpenXRActionEditor::_on_remove_action));
rem_action->set_flat(true);
add_child(rem_action);

View File

@@ -231,6 +231,7 @@ OpenXRActionSetEditor::OpenXRActionSetEditor(Ref<OpenXRActionMap> p_action_map,
fold_btn = memnew(Button);
fold_btn->set_v_size_flags(Control::SIZE_SHRINK_BEGIN);
fold_btn->connect(SceneStringName(pressed), callable_mp(this, &OpenXRActionSetEditor::_on_toggle_expand));
fold_btn->set_accessibility_name(TTRC("Fold"));
fold_btn->set_flat(true);
panel_hb->add_child(fold_btn);
@@ -247,6 +248,7 @@ OpenXRActionSetEditor::OpenXRActionSetEditor(Ref<OpenXRActionMap> p_action_map,
action_set_name->set_tooltip_text(TTR("Internal name of the action. Some XR runtimes don't allow spaces or special characters."));
action_set_name->set_custom_minimum_size(Size2(150.0 * EDSCALE, 0.0));
action_set_name->connect(SceneStringName(text_changed), callable_mp(this, &OpenXRActionSetEditor::_on_action_set_name_changed));
action_set_name->set_accessibility_name(TTRC("Action Set Name"));
action_set_hb->add_child(action_set_name);
action_set_localized_name = memnew(LineEdit);
@@ -255,6 +257,7 @@ OpenXRActionSetEditor::OpenXRActionSetEditor(Ref<OpenXRActionMap> p_action_map,
action_set_localized_name->set_custom_minimum_size(Size2(150.0 * EDSCALE, 0.0));
action_set_localized_name->set_h_size_flags(Control::SIZE_EXPAND_FILL);
action_set_localized_name->connect(SceneStringName(text_changed), callable_mp(this, &OpenXRActionSetEditor::_on_action_set_localized_name_changed));
action_set_localized_name->set_accessibility_name(TTRC("Action Set Localized Name"));
action_set_hb->add_child(action_set_localized_name);
action_set_priority = memnew(TextEdit);
@@ -262,17 +265,20 @@ OpenXRActionSetEditor::OpenXRActionSetEditor(Ref<OpenXRActionMap> p_action_map,
action_set_priority->set_tooltip_text(TTR("Priority of the action set. If multiple action sets bind to the same input, the action set with the highest priority will be updated."));
action_set_priority->set_custom_minimum_size(Size2(50.0 * EDSCALE, 0.0));
action_set_priority->connect(SceneStringName(text_changed), callable_mp(this, &OpenXRActionSetEditor::_on_action_set_priority_changed));
action_set_priority->set_accessibility_name(TTRC("Action Set Priority"));
action_set_hb->add_child(action_set_priority);
add_action = memnew(Button);
add_action->set_tooltip_text(TTR("Add action."));
add_action->connect(SceneStringName(pressed), callable_mp(this, &OpenXRActionSetEditor::_on_add_action));
add_action->set_accessibility_name(TTRC("Add"));
add_action->set_flat(true);
action_set_hb->add_child(add_action);
rem_action_set = memnew(Button);
rem_action_set->set_tooltip_text(TTR("Remove action set."));
rem_action_set->connect(SceneStringName(pressed), callable_mp(this, &OpenXRActionSetEditor::_on_remove_action_set));
rem_action_set->set_accessibility_name(TTRC("Remove"));
rem_action_set->set_flat(true);
action_set_hb->add_child(rem_action_set);

View File

@@ -263,6 +263,7 @@ OpenXRBindingModifierEditor::OpenXRBindingModifierEditor() {
rem_binding_modifier_btn = memnew(Button);
rem_binding_modifier_btn->set_tooltip_text(TTR("Remove this binding modifier."));
rem_binding_modifier_btn->connect(SceneStringName(pressed), callable_mp(this, &OpenXRBindingModifierEditor::_on_remove_binding_modifier));
rem_binding_modifier_btn->set_accessibility_name(TTRC("Remove"));
rem_binding_modifier_btn->set_flat(true);
header_hb->add_child(rem_binding_modifier_btn);

View File

@@ -181,6 +181,7 @@ OpenXRInteractionProfileEditorBase::OpenXRInteractionProfileEditorBase() {
binding_modifiers_btn = memnew(Button);
binding_modifiers_btn->set_tooltip_text(TTR("Edit binding modifiers"));
binding_modifiers_btn->connect("pressed", callable_mp(this, &OpenXRInteractionProfileEditorBase::_on_open_binding_modifiers));
binding_modifiers_btn->set_accessibility_name(TTRC("Edit"));
// TODO show visual difference if there are binding modifiers for this interaction profile
toolbar_vb->add_child(binding_modifiers_btn);
}
@@ -308,6 +309,7 @@ void OpenXRInteractionProfileEditor::_add_io_path(VBoxContainer *p_container, co
action_binding_modifiers_btn->set_flat(true);
action_binding_modifiers_btn->set_button_icon(get_theme_icon(SNAME("Modifiers"), EditorStringName(EditorIcons)));
action_binding_modifiers_btn->connect(SceneStringName(pressed), callable_mp((Window *)action_binding_modifiers_dialog, &Window::popup_centered).bind(Size2i(500, 400)));
action_binding_modifiers_btn->set_accessibility_name(TTRC("Modifiers"));
// TODO change style of button if there are binding modifiers
action_hb->add_child(action_binding_modifiers_btn);
@@ -315,6 +317,7 @@ void OpenXRInteractionProfileEditor::_add_io_path(VBoxContainer *p_container, co
action_rem->set_flat(true);
action_rem->set_button_icon(get_theme_icon(SNAME("Remove"), EditorStringName(EditorIcons)));
action_rem->connect(SceneStringName(pressed), callable_mp((OpenXRInteractionProfileEditor *)this, &OpenXRInteractionProfileEditor::_on_remove_pressed).bind(action->get_name_with_set(), String(p_io_path->openxr_path)));
action_rem->set_accessibility_name(TTRC("Remove"));
action_hb->add_child(action_rem);
}
}