From 89a40d317dd40337db08fbbd3925a4535f623812 Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Wed, 23 Mar 2022 07:37:34 -0400 Subject: Disable local space for blender transforms. Having local_space enabled when starting a transform changed the behavior of VIEW space transforms. Now we disable local_space when starting a blender transform (there was already logic to restore the setting after the transform ends). This also hides the gizmo while performing a blender transform, otherwise the user will see it snap back and forth between the local and global alignment. I think the transform looks cleaner with the gizmo hidden anyways. Fixes #59392. (cherry picked from commit 806425621cfa3daba3ba9f6b020726490a3152a4) --- editor/plugins/node_3d_editor_plugin.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'editor/plugins') diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 7feb0146bc..7c1f54dc61 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -1110,6 +1110,7 @@ void Node3DEditorViewport::_compute_edit(const Point2 &p_point) { _edit.click_ray = _get_ray(p_point); _edit.click_ray_pos = _get_ray_pos(p_point); _edit.plane = TRANSFORM_VIEW; + spatial_editor->set_local_coords_enabled(false); spatial_editor->update_transform_gizmo(); _edit.center = spatial_editor->get_gizmo_transform().origin; @@ -3693,6 +3694,7 @@ void Node3DEditorViewport::update_transform_gizmo_view() { return; } + bool show_gizmo = spatial_editor->is_gizmo_visible() && !_edit.instant; for (int i = 0; i < 3; i++) { Transform3D axis_angle; if (xform.basis.get_column(i).normalized().dot(xform.basis.get_column((i + 1) % 3).normalized()) < 1.0) { @@ -3701,15 +3703,15 @@ void Node3DEditorViewport::update_transform_gizmo_view() { axis_angle.basis.scale(scale); axis_angle.origin = xform.origin; RenderingServer::get_singleton()->instance_set_transform(move_gizmo_instance[i], axis_angle); - RenderingServer::get_singleton()->instance_set_visible(move_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE)); + RenderingServer::get_singleton()->instance_set_visible(move_gizmo_instance[i], show_gizmo && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE)); RenderingServer::get_singleton()->instance_set_transform(move_plane_gizmo_instance[i], axis_angle); - RenderingServer::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE)); + RenderingServer::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], show_gizmo && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE)); RenderingServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[i], axis_angle); - RenderingServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_ROTATE)); + RenderingServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], show_gizmo && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_ROTATE)); RenderingServer::get_singleton()->instance_set_transform(scale_gizmo_instance[i], axis_angle); - RenderingServer::get_singleton()->instance_set_visible(scale_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE)); + RenderingServer::get_singleton()->instance_set_visible(scale_gizmo_instance[i], show_gizmo && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE)); RenderingServer::get_singleton()->instance_set_transform(scale_plane_gizmo_instance[i], axis_angle); - RenderingServer::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE)); + RenderingServer::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], show_gizmo && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE)); RenderingServer::get_singleton()->instance_set_transform(axis_gizmo_instance[i], xform); } @@ -4477,6 +4479,7 @@ void Node3DEditorViewport::begin_transform(TransformMode p_mode, bool instant) { _compute_edit(_edit.mouse_pos); _edit.instant = instant; _edit.snap = spatial_editor->is_snap_enabled(); + update_transform_gizmo_view(); } } -- cgit v1.2.3 From 47dc4bc3072208b973d2a0d26c8f9502e09c7f40 Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Wed, 8 Mar 2023 06:14:34 -0500 Subject: Don't unset local_coords on starting transform. This fixes a bug introduced by 806425621cfa3daba3ba9f6b020726490a3152a4, where dragging the gizmo no longer respected local transforms. I'm not sure why I called set_local_coords_enabled(false) in _compute_edit. Removing this line seems to fix gizmo-dragging local transforms, without breaking anything else. I also noticed that confirming a transform leaves the gizmo axis lines on the screen. This is fixed by calling update_transform_gizmo after clearing the edit mode/instant flags, so update_transform_gizmo knows not to render any axes. (cherry picked from commit d3d1223b970140b6a37d0c23e3b234c878be510a) --- editor/plugins/node_3d_editor_plugin.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'editor/plugins') diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 7c1f54dc61..333771ceb4 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -1110,7 +1110,6 @@ void Node3DEditorViewport::_compute_edit(const Point2 &p_point) { _edit.click_ray = _get_ray(p_point); _edit.click_ray_pos = _get_ray_pos(p_point); _edit.plane = TRANSFORM_VIEW; - spatial_editor->set_local_coords_enabled(false); spatial_editor->update_transform_gizmo(); _edit.center = spatial_editor->get_gizmo_transform().origin; @@ -4861,9 +4860,9 @@ void Node3DEditorViewport::update_transform(Point2 p_mousepos, bool p_shift) { void Node3DEditorViewport::finish_transform() { spatial_editor->set_local_coords_enabled(_edit.original_local); - spatial_editor->update_transform_gizmo(); _edit.mode = TRANSFORM_NONE; _edit.instant = false; + spatial_editor->update_transform_gizmo(); surface->queue_redraw(); } -- cgit v1.2.3 From 38ad9c52b231ae9cb862197b5eed7eda797dadd8 Mon Sep 17 00:00:00 2001 From: Haoyu Qiu Date: Thu, 9 Mar 2023 14:37:41 +0800 Subject: Add missing TTRs in tiles editor and array inspector (cherry picked from commit bef7f14885ab6ee9cdf4116f67dfa12239746677) --- editor/plugins/tiles/tile_data_editors.cpp | 4 ++-- editor/plugins/tiles/tile_set_atlas_source_editor.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'editor/plugins') diff --git a/editor/plugins/tiles/tile_data_editors.cpp b/editor/plugins/tiles/tile_data_editors.cpp index 73d2da63b7..8327fa5762 100644 --- a/editor/plugins/tiles/tile_data_editors.cpp +++ b/editor/plugins/tiles/tile_data_editors.cpp @@ -1233,7 +1233,7 @@ TileDataDefaultEditor::TileDataDefaultEditor() { picker_button = memnew(Button); picker_button->set_flat(true); picker_button->set_toggle_mode(true); - picker_button->set_shortcut(ED_SHORTCUT("tiles_editor/picker", "Picker", Key::P)); + picker_button->set_shortcut(ED_SHORTCUT("tiles_editor/picker", TTR("Picker"), Key::P)); toolbar->add_child(picker_button); } @@ -2720,7 +2720,7 @@ TileDataTerrainsEditor::TileDataTerrainsEditor() { picker_button = memnew(Button); picker_button->set_flat(true); picker_button->set_toggle_mode(true); - picker_button->set_shortcut(ED_SHORTCUT("tiles_editor/picker", "Picker", Key::P)); + picker_button->set_shortcut(ED_SHORTCUT("tiles_editor/picker", TTR("Picker"), Key::P)); toolbar->add_child(picker_button); // Setup diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp index 235e34d9b5..42c296e825 100644 --- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp +++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp @@ -2561,7 +2561,7 @@ TileSetAtlasSourceEditor::TileSetAtlasSourceEditor() { tools_settings_erase_button = memnew(Button); tools_settings_erase_button->set_flat(true); tools_settings_erase_button->set_toggle_mode(true); - tools_settings_erase_button->set_shortcut(ED_SHORTCUT("tiles_editor/eraser", "Eraser", Key::E)); + tools_settings_erase_button->set_shortcut(ED_SHORTCUT("tiles_editor/eraser", TTR("Eraser"), Key::E)); tools_settings_erase_button->set_shortcut_context(this); tool_settings->add_child(tools_settings_erase_button); -- cgit v1.2.3 From 5824967f2f5d2835f7216dcb5d2d4139f4b8608b Mon Sep 17 00:00:00 2001 From: yedpodtrzitko Date: Fri, 10 Mar 2023 18:10:05 +0800 Subject: clear filter input in Project Settings when opening Layers (cherry picked from commit e13bcf5b845fba1dbb2bbb02c8f14e7d3733a188) --- editor/plugins/asset_library_editor_plugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'editor/plugins') diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp index 2639765283..151d46b673 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -1398,7 +1398,7 @@ void EditorAssetLibrary::_asset_open() { } void EditorAssetLibrary::_manage_plugins() { - ProjectSettingsEditor::get_singleton()->popup_project_settings(); + ProjectSettingsEditor::get_singleton()->popup_project_settings(true); ProjectSettingsEditor::get_singleton()->set_plugins_page(); } -- cgit v1.2.3 From 38c0ad7c6c6b70f1ecac0a7962a60c3105b3d8e8 Mon Sep 17 00:00:00 2001 From: the-sink Date: Mon, 27 Feb 2023 09:03:56 -0800 Subject: Redraw 2d viewport when guides are cleared (cherry picked from commit 0c051f41b16af834ad8b1fb46682aeef16fc88d6) --- editor/plugins/canvas_item_editor_plugin.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'editor/plugins') diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index 75a444c877..fd44e9221e 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -4556,6 +4556,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { undo_redo->add_do_method(root, "remove_meta", "_edit_vertical_guides_"); undo_redo->add_undo_method(root, "set_meta", "_edit_vertical_guides_", vguides); } + undo_redo->add_do_method(viewport, "queue_redraw"); undo_redo->add_undo_method(viewport, "queue_redraw"); undo_redo->commit_action(); } -- cgit v1.2.3