diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/makesdna/DNA_space_types.h | 6 | ||||
-rw-r--r-- | source/blender/src/drawnla.c | 2 | ||||
-rw-r--r-- | source/blender/src/header_nla.c | 12 |
3 files changed, 16 insertions, 4 deletions
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 1f5391d59b1..53a64fa574f 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -251,7 +251,7 @@ typedef struct SpaceNla{ short blockhandler[8]; short menunr, lock; - int pad; + int flag; View2D v2d; } SpaceNla; @@ -581,6 +581,10 @@ typedef struct SpaceImaSel { #define IMS_INFILE 3 #define IMS_INFILESLI 4 +/* nla->flag */ +#define SNLA_ALLKEYED 1 +#define SNLA_ACTIVELAYERS 2 + /* time->flag */ #define TIME_DRAWFRAMES 1 #define TIME_CFRA_NUM 2 diff --git a/source/blender/src/drawnla.c b/source/blender/src/drawnla.c index 9c6870a9483..e9710ff52ba 100644 --- a/source/blender/src/drawnla.c +++ b/source/blender/src/drawnla.c @@ -761,7 +761,7 @@ int nla_filter (Base *base) { Object *ob = base->object; - if(base->lay & G.scene->lay) { + if ((G.snla->flag & SNLA_ALLKEYED) || (base->lay & G.scene->lay)) { if(ob->action || ob->nlastrips.first) return 1; diff --git a/source/blender/src/header_nla.c b/source/blender/src/header_nla.c index 2d33ee098de..918383478e5 100644 --- a/source/blender/src/header_nla.c +++ b/source/blender/src/header_nla.c @@ -114,11 +114,14 @@ static void do_nla_viewmenu(void *arg, int event) case 4: /* Maximize Window */ /* using event B_FULL */ break; - case 5: + case 5: /* Update automatically */ G.v2d->flag ^= V2D_VIEWLOCK; if(G.v2d->flag & V2D_VIEWLOCK) view2d_do_locks(curarea, 0); - break; + break; + case 6: /* Show all objects that have keyframes? */ + G.snla->flag ^= SNLA_ALLKEYED; + break; } } @@ -131,6 +134,11 @@ static uiBlock *nla_viewmenu(void *arg_unused) block= uiNewBlock(&curarea->uiblocks, "nla_viewmenu", UI_EMBOSSP, UI_HELV, curarea->headwin); uiBlockSetButmFunc(block, do_nla_viewmenu, NULL); + uiDefIconTextBut(block, BUTM, 1, (G.snla->flag & SNLA_ALLKEYED)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT, + "Only Objects On Visible Layers|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); + + uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); + if(BTST(G.snla->lock, 0)) { uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Update Automatically|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, ""); } else { |