Skip to content

Commit 1bf9066

Browse files
committed
Improve Bezier Default Mode button in Animation dock
1 parent 0870525 commit 1bf9066

File tree

1 file changed

+31
-14
lines changed

1 file changed

+31
-14
lines changed

editor/animation/animation_track_editor.cpp

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2931,21 +2931,28 @@ String AnimationTrackEdit::get_tooltip(const Point2 &p_pos) const {
29312931
text += TTR("In-Handle:") + " " + String(ih) + "\n";
29322932
Vector2 oh = animation->bezier_track_get_key_out_handle(track, key_idx);
29332933
text += TTR("Out-Handle:") + " " + String(oh) + "\n";
2934+
2935+
String handle_mode;
29342936
int hm = animation->bezier_track_get_key_handle_mode(track, key_idx);
29352937
switch (hm) {
29362938
case Animation::HANDLE_MODE_FREE: {
2937-
text += TTR("Handle mode: Free\n");
2939+
handle_mode = TTR("Free", "Bezier Handle Mode");
29382940
} break;
29392941
case Animation::HANDLE_MODE_LINEAR: {
2940-
text += TTR("Handle mode: Linear\n");
2942+
handle_mode = TTR("Linear", "Bezier Handle Mode");
29412943
} break;
29422944
case Animation::HANDLE_MODE_BALANCED: {
2943-
text += TTR("Handle mode: Balanced\n");
2945+
handle_mode = TTR("Balanced", "Bezier Handle Mode");
29442946
} break;
29452947
case Animation::HANDLE_MODE_MIRRORED: {
2946-
text += TTR("Handle mode: Mirrored\n");
2948+
handle_mode = TTR("Mirrored", "Bezier Handle Mode");
2949+
} break;
2950+
default: {
2951+
// Unknown modes may occur when editing a file from a newer version of Godot.
2952+
handle_mode = itos(hm);
29472953
} break;
29482954
}
2955+
text += vformat(TTR("Handle mode: %s\n"), handle_mode);
29492956
} break;
29502957
case Animation::TYPE_AUDIO: {
29512958
String stream_name = "null";
@@ -5377,6 +5384,11 @@ void AnimationTrackEditor::_notification(int p_what) {
53775384
track_vbox->add_theme_constant_override("separation", track_separation);
53785385

53795386
function_name_toggler->add_theme_color_override("icon_pressed_color", get_theme_color("icon_disabled_color", EditorStringName(Editor)));
5387+
5388+
bezier_key_mode->set_item_icon(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_FREE), get_editor_theme_icon(SNAME("BezierHandlesFree")));
5389+
bezier_key_mode->set_item_icon(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_LINEAR), get_editor_theme_icon(SNAME("BezierHandlesLinear")));
5390+
bezier_key_mode->set_item_icon(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_BALANCED), get_editor_theme_icon(SNAME("BezierHandlesBalanced")));
5391+
bezier_key_mode->set_item_icon(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_MIRRORED), get_editor_theme_icon(SNAME("BezierHandlesMirror")));
53805392
} break;
53815393

53825394
case NOTIFICATION_READY: {
@@ -5391,6 +5403,14 @@ void AnimationTrackEditor::_notification(int p_what) {
53915403
case NOTIFICATION_VISIBILITY_CHANGED: {
53925404
update_keying();
53935405
} break;
5406+
5407+
case NOTIFICATION_TRANSLATION_CHANGED: {
5408+
bezier_key_mode->set_item_text(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_FREE), TTR("Free", "Bezier Handle Mode"));
5409+
bezier_key_mode->set_item_text(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_LINEAR), TTR("Linear", "Bezier Handle Mode"));
5410+
bezier_key_mode->set_item_text(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_BALANCED), TTR("Balanced", "Bezier Handle Mode"));
5411+
bezier_key_mode->set_item_text(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_MIRRORED), TTR("Mirrored", "Bezier Handle Mode"));
5412+
bezier_key_mode->set_tooltip_text(TTR("Bezier Default Mode") + "\n" + TTR("Set the default handle mode of new bezier keys."));
5413+
} break;
53945414
}
53955415
}
53965416

@@ -7927,17 +7947,14 @@ AnimationTrackEditor::AnimationTrackEditor() {
79277947
spacer->set_h_size_flags(SIZE_EXPAND_FILL);
79287948
bottom_hf->add_child(spacer);
79297949

7930-
Label *bezier_key_default_label = memnew(Label);
7931-
bezier_key_default_label->set_text(TTR("Bezier Default Mode:"));
7932-
bottom_hf->add_child(bezier_key_default_label);
7933-
79347950
bezier_key_mode = memnew(OptionButton);
7935-
bezier_key_mode->add_item(TTR("Free"));
7936-
bezier_key_mode->add_item(TTR("Linear"));
7937-
bezier_key_mode->add_item(TTR("Balanced"));
7938-
bezier_key_mode->add_item(TTR("Mirrored"));
7939-
bezier_key_mode->set_tooltip_text(TTR("Set the default behavior of new bezier keys."));
7940-
bezier_key_mode->select(2);
7951+
bezier_key_mode->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED);
7952+
bezier_key_mode->add_item(String(), Animation::HANDLE_MODE_FREE);
7953+
bezier_key_mode->add_item(String(), Animation::HANDLE_MODE_LINEAR);
7954+
bezier_key_mode->add_item(String(), Animation::HANDLE_MODE_BALANCED);
7955+
bezier_key_mode->add_item(String(), Animation::HANDLE_MODE_MIRRORED);
7956+
bezier_key_mode->select(Animation::HANDLE_MODE_BALANCED);
7957+
bezier_key_mode->set_accessibility_name(TTRC("Bezier Default Mode"));
79417958

79427959
bottom_hf->add_child(bezier_key_mode);
79437960
bottom_hf->add_child(memnew(VSeparator));

0 commit comments

Comments
 (0)