diff options
author | Joshua Leung <aligorith@gmail.com> | 2014-05-05 06:15:28 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2014-05-05 06:16:41 +0400 |
commit | 6d2c23bf70c550ead52a5e518d9e4846c5d3f23f (patch) | |
tree | 4febc7ff4d51d79c83c02e946e98d7ac936fbe7f /source/blender/editors/space_nla/nla_buttons.c | |
parent | 4e0aa0e7f23fae72c469262d4aab751fc6d642de (diff) |
NLA Pushdown Operator: Active animdata option + More error handling
* If channel_index = -1, the pushdown operator will try to use the active AnimData
block. To see which one this will be, check the properties (NKEY) region in NLA Editor.
* Added more detailed error handling for the various cases where things are not
in a valid state for pushing down an action. This is notably to stop scripters
from putting the NLA into an inconsistent state.
Diffstat (limited to 'source/blender/editors/space_nla/nla_buttons.c')
-rw-r--r-- | source/blender/editors/space_nla/nla_buttons.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c index a39783cf94b..808bd622c0d 100644 --- a/source/blender/editors/space_nla/nla_buttons.c +++ b/source/blender/editors/space_nla/nla_buttons.c @@ -80,19 +80,19 @@ static void do_nla_region_buttons(bContext *C, void *UNUSED(arg), int UNUSED(eve WM_event_add_notifier(C, NC_SCENE | ND_TRANSFORM, NULL); } -static int nla_panel_context(const bContext *C, PointerRNA *adt_ptr, PointerRNA *nlt_ptr, PointerRNA *strip_ptr) +bool nla_panel_context(const bContext *C, PointerRNA *adt_ptr, PointerRNA *nlt_ptr, PointerRNA *strip_ptr) { bAnimContext ac; bAnimListElem *ale = NULL; ListBase anim_data = {NULL, NULL}; - short found = 0; + short found = 0; /* not bool, since we need to indicate "found but not ideal" status */ int filter; /* for now, only draw if we could init the anim-context info (necessary for all animation-related tools) * to work correctly is able to be correctly retrieved. There's no point showing empty panels? */ if (ANIM_animdata_get_context(C, &ac) == 0) - return 0; + return false; /* extract list of active channel(s), of which we should only take the first one * - we need the channels flag to get the active AnimData block when there are no NLA Tracks @@ -176,7 +176,7 @@ static int nla_panel_context(const bContext *C, PointerRNA *adt_ptr, PointerRNA /* free temp data */ BLI_freelistN(&anim_data); - return found; + return (found != 0); } #if 0 |