Commit: 0affcf098fbcf5b6953f464e9df61e44839d3231 Author: Campbell Barton Date: Tue Mar 21 14:12:49 2017 +1100 Branches: app-templates https://developer.blender.org/rB0affcf098fbcf5b6953f464e9df61e44839d3231
Pass in filters as functions instead of sets Also add label filter =================================================================== M release/datafiles/app_templates/101/template/__init__.py M release/scripts/modules/bl_app_override.py =================================================================== diff --git a/release/datafiles/app_templates/101/template/__init__.py b/release/datafiles/app_templates/101/template/__init__.py index 5cdde52263..da9a7a94a1 100644 --- a/release/datafiles/app_templates/101/template/__init__.py +++ b/release/datafiles/app_templates/101/template/__init__.py @@ -46,7 +46,6 @@ class AppStateStore: assert(len(self.class_store) == 0) # Classes - self.class_store.extend( bl_app_override.class_filter( bpy.types.Panel, @@ -76,29 +75,44 @@ class AppStateStore: def setup_ui_filter(self): import bl_app_override - self.ui_filter_store = bl_app_override.ui_draw_filter_register( - operator_blacklist={ - # "render.render", + + def filter_operator(op_id): + return op_id not in { "transform.mirror", "sound.mixdown", "object.modifier_add", "object.forcefield_toggle", - }, - property_blacklist={ + } + + def filter_property(ty, prop): + return (ty, prop) not in { ("Object", "location"), - ("Object", "scale"), ("Object", "rotation_euler"), - ("RenderSettings", "use_placeholder"), - ("RenderSettings", "use_render_cache"), - ("RenderSettings", "pixel_filter_type"), + ("Object", "scale"), ("RenderSettings", "filter_size"), - ("RenderSettings", "frame_map_old"), ("RenderSettings", "frame_map_new"), - ("RenderSettings", "use_border"), - ("RenderSettings", "use_crop_to_border"), + ("RenderSettings", "frame_map_old"), ("RenderSettings", "pixel_aspect_x"), ("RenderSettings", "pixel_aspect_y"), - }, + ("RenderSettings", "pixel_filter_type"), + ("RenderSettings", "use_border"), + ("RenderSettings", "use_crop_to_border"), + ("RenderSettings", "use_placeholder"), + ("RenderSettings", "use_render_cache"), + ("Scene", "frame_step"), + } + + def filter_label(text): + # print(text) + return text not in { + "Aspect Ratio:", + "Time Remapping:", + } + + self.ui_filter_store = bl_app_override.ui_draw_filter_register( + filter_operator=filter_operator, + filter_property=filter_property, + filter_label=filter_label, ) def teardown_ui_filter(self): diff --git a/release/scripts/modules/bl_app_override.py b/release/scripts/modules/bl_app_override.py index 5ea6045e83..284a99e3f3 100644 --- a/release/scripts/modules/bl_app_override.py +++ b/release/scripts/modules/bl_app_override.py @@ -45,8 +45,9 @@ def class_filter(cls_parent, **kw): def ui_draw_filter_register( *, classes=None, - property_blacklist=None, - operator_blacklist=None, + filter_operator=None, + filter_property=None, + filter_label=None, ): import bpy @@ -59,12 +60,6 @@ def ui_draw_filter_register( bpy.types.Header, ) - def filter_operator(op_id): - return op_id not in operator_blacklist - - def filter_prop(data, prop): - return (data.__class__.__name__, prop) not in property_blacklist - class OperatorProperties_Fake: pass @@ -83,6 +78,9 @@ def ui_draw_filter_register( return dummy_func elif attr in {"operator", "operator_menu_enum", "operator_enum"}: + if filter_operator is None: + return UILayout.__getattribute__(self, attr) + real_func = UILayout.__getattribute__(self, attr) def dummy_func(*args, **kw): @@ -96,16 +94,34 @@ def ui_draw_filter_register( return ret return dummy_func elif attr in {"prop", "prop_enum"}: + if filter_property is None: + return UILayout.__getattribute__(self, attr) + real_func = UILayout.__getattribute__(self, attr) def dummy_func(*args, **kw): # print("wrapped", attr) - if filter_prop(args[0], args[1]): + if filter_property(args[0].__class__.__name__, args[1]): ret = real_func(*args, **kw) else: ret = None return ret return dummy_func + elif attr == "label": + if filter_label is None: + return UILayout.__getattribute__(self, attr) + + real_func = UILayout.__getattribute__(self, attr) + + def dummy_func(*args, **kw): + # print("wrapped", attr) + if filter_label(args[0] if args else kw["text"]): + ret = real_func(*args, **kw) + else: + # ret = real_func() + ret = None + return ret + return dummy_func else: return UILayout.__getattribute__(self, attr) # print(self, attr) @@ -113,6 +129,14 @@ def ui_draw_filter_register( def operator(*args, **kw): return super().operator(*args, **kw) + def label(*args, **kw): + text = args[1] if args else kw["text"] + if filter_label(text): + return super().label(*args, **kw) + else: + return super().label(args[0], "") + + def draw_override(func_orig, self_real, context): # simple, no wrapping # return func_orig(self_wrap, context) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs