forked from bartvdbraak/blender
patch by Elia Sarti, adding selectable_objects and selectable_bases to the screen context, allowing some operators to run from the console which previously only worked in the 3D view.
This commit is contained in:
parent
106867910e
commit
de1f68a5e4
@ -48,6 +48,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
|
||||
bScreen *sc= CTX_wm_screen(C);
|
||||
Scene *scene= sc->scene;
|
||||
Base *base;
|
||||
unsigned int lay = scene->lay;
|
||||
|
||||
#if 0 /* Using the context breaks adding objects in the UI. Need to find out why - campbell */
|
||||
Object *obact= CTX_data_active_object(C);
|
||||
@ -61,7 +62,8 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
|
||||
|
||||
if(CTX_data_dir(member)) {
|
||||
static const char *dir[] = {
|
||||
"scene", "visible_objects", "visible_bases", "selected_objects", "selected_bases",
|
||||
"scene", "visible_objects", "visible_bases", "selectable_objects", "selectable_bases",
|
||||
"selected_objects", "selected_bases",
|
||||
"selected_editable_objects", "selected_editable_bases",
|
||||
"visible_bones", "editable_bones", "selected_bones", "selected_editable_bones",
|
||||
"visible_pose_bones", "selected_pose_bones", "active_bone", "active_pose_bone",
|
||||
@ -92,6 +94,22 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
|
||||
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
|
||||
return 1;
|
||||
}
|
||||
else if(CTX_data_equals(member, "selectable_objects") || CTX_data_equals(member, "selectable_bases")) {
|
||||
int selectable_objects= CTX_data_equals(member, "selectable_objects");
|
||||
|
||||
for(base=scene->base.first; base; base=base->next) {
|
||||
if(base->lay & lay) {
|
||||
if((base->object->restrictflag & OB_RESTRICT_VIEW)==0 && (base->object->restrictflag & OB_RESTRICT_SELECT)==0) {
|
||||
if(selectable_objects)
|
||||
CTX_data_id_list_add(result, &base->object->id);
|
||||
else
|
||||
CTX_data_list_add(result, &scene->id, &RNA_ObjectBase, base);
|
||||
}
|
||||
}
|
||||
}
|
||||
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
|
||||
return 1;
|
||||
}
|
||||
else if(CTX_data_equals(member, "selected_objects") || CTX_data_equals(member, "selected_bases")) {
|
||||
int selected_objects= CTX_data_equals(member, "selected_objects");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user