-> Keybindings for hiding objects

Small feature, added keybindings for setting the visibility restriction flags
that were previously only accesible via the outliner

HKEY 		Hides all selected
SHIFT-HKEY 	Hides all unselected
ALT-HKEY 	Shows all hidden
This commit is contained in:
Geoffrey Bantle 2007-04-19 19:47:51 +00:00
parent 238ab04297
commit f5a40315ca
3 changed files with 42 additions and 2 deletions

@ -117,5 +117,8 @@ void add_hook(void);
void hook_select(struct HookModifierData *hmd);
int hook_getIndexArray(int *tot, int **indexar, char *name, float *cent_r);
void hide_objects(int select);
void show_objects(void);
#endif /* BDR_EDITOBJECT_H */

@ -5455,3 +5455,35 @@ void hookmenu(void)
}
}
void hide_objects(int select)
{
Base *b;
int swap;
for(b = G.scene->base.first; b; b=b->next){
if(TESTBASE(b)==select){
b->flag &= ~SELECT;
b->object->restrictflag |= OB_RESTRICT_VIEW;
DAG_object_flush_update(G.scene, b->object, OB_RECALC_DATA);
}
}
G.scene->basact = NULL;
allqueue(REDRAWVIEW3D,0);
allqueue(REDRAWOOPS,0);
if(select) BIF_undo_push("Hide Selected Objects");
else if(select) BIF_undo_push("Hide Unselected Objects");
}
void show_objects(void)
{
Base *b;
for(b = G.scene->base.first; b; b=b->next){
if((b->lay & G.vd->lay) && b->object->restrictflag & OB_RESTRICT_VIEW){
b->flag |= SELECT;
b->object->restrictflag &= ~OB_RESTRICT_VIEW;
DAG_object_flush_update(G.scene, b->object, OB_RECALC_DATA);
}
}
BIF_undo_push("Unhide Objects");
allqueue(REDRAWVIEW3D,0);
allqueue(REDRAWOOPS,0);
}

@ -1924,8 +1924,13 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
hide_unselected_pose_bones();
else if (G.qual==LR_ALTKEY)
show_all_pose_bones();
} else {
hookmenu();
}
else {
if(G.qual==LR_CTRLKEY)hookmenu();
else if(G.qual==LR_ALTKEY) show_objects();
else if(G.qual==LR_SHIFTKEY) hide_objects(0);
else hide_objects(1);
}
break;
case IKEY: