[Bf-blender-cvs] [2f8a45e3140] blender2.8: Tool System: support passing in args to ToolDef functions

Campbell Barton noreply at git.blender.org
Sun Nov 4 21:18:22 CET 2018


Commit: 2f8a45e3140a4984bd18eadb2dc4850919d27bd4
Author: Campbell Barton
Date:   Mon Nov 5 06:57:01 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB2f8a45e3140a4984bd18eadb2dc4850919d27bd4

Tool System: support passing in args to ToolDef functions

Needed since class aren't yet defined
so we can't access their namespace.

This avoids intermediate draw functions.

===================================================================

M	release/scripts/startup/bl_ui/space_toolsystem_common.py
M	release/scripts/startup/bl_ui/space_toolsystem_toolbar.py

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_toolsystem_common.py b/release/scripts/startup/bl_ui/space_toolsystem_common.py
index 98bd0e3531a..79da1ee786e 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_common.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_common.py
@@ -143,10 +143,16 @@ def from_fn(fn):
     return ToolDef.from_dict(fn())
 
 
+def with_args(*args):
+    def from_fn(fn):
+        return ToolDef.from_dict(fn(*args))
+    return from_fn
+
+
+from_fn.with_args = with_args
 ToolDef.from_dict = from_dict
 ToolDef.from_fn = from_fn
-del from_dict
-del from_fn
+del from_dict, from_fn, with_args
 
 
 class ToolSelectPanelHelper:
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index ed59d6f3d36..58e0d174e66 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -171,7 +171,7 @@ class _defs_view3d_generic:
 def _defs_annotate_factory():
 
     class _defs_annotate:
-        @staticmethod
+
         def draw_settings_common(context, layout, tool):
             if type(context.gpencil_data_owner) is bpy.types.Object:
                 gpd = context.scene.grease_pencil
@@ -211,10 +211,8 @@ def _defs_annotate_factory():
                 elif tool_settings.gpencil_stroke_placement_view3d in {'SURFACE', 'STROKE'}:
                     row.prop(tool_settings, "use_gpencil_stroke_endpoints")
 
-        @ToolDef.from_fn
-        def scribble():
-            def draw_settings(context, layout, tool):
-                _defs_annotate.draw_settings_common(context, layout, tool)
+        @ToolDef.from_fn.with_args(draw_settings_common)
+        def scribble(draw_settings_common):
             return dict(
                 text="Annotate",
                 icon="ops.gpencil.draw",
@@ -224,13 +222,11 @@ def _defs_annotate_factory():
                      dict(mode='DRAW', wait_for_input=False),
                      dict(type='ACTIONMOUSE', value='PRESS')),
                 ),
-                draw_settings=draw_settings,
+                draw_settings=draw_settings_common,
             )
 
-        @ToolDef.from_fn
-        def line():
-            def draw_settings(context, layout, tool):
-                _defs_annotate.draw_settings_common(context, layout, tool)
+        @ToolDef.from_fn.with_args(draw_settings_common)
+        def line(draw_settings_common):
             return dict(
                 text="Annotate Line",
                 icon="ops.gpencil.draw.line",
@@ -240,13 +236,11 @@ def _defs_annotate_factory():
                      dict(mode='DRAW_STRAIGHT', wait_for_input=False),
                      dict(type='EVT_TWEAK_A', value='ANY')),
                 ),
-                draw_settings=draw_settings,
+                draw_settings=draw_settings_common,
             )
 
-        @ToolDef.from_fn
-        def poly():
-            def draw_settings(context, layout, tool):
-                _defs_annotate.draw_settings_common(context, layout, tool)
+        @ToolDef.from_fn.with_args(draw_settings_common)
+        def poly(draw_settings_common):
             return dict(
                 text="Annotate Polygon",
                 icon="ops.gpencil.draw.poly",
@@ -256,7 +250,7 @@ def _defs_annotate_factory():
                      dict(mode='DRAW_POLY', wait_for_input=False),
                      dict(type='ACTIONMOUSE', value='PRESS')),
                 ),
-                draw_settings=draw_settings,
+                draw_settings=draw_settings_common,
             )
 
         @ToolDef.from_fn
@@ -276,6 +270,7 @@ def _defs_annotate_factory():
                 ),
                 draw_settings=draw_settings,
             )
+
     return _defs_annotate
 
 
@@ -1401,7 +1396,7 @@ class _defs_gpencil_edit:
 
 
 class _defs_gpencil_sculpt:
-    @staticmethod
+
     def draw_settings_common(context, layout, tool):
         ob = context.active_object
         if ob and ob.mode == 'GPENCIL_SCULPT':
@@ -1420,11 +1415,8 @@ class _defs_gpencil_sculpt:
                 row.separator()
                 row.prop(brush, "direction", expand=True, text="")
 
-    @ToolDef.from_fn
-    def smooth():
-        def draw_settings(context, layout, tool):
-            _defs_gpencil_sculpt.draw_settings_common(context, layout, tool)
-
+    @ToolDef.from_fn.with_args(draw_settings_common)
+    def smooth(draw_settings_common):
         return dict(
             text="Smooth",
             icon="ops.gpencil.sculpt_smooth",
@@ -1434,14 +1426,11 @@ class _defs_gpencil_sculpt:
                  dict(mode='SMOOTH', wait_for_input=False),
                  dict(type='EVT_TWEAK_A', value='ANY')),
             ),
-            draw_settings=draw_settings,
+            draw_settings=draw_settings_common,
         )
 
