== Action Editor - Show Hidden Channels ==

This option (found in the View menu) shows all Action Channels, regardless of whether the data they represent is visible or not. 
It's better than having to have multiple pinned Action Editors open to be able to move all keyframes of all bones at once (when blocking for example).


Also, fixed some compile errors caused by previous commit...
This commit is contained in:
Joshua Leung 2007-12-19 23:29:42 +00:00
parent 2a43932a74
commit 0a682cb50f
4 changed files with 17 additions and 6 deletions

@ -154,7 +154,9 @@ typedef enum SACTION_FLAG {
/* show sliders (if relevant) */
SACTION_SLIDERS = (1<<1),
/* draw time in seconds instead of time in frames */
SACTION_DRAWTIME = (1<<2)
SACTION_DRAWTIME = (1<<2),
/* don't filter action channels according to visibility */
SACTION_NOHIDE = (1<<3)
} SACTION_FLAG;
/* SpaceAction AutoSnap Settings (also used by SpaceNLA) */

@ -617,12 +617,12 @@ void check_action_context(SpaceAction *saction)
{
bActionChannel *achan;
if(saction->action==NULL) return;
if (saction->action==NULL) return;
for (achan=saction->action->chanbase.first; achan; achan=achan->next)
achan->flag &= ~ACHAN_HIDDEN;
if (G.saction->pin==0 && OBACT) {
if ((saction->pin==0) && ((saction->flag & SACTION_NOHIDE)==0) && (OBACT)) {
Object *ob= OBACT;
bPoseChannel *pchan;
bArmature *arm= ob->data;

@ -1158,8 +1158,8 @@ void free_actcopybuf ()
bActionChannel *achan, *anext;
bConstraintChannel *conchan, *cnext;
for (achan= actcopybuf.first; achan; achan= next) {
next= achan->next;
for (achan= actcopybuf.first; achan; achan= anext) {
anext= achan->next;
if (achan->ipo) {
free_ipo(achan->ipo);
@ -1174,7 +1174,7 @@ void free_actcopybuf ()
MEM_freeN(conchan->ipo);
}
BLI_freelistN(&achan->constraintChannels, conchan);
BLI_freelinkN(&achan->constraintChannels, conchan);
}
BLI_freelinkN(&actcopybuf, achan);

@ -93,6 +93,7 @@ enum {
ACTMENU_VIEW_NEXTMARKER,
ACTMENU_VIEW_PREVMARKER,
ACTMENU_VIEW_TIME,
ACTMENU_VIEW_NOHIDE
};
enum {
@ -299,6 +300,9 @@ static void do_action_viewmenu(void *arg, int event)
case ACTMENU_VIEW_TIME: /* switch between frames and seconds display */
G.saction->flag ^= SACTION_DRAWTIME;
break;
case ACTMENU_VIEW_NOHIDE: /* Show hidden channels */
G.saction->flag ^= SACTION_NOHIDE;
break;
}
allqueue(REDRAWVIEW3D, 0);
}
@ -340,6 +344,11 @@ static uiBlock *action_viewmenu(void *arg_unused)
menuwidth, 19, NULL, 0.0, 0.0, 1,
ACTMENU_VIEW_SLIDERS, "");
uiDefIconTextBut(block, BUTM, 1, (G.saction->flag & SACTION_NOHIDE)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
"Show Hidden Channels|", 0, yco-=20,
menuwidth, 19, NULL, 0.0, 0.0, 1,
ACTMENU_VIEW_NOHIDE, "");
uiDefIconTextBut(block, BUTM, 1, (G.v2d->flag & V2D_VIEWLOCK)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
"Lock Time to Other Windows|", 0, yco-=20,
menuwidth, 19, NULL, 0.0, 0.0, 1,