[Bf-blender-cvs] [593d59b8d3] app-templates: Add black/white listing
Campbell Barton
noreply at git.blender.org
Thu Mar 16 02:17:14 CET 2017
Commit: 593d59b8d361a351ced14d427f1602a92ec3bff1
Author: Campbell Barton
Date: Thu Mar 16 12:22:02 2017 +1100
Branches: app-templates
https://developer.blender.org/rB593d59b8d361a351ced14d427f1602a92ec3bff1
Add black/white listing
===================================================================
M release/app_templates/101/template/__init__.py
M release/scripts/modules/bl_app_override.py
===================================================================
diff --git a/release/app_templates/101/template/__init__.py b/release/app_templates/101/template/__init__.py
index 4cc4fed172..a2d191ab95 100644
--- a/release/app_templates/101/template/__init__.py
+++ b/release/app_templates/101/template/__init__.py
@@ -31,8 +31,14 @@ def register():
class_store.extend(
bl_app_override.class_filter(
bpy.types.Panel,
+ # match any of these values
bl_region_type={'TOOLS', 'WINDOW'},
- bl_space_type={'VIEW_3D', 'PROPERTIES'}
+ bl_space_type={'VIEW_3D', 'PROPERTIES'},
+ # keep basic panels
+ black_list={
+ 'VIEW3D_PT_tools_add_object',
+ 'OBJECT_PT_transform',
+ },
),
)
unregister = bpy.utils.unregister_class
diff --git a/release/scripts/modules/bl_app_override.py b/release/scripts/modules/bl_app_override.py
index aa1ad9e50d..935ccedb18 100644
--- a/release/scripts/modules/bl_app_override.py
+++ b/release/scripts/modules/bl_app_override.py
@@ -29,8 +29,13 @@ Intended for use with 'app_templates', though it can be used from anywhere.
# TODO, how to check these aren't from add-ons.
# templates might need to un-register while filtering.
def class_filter(cls_parent, **kw):
+ kw = kw.copy()
+ white_list = kw.pop("white_list", None)
+ black_list = kw.pop("black_list", None)
kw_items = tuple(kw.items())
for cls in cls_parent.__subclasses__():
- if all((getattr(cls, attr) in expect) for attr, expect in kw_items):
+ if black_list is not None and cls.__name__ in black_list:
+ continue
+ if ((white_list is not None and cls.__name__ is white_list) or
+ all((getattr(cls, attr) in expect) for attr, expect in kw_items)):
yield cls
-
More information about the Bf-blender-cvs
mailing list