diff options
author | Elia Sarti <vekoon@gmail.com> | 2010-04-01 23:48:29 +0400 |
---|---|---|
committer | Elia Sarti <vekoon@gmail.com> | 2010-04-01 23:48:29 +0400 |
commit | 7f5e6b8626f7c76c4f20a54618c0063c6bf067dd (patch) | |
tree | ee0f3ff9eaf799ea0634084a92b377767d67e11b /source/blender | |
parent | 8ba6b0a47be7d01cf0b0510011a8a839f58aeb72 (diff) |
Added visible_bases and visible_objects to screen Context.
Also fixes [#21576] bpy.ops.object.select_all() doesn't function
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/screen/screen_context.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c index 38f0778ea0c..14cafc74ea5 100644 --- a/source/blender/editors/screen/screen_context.c +++ b/source/blender/editors/screen/screen_context.c @@ -60,7 +60,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult if(CTX_data_dir(member)) { static const char *dir[] = { - "scene", "selected_objects", "selected_bases", + "scene", "visible_objects", "visible_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", @@ -75,6 +75,20 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult CTX_data_id_pointer_set(result, &scene->id); return 1; } + else if(CTX_data_equals(member, "visible_objects") || CTX_data_equals(member, "visible_bases")) { + int visible_objects= CTX_data_equals(member, "visible_objects"); + + for(base=scene->base.first; base; base=base->next) { + if(((base->object->restrictflag & OB_RESTRICT_VIEW) == 0) && (base->lay & scene->lay)) { + if(visible_objects) + CTX_data_id_list_add(result, &base->object->id); + else + CTX_data_list_add(result, &scene->id, &RNA_ObjectBase, base); + } + } + + 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"); |