-    @ToolDef.from_fn
-    def thickness():
-        def draw_settings(context, layout, tool):
-            _defs_gpencil_sculpt.draw_settings_common(context, layout, tool)
-
+    @ToolDef.from_fn.with_args(draw_settings_common)
+    def thickness(draw_settings_common):
         return dict(
             text="Thickness",
             icon="ops.gpencil.sculpt_thickness",
@@ -1451,14 +1440,11 @@ class _defs_gpencil_sculpt:
                  dict(mode='THICKNESS', wait_for_input=False),
                  dict(type='EVT_TWEAK_A', value='ANY')),
             ),
-            draw_settings=draw_settings,
+            draw_settings=draw_settings_common,
         )
 
-    @ToolDef.from_fn
-    def strength():
-        def draw_settings(context, layout, tool):
-            _defs_gpencil_sculpt.draw_settings_common(context, layout, tool)
-
+    @ToolDef.from_fn.with_args(draw_settings_common)
+    def strength(draw_settings_common):
         return dict(
             text="Strength",
             icon="ops.gpencil.sculpt_strength",
@@ -1468,14 +1454,11 @@ class _defs_gpencil_sculpt:
                  dict(mode='STRENGTH', wait_for_input=False),
                  dict(type='EVT_TWEAK_A', value='ANY')),
             ),
-            draw_settings=draw_settings,
+            draw_settings=draw_settings_common,
         )
 
-    @ToolDef.from_fn
-    def grab():
-        def draw_settings(context, layout, tool):
-            _defs_gpencil_sculpt.draw_settings_common(context, layout, tool)
-
+    @ToolDef.from_fn.with_args(draw_settings_common)
+    def grab(draw_settings_common):
         return dict(
             text="Grab",
             icon="ops.gpencil.sculpt_grab",
@@ -1485,14 +1468,11 @@ class _defs_gpencil_sculpt:
                  dict(mode='GRAB', wait_for_input=False),
                  dict(type='EVT_TWEAK_A', value='ANY')),
             ),
-            draw_settings=draw_settings,
+            draw_settings=draw_settings_common,
         )
 
-    @ToolDef.from_fn
-    def push():
-        def draw_settings(context, layout, tool):
-            _defs_gpencil_sculpt.draw_settings_common(context, layout, tool)
-
+    @ToolDef.from_fn.with_args(draw_settings_common)
+    def push(draw_settings_common):
         return dict(
             text="Push",
             icon="ops.gpencil.sculpt_push",
@@ -1502,14 +1482,11 @@ class _defs_gpencil_sculpt:
                  dict(mode='PUSH', wait_for_input=False),
                  dict(type='EVT_TWEAK_A', value='ANY')),
             ),
-            draw_settings=draw_settings,
+            draw_settings=draw_settings_common,
         )
 
-    @ToolDef.from_fn
-    def twist():
-        def draw_settings(context, layout, tool):
-            _defs_gpencil_sculpt.draw_settings_common(context, layout, tool)
-
+    @ToolDef.from_fn.with_args(draw_settings_common)
+    def twist(draw_settings_common):
         return dict(
             text="Twist",
             icon="ops.gpencil.sculpt_twist",
@@ -1519,14 +1496,11 @@ class _defs_gpencil_sculpt:
                  dict(mode='TWIST', wait_for_input=False),
                  dict(type='EVT_TWEAK_A', value='ANY')),
             ),
-            draw_settings=draw_settings,
+            draw_settings=draw_settings_common,
         )
 
-    @ToolDef.from_fn
-    def pinch():
-        def draw_settings(context, layout, tool):
-            _defs_gpencil_sculpt.draw_settings_common(context, layout, tool)
-
+    @ToolDef.from_fn.with_args(draw_settings_common)
+    def pinch(draw_settings_common):
         return dict(
             text="Pinch",
             icon="ops.gpencil.sculpt_pinch",
@@ -1536,14 +1510,11 @@ class _defs_gpencil_sculpt:
                  dict(mode='PINCH', wait_for_input=False),
                  dict(type='EVT_TWEAK_A', value='ANY')),
             ),
-            draw_settings=draw_settings,
+            draw_settings=draw_settings_common,
         )
 
-    @ToolDef.from_fn
-    def randomize():
-        def draw_settings(context, layout, tool):
-            _defs_gpencil_sculpt.draw_settings_common(context, layout, tool)
-
+    @ToolDef.from_fn.with_args(draw_settings_common)
+    def randomize(draw_settings_common):
         return dict(
             text="Randomize",
             icon="ops.gpencil.sculpt_randomize",
@@ -1553,14 +1524,11 @@ class _defs_gpencil_sculpt:
                  dict(mode='RANDOMIZE', wait_for_input=False),
                  dict(type='EVT_TWEAK_A', value='ANY')),
             ),
-            draw_settings=draw_settings,
+            draw_settings=draw_settings_common,
         )
 
-    @ToolDef.from_fn
-    def clone():
-        def draw_settings(context, layout, tool):
-            _defs_gpencil_sculpt.draw_settings_common(context, layout, tool)
-
+    @ToolDef.from_fn.with_args(draw_settings_common)
+    def clone(draw_settings_common):
         return dict(
             text="Clone",
             icon="ops.gpencil.sculpt_clone",
@@ -1570,12 +1538,12 @@ class _defs_gpencil_sculpt:
                  dict(mode='CLONE', wait_for_input=False),
                  dict(type='EVT_TWEAK_A', value='ANY')),
             ),
-            draw_settings=draw_settings,
+            draw_settings=draw_settings_common,
         )
 
 
 class _defs_gpencil_weight:
-    @staticmethod
+
     def draw_settings_common(context, layout, tool):
         ob = context.active_object
    

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list