From 683950826bbe053934d4475f236211ff832459c2 Mon Sep 17 00:00:00 2001 From: Michael Alexsander Date: Fri, 20 Feb 2026 17:46:43 -0300 Subject: [PATCH] Fix some UI issues with the `GridMap` editor --- .../gridmap/editor/grid_map_editor_plugin.cpp | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/modules/gridmap/editor/grid_map_editor_plugin.cpp b/modules/gridmap/editor/grid_map_editor_plugin.cpp index 7c30633702..aedb01d2f1 100644 --- a/modules/gridmap/editor/grid_map_editor_plugin.cpp +++ b/modules/gridmap/editor/grid_map_editor_plugin.cpp @@ -961,7 +961,7 @@ void GridMapEditor::_set_display_mode(int p_mode) { if (p_mode == DISPLAY_LIST) { mode_list->set_pressed(true); mode_thumbnail->set_pressed(false); - } else if (p_mode == DISPLAY_THUMBNAIL) { + } else { // DISPLAY_THUMBNAIL mode_list->set_pressed(false); mode_thumbnail->set_pressed(true); } @@ -1299,6 +1299,13 @@ void GridMapEditor::_notification(int p_what) { _update_theme(); } break; + case NOTIFICATION_TRANSLATION_CHANGED: { + 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(), + ED_GET_SHORTCUT("grid_map/next_floor")->get_as_text())); + } break; + case NOTIFICATION_APPLICATION_FOCUS_OUT: { if (input_action == INPUT_PAINT) { // Simulate mouse released event to stop drawing when editor focus exists. @@ -1412,7 +1419,6 @@ GridMapEditor::GridMapEditor() { options = memnew(MenuButton); options->set_theme_type_variation(SceneStringName(FlatButton)); - options->get_popup()->add_separator(); options->get_popup()->add_radio_check_shortcut(ED_GET_SHORTCUT("grid_map/edit_x_axis"), MENU_OPTION_X_AXIS); options->get_popup()->add_radio_check_shortcut(ED_GET_SHORTCUT("grid_map/edit_y_axis"), MENU_OPTION_Y_AXIS); options->get_popup()->add_radio_check_shortcut(ED_GET_SHORTCUT("grid_map/edit_z_axis"), MENU_OPTION_Z_AXIS); @@ -1423,10 +1429,10 @@ GridMapEditor::GridMapEditor() { options->get_popup()->add_check_shortcut(ED_GET_SHORTCUT("grid_map/keep_selected"), MENU_OPTION_PASTE_SELECTS); options->get_popup()->set_item_checked(options->get_popup()->get_item_index(MENU_OPTION_PASTE_SELECTS), true); options->get_popup()->add_separator(); - options->get_popup()->add_item(TTR("Settings..."), MENU_OPTION_GRIDMAP_SETTINGS); + options->get_popup()->add_item(TTRC("Settings..."), MENU_OPTION_GRIDMAP_SETTINGS); settings_dialog = memnew(ConfirmationDialog); - settings_dialog->set_title(TTR("GridMap Settings")); + settings_dialog->set_title(TTRC("GridMap Settings")); add_child(settings_dialog); settings_vbc = memnew(VBoxContainer); settings_vbc->set_custom_minimum_size(Size2(200, 0) * EDSCALE); @@ -1438,7 +1444,7 @@ GridMapEditor::GridMapEditor() { 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); + settings_vbc->add_margin_child(TTRC("Pick Distance:"), settings_pick_distance); options->get_popup()->connect(SceneStringName(id_pressed), callable_mp(this, &GridMapEditor::_menu_option)); @@ -1598,10 +1604,6 @@ GridMapEditor::GridMapEditor() { floor->set_max(32767); floor->set_step(1); floor->set_accessibility_name(TTRC("Change 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(), - ED_GET_SHORTCUT("grid_map/next_floor")->get_as_text())); toolbar->add_child(floor); floor->get_line_edit()->add_theme_constant_override("minimum_character_width", 2); floor->get_line_edit()->set_context_menu_enabled(false); @@ -1612,7 +1614,7 @@ GridMapEditor::GridMapEditor() { search_box = memnew(FilterLineEdit); search_box->add_theme_constant_override("minimum_character_width", 10); search_box->set_h_size_flags(SIZE_EXPAND_FILL); - search_box->set_placeholder(TTR("Filter Meshes")); + search_box->set_placeholder(TTRC("Filter Meshes")); search_box->set_accessibility_name(TTRC("Filter Meshes")); toolbar->add_child(search_box); search_box->connect(SceneStringName(text_changed), callable_mp(this, &GridMapEditor::_text_changed)); @@ -1625,11 +1627,15 @@ GridMapEditor::GridMapEditor() { zoom_widget->connect("zoom_changed", callable_mp(this, &GridMapEditor::_icon_size_changed)); zoom_widget->set_shortcut_context(this); + Ref view_mode; + view_mode.instantiate(); + 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); + mode_thumbnail->set_button_group(view_mode); toolbar->add_child(mode_thumbnail); mode_thumbnail->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_set_display_mode).bind(DISPLAY_THUMBNAIL)); @@ -1637,7 +1643,7 @@ GridMapEditor::GridMapEditor() { 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); + mode_list->set_button_group(view_mode); toolbar->add_child(mode_list); mode_list->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_set_display_mode).bind(DISPLAY_LIST)); @@ -1654,7 +1660,7 @@ GridMapEditor::GridMapEditor() { info_message = memnew(Label); info_message->set_focus_mode(FOCUS_ACCESSIBILITY); - info_message->set_text(TTR("Give a MeshLibrary resource to this GridMap to use its meshes.")); + info_message->set_text(TTRC("Give a MeshLibrary resource to this GridMap to use its meshes.")); info_message->set_vertical_alignment(VERTICAL_ALIGNMENT_CENTER); info_message->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); info_message->set_autowrap_mode(TextServer::AUTOWRAP_WORD_SMART);