From 21345defe9c0c0da84bed9ae65067904a664f574 Mon Sep 17 00:00:00 2001 From: kobewi Date: Mon, 10 Jun 2024 17:47:59 +0200 Subject: [PATCH] Restore "Confirm Insert Track" editor setting --- doc/classes/EditorSettings.xml | 4 ++++ editor/animation_track_editor.cpp | 16 ++++++++++++---- editor/editor_settings.cpp | 1 + 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/doc/classes/EditorSettings.xml b/doc/classes/EditorSettings.xml index 90b8d07592a..e2ea02810a6 100644 --- a/doc/classes/EditorSettings.xml +++ b/doc/classes/EditorSettings.xml @@ -396,6 +396,10 @@ If [code]true[/code], automatically updates animation tracks' target paths when renaming or reparenting nodes in the Scene tree dock. + + If [code]true[/code], display a confirmation dialog when adding a new track to an animation by pressing the "key" icon next to a property. Holding Shift will bypass the dialog. + If [code]false[/code], the behavior is reversed, i.e. the dialog only appears when Shift is held. + If [code]true[/code], create a Bezier track instead of a standard track when pressing the "key" icon next to a property. Bezier tracks provide more control over animation curves, but are more difficult to adjust quickly. diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index 58dd659e86a..5c3e0f44f91 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -3851,16 +3851,24 @@ void AnimationTrackEditor::commit_insert_queue() { } // Skip the confirmation dialog if the user holds Shift while clicking the key icon. - if (!Input::get_singleton()->is_key_pressed(Key::SHIFT) && num_tracks > 0) { - String shortcut_hint = TTR("Hold Shift when clicking the key icon to skip this dialog."); + // If `confirm_insert_track` editor setting is disabled, the behavior is reversed. + bool confirm_insert = EDITOR_GET("editors/animation/confirm_insert_track"); + if ((Input::get_singleton()->is_key_pressed(Key::SHIFT) != confirm_insert) && num_tracks > 0) { + String dialog_text; + // Potentially a new key, does not exist. if (num_tracks == 1) { // TRANSLATORS: %s will be replaced by a phrase describing the target of track. - insert_confirm_text->set_text(vformat(TTR("Create new track for %s and insert key?") + "\n\n" + shortcut_hint, last_track_query)); + dialog_text = vformat(TTR("Create new track for %s and insert key?"), last_track_query); } else { - insert_confirm_text->set_text(vformat(TTR("Create %d new tracks and insert keys?") + "\n\n" + shortcut_hint, num_tracks)); + dialog_text = vformat(TTR("Create %d new tracks and insert keys?"), num_tracks); } + if (confirm_insert) { + dialog_text += +"\n\n" + TTR("Hold Shift when clicking the key icon to skip this dialog."); + } + insert_confirm_text->set_text(dialog_text); + insert_confirm_bezier->set_visible(all_bezier); insert_confirm_reset->set_visible(reset_allowed); diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 782d64621f2..a435326e447 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -781,6 +781,7 @@ void EditorSettings::_load_defaults(Ref p_extra_config) { // Animation _initial_set("editors/animation/autorename_animation_tracks", true); + _initial_set("editors/animation/confirm_insert_track", true); _initial_set("editors/animation/default_create_bezier_tracks", false); _initial_set("editors/animation/default_create_reset_tracks", true); _initial_set("editors/animation/onion_layers_past_color", Color(1, 0, 0));