Skip to content

Commit

Permalink
Merge pull request #71321 from TokageItLab/stop-edit
Browse files Browse the repository at this point in the history
Implement toggling pause / stop button to AnimationPlayerEditor
  • Loading branch information
akien-mga committed Jan 13, 2023
2 parents f0117a2 + e7d4361 commit 61c48f6
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 15 deletions.
40 changes: 25 additions & 15 deletions editor/plugins/animation_player_editor_plugin.cpp
Expand Up @@ -94,6 +94,7 @@ void AnimationPlayerEditor::_notification(int p_what) {
// Need the last frame after it stopped.
frame->set_value(player->get_current_animation_position());
track_editor->set_anim_pos(player->get_current_animation_position());
stop->set_icon(stop_icon);
}

last_active = player->is_playing();
Expand All @@ -119,8 +120,15 @@ void AnimationPlayerEditor::_notification(int p_what) {
case NOTIFICATION_TRANSLATION_CHANGED:
case NOTIFICATION_LAYOUT_DIRECTION_CHANGED:
case NOTIFICATION_THEME_CHANGED: {
autoplay->set_icon(get_theme_icon(SNAME("AutoPlay"), SNAME("EditorIcons")));
stop_icon = get_theme_icon(SNAME("Stop"), SNAME("EditorIcons"));
pause_icon = get_theme_icon(SNAME("Pause"), SNAME("EditorIcons"));
if (player && player->is_playing()) {
stop->set_icon(pause_icon);
} else {
stop->set_icon(stop_icon);
}

autoplay->set_icon(get_theme_icon(SNAME("AutoPlay"), SNAME("EditorIcons")));
play->set_icon(get_theme_icon(SNAME("PlayStart"), SNAME("EditorIcons")));
play_from->set_icon(get_theme_icon(SNAME("Play"), SNAME("EditorIcons")));
play_bw->set_icon(get_theme_icon(SNAME("PlayStartBackwards"), SNAME("EditorIcons")));
Expand All @@ -137,7 +145,6 @@ void AnimationPlayerEditor::_notification(int p_what) {
autoplay_reset_img->blit_rect(reset_img, Rect2i(Point2i(), icon_size), Point2i(icon_size.x, 0));
autoplay_reset_icon = ImageTexture::create_from_image(autoplay_reset_img);
}
stop->set_icon(get_theme_icon(SNAME("Stop"), SNAME("EditorIcons")));

onion_toggle->set_icon(get_theme_icon(SNAME("Onion"), SNAME("EditorIcons")));
onion_skinning->set_icon(get_theme_icon(SNAME("GuiTabMenuHl"), SNAME("EditorIcons")));
Expand Down Expand Up @@ -204,7 +211,7 @@ void AnimationPlayerEditor::_play_pressed() {
}

//unstop
stop->set_pressed(false);
stop->set_icon(pause_icon);
}

void AnimationPlayerEditor::_play_from_pressed() {
Expand All @@ -221,7 +228,7 @@ void AnimationPlayerEditor::_play_from_pressed() {
}

//unstop
stop->set_pressed(false);
stop->set_icon(pause_icon);
}

String AnimationPlayerEditor::_get_current() const {
Expand All @@ -242,7 +249,7 @@ void AnimationPlayerEditor::_play_bw_pressed() {
}

//unstop
stop->set_pressed(false);
stop->set_icon(pause_icon);
}

void AnimationPlayerEditor::_play_bw_from_pressed() {
Expand All @@ -259,17 +266,24 @@ void AnimationPlayerEditor::_play_bw_from_pressed() {
}

//unstop
stop->set_pressed(false);
stop->set_icon(pause_icon);
}

void AnimationPlayerEditor::_stop_pressed() {
if (!player) {
return;
}

player->pause();
play->set_pressed(false);
stop->set_pressed(true);
if (player->is_playing()) {
player->pause();
} else {
String current = _get_current();
player->stop();
player->set_assigned_animation(current);
frame->set_value(0);
track_editor->set_anim_pos(0);
}
stop->set_icon(stop_icon);
}

void AnimationPlayerEditor::_animation_selected(int p_which) {
Expand Down Expand Up @@ -798,12 +812,9 @@ void AnimationPlayerEditor::_update_animation() {
updating = true;

if (player->is_playing()) {
play->set_pressed(true);
stop->set_pressed(false);

stop->set_icon(pause_icon);
} else {
play->set_pressed(false);
stop->set_pressed(true);
stop->set_icon(stop_icon);
}

scale->set_text(String::num(player->get_speed_scale(), 2));
Expand Down Expand Up @@ -1663,7 +1674,6 @@ AnimationPlayerEditor::AnimationPlayerEditor(AnimationPlayerEditorPlugin *p_plug

stop = memnew(Button);
stop->set_flat(true);
stop->set_toggle_mode(true);
hb->add_child(stop);
stop->set_tooltip_text(TTR("Stop animation playback. (S)"));

Expand Down
2 changes: 2 additions & 0 deletions editor/plugins/animation_player_editor_plugin.h
Expand Up @@ -101,6 +101,8 @@ class AnimationPlayerEditor : public VBoxContainer {
OptionButton *library = nullptr;
Label *name_title = nullptr;

Ref<Texture2D> stop_icon;
Ref<Texture2D> pause_icon;
Ref<Texture2D> autoplay_icon;
Ref<Texture2D> reset_icon;
Ref<ImageTexture> autoplay_reset_icon;
Expand Down

0 comments on commit 61c48f6

Please sign in to comment.