Skip to content

Commit

Permalink
Merge pull request #77221 from hakro/fix-animation-frames-editor
Browse files Browse the repository at this point in the history
Hide Animation Frames section when there are no animations
  • Loading branch information
akien-mga committed May 19, 2023
2 parents 9dfae0e + 9cf2d0f commit 150acef
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
26 changes: 21 additions & 5 deletions editor/plugins/sprite_frames_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1198,7 +1198,13 @@ void SpriteFramesEditor::_update_library(bool p_skip_selector) {
List<StringName> anim_names;
frames->get_animation_list(&anim_names);
anim_names.sort_custom<StringName::AlphCompare>();

if (!anim_names.size()) {
missing_anim_label->show();
anim_frames_vb->hide();
return;
}
missing_anim_label->hide();
anim_frames_vb->show();
bool searching = anim_search_box->get_text().size();
String searched_string = searching ? anim_search_box->get_text().to_lower() : String();

Expand Down Expand Up @@ -1705,12 +1711,22 @@ SpriteFramesEditor::SpriteFramesEditor() {
delete_anim->set_shortcut_context(animations);
delete_anim->set_shortcut(ED_SHORTCUT("sprite_frames/delete_animation", TTR("Delete Animation"), Key::KEY_DELETE));

VBoxContainer *vbc = memnew(VBoxContainer);
add_child(vbc);
vbc->set_h_size_flags(SIZE_EXPAND_FILL);
missing_anim_label = memnew(Label);
missing_anim_label->set_text(TTR("This resource does not have any animations."));
missing_anim_label->set_h_size_flags(SIZE_EXPAND_FILL);
missing_anim_label->set_v_size_flags(SIZE_EXPAND_FILL);
missing_anim_label->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER);
missing_anim_label->set_vertical_alignment(VERTICAL_ALIGNMENT_CENTER);
missing_anim_label->hide();
add_child(missing_anim_label);

anim_frames_vb = memnew(VBoxContainer);
add_child(anim_frames_vb);
anim_frames_vb->set_h_size_flags(SIZE_EXPAND_FILL);
anim_frames_vb->hide();

sub_vb = memnew(VBoxContainer);
vbc->add_margin_child(TTR("Animation Frames:"), sub_vb, true);
anim_frames_vb->add_margin_child(TTR("Animation Frames:"), sub_vb, true);

HFlowContainer *hfc = memnew(HFlowContainer);
sub_vb->add_child(hfc);
Expand Down
3 changes: 3 additions & 0 deletions editor/plugins/sprite_frames_editor_plugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,9 @@ class SpriteFramesEditor : public HSplitContainer {
LineEdit *anim_search_box = nullptr;
Tree *animations = nullptr;

Label *missing_anim_label = nullptr;
VBoxContainer *anim_frames_vb = nullptr;

EditorFileDialog *file = nullptr;

AcceptDialog *dialog = nullptr;
Expand Down

0 comments on commit 150acef

Please sign in to comment.