[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