Skip to content

Commit b9a92ca

Browse files
committed
Merge pull request #112231 from timothyqiu/bezier-default-mode
Improve Bezier Default Mode button in Animation dock
2 parents fa6ca10 + 1bf9066 commit b9a92ca

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
@@ -2932,21 +2932,28 @@ String AnimationTrackEdit::get_tooltip(const Point2 &p_pos) const {
29322932
text += TTR("In-Handle:") + " " + String(ih) + "\n";
29332933
Vector2 oh = animation->bezier_track_get_key_out_handle(track, key_idx);
29342934
text += TTR("Out-Handle:") + " " + String(oh) + "\n";
2935+
2936+
String handle_mode;
29352937
int hm = animation->bezier_track_get_key_handle_mode(track, key_idx);
29362938
switch (hm) {
29372939
case Animation::HANDLE_MODE_FREE: {
2938-
text += TTR("Handle mode: Free\n");
2940+
handle_mode = TTR("Free", "Bezier Handle Mode");
29392941
} break;
29402942
case Animation::HANDLE_MODE_LINEAR: {
2941-
text += TTR("Handle mode: Linear\n");
2943+
handle_mode = TTR("Linear", "Bezier Handle Mode");
29422944
} break;
29432945
case Animation::HANDLE_MODE_BALANCED: {
2944-
text += TTR("Handle mode: Balanced\n");
2946+
handle_mode = TTR("Balanced", "Bezier Handle Mode");
29452947
} break;
29462948
case Animation::HANDLE_MODE_MIRRORED: {
2947-
text += TTR("Handle mode: Mirrored\n");
2949+
handle_mode = TTR("Mirrored", "Bezier Handle Mode");
2950+
} break;
2951+
default: {
2952+
// Unknown modes may occur when editing a file from a newer version of Godot.
2953+
handle_mode = itos(hm);
29482954
} break;
29492955
}
2956+
text += vformat(TTR("Handle mode: %s\n"), handle_mode);
29502957
} break;
29512958
case Animation::TYPE_AUDIO: {
29522959
String stream_name = "null";
@@ -5470,6 +5477,11 @@ void AnimationTrackEditor::_notification(int p_what) {
54705477
track_vbox->add_theme_constant_override("separation", track_separation);
54715478

54725479
function_name_toggler->add_theme_color_override("icon_pressed_color", get_theme_color("icon_disabled_color", EditorStringName(Editor)));
5480+
5481+
bezier_key_mode->set_item_icon(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_FREE), get_editor_theme_icon(SNAME("BezierHandlesFree")));
5482+
bezier_key_mode->set_item_icon(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_LINEAR), get_editor_theme_icon(SNAME("BezierHandlesLinear")));
5483+
bezier_key_mode->set_item_icon(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_BALANCED), get_editor_theme_icon(SNAME("BezierHandlesBalanced")));
5484+
bezier_key_mode->set_item_icon(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_MIRRORED), get_editor_theme_icon(SNAME("BezierHandlesMirror")));
54735485
} break;
54745486

54755487
case NOTIFICATION_READY: {
@@ -5484,6 +5496,14 @@ void AnimationTrackEditor::_notification(int p_what) {
54845496
case NOTIFICATION_VISIBILITY_CHANGED: {
54855497
update_keying();
54865498
} break;
5499+
5500+
case NOTIFICATION_TRANSLATION_CHANGED: {
5501+
bezier_key_mode->set_item_text(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_FREE), TTR("Free", "Bezier Handle Mode"));
5502+
bezier_key_mode->set_item_text(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_LINEAR), TTR("Linear", "Bezier Handle Mode"));
5503+
bezier_key_mode->set_item_text(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_BALANCED), TTR("Balanced", "Bezier Handle Mode"));
5504+
bezier_key_mode->set_item_text(bezier_key_mode->get_item_index(Animation::HANDLE_MODE_MIRRORED), TTR("Mirrored", "Bezier Handle Mode"));
5505+
bezier_key_mode->set_tooltip_text(TTR("Bezier Default Mode") + "\n" + TTR("Set the default handle mode of new bezier keys."));
5506+
} break;
54875507
}
54885508
}
54895509

@@ -8037,17 +8057,14 @@ AnimationTrackEditor::AnimationTrackEditor() {
80378057
spacer->set_h_size_flags(SIZE_EXPAND_FILL);
80388058
bottom_hf->add_child(spacer);
80398059

8040-
Label *bezier_key_default_label = memnew(Label);
8041-
bezier_key_default_label->set_text(TTR("Bezier Default Mode:"));
8042-
bottom_hf->add_child(bezier_key_default_label);
8043-
80448060
bezier_key_mode = memnew(OptionButton);
8045-
bezier_key_mode->add_item(TTR("Free"));
8046-
bezier_key_mode->add_item(TTR("Linear"));
8047-
bezier_key_mode->add_item(TTR("Balanced"));
8048-
bezier_key_mode->add_item(TTR("Mirrored"));
8049-
bezier_key_mode->set_tooltip_text(TTR("Set the default behavior of new bezier keys."));
8050-
bezier_key_mode->select(2);
8061+
bezier_key_mode->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED);
8062+
bezier_key_mode->add_item(String(), Animation::HANDLE_MODE_FREE);
8063+
bezier_key_mode->add_item(String(), Animation::HANDLE_MODE_LINEAR);
8064+
bezier_key_mode->add_item(String(), Animation::HANDLE_MODE_BALANCED);
8065+
bezier_key_mode->add_item(String(), Animation::HANDLE_MODE_MIRRORED);
8066+
bezier_key_mode->select(Animation::HANDLE_MODE_BALANCED);
8067+
bezier_key_mode->set_accessibility_name(TTRC("Bezier Default Mode"));
80518068

80528069
bottom_hf->add_child(bezier_key_mode);
80538070
bottom_hf->add_child(memnew(VSeparator));

0 commit comments

Comments
 (0)