[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