From 12472534ec644fbffa0d15b0ab199f41abefc324 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Fri, 22 Jul 2016 09:42:12 -0300 Subject: [PATCH] Show a warning that an animation must be selected in order to edit it. Avoid copying/pasting if no anim selected. Closes #5799 --- tools/editor/animation_editor.cpp | 10 ++++++++++ tools/editor/animation_editor.h | 2 ++ .../editor/plugins/animation_player_editor_plugin.cpp | 11 +++++++++-- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/tools/editor/animation_editor.cpp b/tools/editor/animation_editor.cpp index 9eb6b4013fb..aa0156b0c09 100644 --- a/tools/editor/animation_editor.cpp +++ b/tools/editor/animation_editor.cpp @@ -4075,12 +4075,22 @@ AnimationKeyEditor::AnimationKeyEditor() { track_editor->set_h_size_flags(SIZE_EXPAND_FILL); + track_pos = memnew( Control ); track_pos->set_area_as_parent_rect(); track_pos->set_ignore_mouse(true); track_editor->add_child(track_pos); track_pos->connect("draw",this,"_track_pos_draw"); + select_anim_warning = memnew( Label ); + track_editor->add_child(select_anim_warning); + select_anim_warning->set_area_as_parent_rect(); + select_anim_warning->set_text(TTR("Select an AnimationPlayer from the Scene Tree to edit animations.")); + select_anim_warning->set_autowrap(true); + select_anim_warning->set_align(Label::ALIGN_CENTER); + select_anim_warning->set_valign(Label::VALIGN_CENTER); + + v_scroll = memnew( VScrollBar ); hb->add_child(v_scroll); diff --git a/tools/editor/animation_editor.h b/tools/editor/animation_editor.h index 131100a205d..3078b3288ba 100644 --- a/tools/editor/animation_editor.h +++ b/tools/editor/animation_editor.h @@ -268,6 +268,7 @@ class AnimationKeyEditor : public VBoxContainer { EditorSelection *editor_selection; + Label *select_anim_warning; float _get_zoom_scale() const; @@ -343,6 +344,7 @@ public: void insert_value_key(const String& p_property, const Variant& p_value, bool p_advance); void insert_transform_key(Spatial *p_node,const String& p_sub,const Transform& p_xform); + void show_select_node_warning(bool p_show) { select_anim_warning->set_hidden(!p_show); } AnimationKeyEditor(); ~AnimationKeyEditor(); }; diff --git a/tools/editor/plugins/animation_player_editor_plugin.cpp b/tools/editor/plugins/animation_player_editor_plugin.cpp index 98ba25b482c..7dc2e6540c9 100644 --- a/tools/editor/plugins/animation_player_editor_plugin.cpp +++ b/tools/editor/plugins/animation_player_editor_plugin.cpp @@ -43,6 +43,7 @@ void AnimationPlayerEditor::_node_removed(Node *p_node) { key_editor->set_animation(Ref()); key_editor->set_root(NULL); + key_editor->show_select_node_warning(true); _update_player(); //editor->animation_editor_make_visible(false); @@ -832,6 +833,7 @@ void AnimationPlayerEditor::_update_player() { remove_anim->set_disabled(animlist.size()==0); resource_edit_anim->set_disabled(animlist.size()==0); save_anim->set_disabled(animlist.size() == 0); + tool_anim->set_disabled(player==NULL); int active_idx=-1; @@ -889,9 +891,11 @@ void AnimationPlayerEditor::edit(AnimationPlayer *p_player) { return; //ignore, pinned player=p_player; - if (player) + if (player) { _update_player(); - else { + key_editor->show_select_node_warning(false); + } else { + key_editor->show_select_node_warning(true); // hide(); @@ -1123,6 +1127,7 @@ void AnimationPlayerEditor::_hide_anim_editors() { key_editor->set_animation(Ref()); key_editor->set_root(NULL); + key_editor->show_select_node_warning(true); // editor->animation_editor_make_visible(false); } @@ -1531,6 +1536,8 @@ void AnimationPlayerEditorPlugin::edit(Object *p_object) { if (!p_object) return; anim_editor->edit(p_object->cast_to()); + + } bool AnimationPlayerEditorPlugin::handles(Object *p_object) const {