[Bf-blender-cvs] [bf6c5e935ec] greasepencil-object: WIP: More work in toolbars (still not working)
Antonio Vazquez
noreply at git.blender.org
Tue Jul 10 13:29:36 CEST 2018
Commit: bf6c5e935ecc44348246a75b51be7506fb7c22fa
Author: Antonio Vazquez
Date: Tue Jul 10 12:04:11 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rBbf6c5e935ecc44348246a75b51be7506fb7c22fa
WIP: More work in toolbars (still not working)
===================================================================
M release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 74c79f830e8..85aed73f312 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -951,12 +951,48 @@ class _defs_uv_select:
),
)
+class _defs_gpencil_paint:
+ def generate_from_brushes_gpencil(
+ context, *,
+ icon_prefix,
+ brush_test_attr,
+ brush_category_attr,
+ # brush_category_layout,
+ ):
+ # Categories
+ brush_categories = {}
+ for brush in context.blend_data.brushes:
+ if getattr(brush, brush_test_attr):
+ category = getattr(brush.gpencil_settings, brush_category_attr)
+ name = brush.name
+ brush_categories.setdefault(category, []).append(
+ ToolDef.from_dict(
+ dict(
+ text=name,
+ icon=icon_prefix + category.lower(),
+ data_block=name,
+ )
+ )
+ )
+
+ @staticmethod
+ def generate_from_brushes(context):
+ return _defs_gpencil_paint.generate_from_brushes_gpencil(
+ context,
+ icon_prefix="brush.gpencil.",
+ brush_test_attr="use_paint_grease_pencil",
+ brush_category_attr="grease_pencil_tool",
+ # brush_category_layout=(
+ # ('DRAW PEN',),
+ # ('DRAW INK',),
+ # )
+ )
class _defs_gpencil_sculpt:
@classmethod
def draw_settings_common(cls, context, layout, tool):
ob = context.active_object
- if ob and ob.mode in {'GPENCIL_SCULPT', 'GPENCIL_WEIGHT'}:
+ if ob and ob.mode == 'GPENCIL_SCULPT':
settings = context.tool_settings.gpencil_sculpt
brush = settings.brush
@@ -1111,6 +1147,37 @@ class _defs_gpencil_sculpt:
)
+class _defs_gpencil_weight:
+ @classmethod
+ def draw_settings_common(cls, context, layout, tool):
+ ob = context.active_object
+ if ob and ob.mode == 'GPENCIL_WEIGHT':
+ settings = context.tool_settings.gpencil_sculpt
+ brush = settings.brush
+
+ layout.prop(brush, "size", slider=True)
+
+ row = layout.row(align=True)
+ 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)
+
+ return dict(
+ text="Draw",
+ icon="ops.gpencil.sculpt_weight",
+ keymap=(
+ ("gpencil.brush_paint",
+ dict(mode='WEIGHT', wait_for_input=False),
+ dict(type='EVT_TWEAK_A', value='ANY')),
+ ),
+ draw_settings=draw_settings,
+ )
+
+
class IMAGE_PT_tools_active(ToolSelectPanelHelper, Panel):
bl_space_type = 'IMAGE_EDITOR'
bl_region_type = 'TOOLS'
@@ -1338,6 +1405,9 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel):
None,
_defs_weight_paint.gradient,
],
+ 'GPENCIL_PAINT': [
+ _defs_gpencil_paint.generate_from_brushes,
+ ],
'GPENCIL_SCULPT': [
_defs_gpencil_sculpt.smooth,
_defs_gpencil_sculpt.thickness,
@@ -1349,6 +1419,9 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel):
_defs_gpencil_sculpt.randomize,
_defs_gpencil_sculpt.clone,
],
+ 'GPENCIL_WEIGHT': [
+ _defs_gpencil_weight.paint,
+ ],
}
More information about the Bf-blender-cvs
mailing list