Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-11-04 22:57:01 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-11-04 23:12:57 +0300
commit2f8a45e3140a4984bd18eadb2dc4850919d27bd4 (patch)
treec3f4f787fd581b8229258e4be34728acefdca042 /release
parent5195f03ca129a417524280278e87257dc8188646 (diff)
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.
Diffstat (limited to 'release')
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_common.py10
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_toolbar.py121
2 files changed, 51 insertions, 80 deletions
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
if ob and ob.mode == 'GPENCIL_WEIGHT':
@@ -1588,11 +1556,8 @@ class _defs_gpencil_weight:
row.prop(brush, "strength", slider=True)
row.prop(brush, "use_pressure_strength", text="")
- @ToolDef.from_fn
- def paint():
- def draw_settings(context, layout, tool):
- _defs_gpencil_weight.draw_settings_common(context, layout, tool)
-
+ @ToolDef.from_fn.with_args(draw_settings_common)
+ def paint(draw_settings_common):
return dict(
text="Draw",
icon="ops.gpencil.sculpt_weight",
@@ -1602,7 +1567,7 @@ class _defs_gpencil_weight:
dict(mode='WEIGHT', wait_for_input=False),
dict(type='EVT_TWEAK_A', value='ANY')),
),
- draw_settings=draw_settings,
+ draw_settings=draw_settings_common,
)