[Bf-blender-cvs] [9aef2d961da] blender2.8: UI: add weight paint brushes to toolbar

Campbell Barton noreply at git.blender.org
Mon Apr 30 16:08:23 CEST 2018


Commit: 9aef2d961da7668e6984719856832f6136a2a8ce
Author: Campbell Barton
Date:   Mon Apr 30 16:06:51 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB9aef2d961da7668e6984719856832f6136a2a8ce

UI: add weight paint brushes to toolbar

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

M	release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M	release/scripts/startup/bl_ui/space_topbar.py
M	release/scripts/startup/bl_ui/space_view3d_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 db22b02b41b..8aba8daa5f5 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -203,33 +203,6 @@ class _defs_view3d_select:
 # -----------------------------------------------------------------------------
 # Object Modes (named based on context.mode)
 
-class _defs_weight_paint:
-
-    @ToolDef.from_fn
-    def gradient_linear():
-        return dict(
-            text="Linear Gradient",
-            icon=None,
-            widget=None,
-            keymap=(
-                ("paint.weight_gradient", dict(type='LINEAR'),
-                 dict(type='EVT_TWEAK_A', value='ANY')),
-            ),
-        )
-
-    @ToolDef.from_fn
-    def gradient_radial():
-        return dict(
-            text="Radial Gradient",
-            icon=None,
-            widget=None,
-            keymap=(
-                ("paint.weight_gradient",
-                 dict(type='RADIAL'),
-                 dict(type='EVT_TWEAK_A', value='ANY')),
-            ),
-        )
-
 class _defs_edit_armature:
 
     @ToolDef.from_fn
@@ -571,13 +544,14 @@ class _defs_sculpt:
             )
         )
 
-class _defs_vertexpaint:
+
+class _defs_vertex_paint:
 
     @staticmethod
     def generate_from_brushes(context):
         return generate_from_brushes_ex(
             context,
-            icon_prefix="brush.vertexpaint.",
+            icon_prefix="brush.paint_vertex.",
             brush_test_attr="use_paint_vertex",
             brush_category_attr="vertex_tool",
             brush_category_layout=(
@@ -594,6 +568,54 @@ class _defs_vertexpaint:
         )
 
 
+class _defs_weight_paint:
+
+    @staticmethod
+    def generate_from_brushes(context):
+        return generate_from_brushes_ex(
+            context,
+            icon_prefix="brush.paint_weight.",
+            brush_test_attr="use_paint_weight",
+            brush_category_attr="vertex_tool",
+            brush_category_layout=(
+                ('MIX',),
+                ('BLUR', 'AVERAGE'),
+                ('SMEAR',),
+                (
+                    'ADD', 'SUB', 'MUL', 'LIGHTEN', 'DARKEN',
+                    'COLORDODGE', 'DIFFERENCE', 'SCREEN', 'HARDLIGHT',
+                    'OVERLAY', 'SOFTLIGHT', 'EXCLUSION', 'LUMINOCITY',
+                    'SATURATION', 'HUE',
+                ),
+            )
+        )
+
+    @ToolDef.from_fn
+    def gradient_linear():
+        return dict(
+            text="Linear Gradient",
+            icon=None,
+            widget=None,
+            keymap=(
+                ("paint.weight_gradient", dict(type='LINEAR'),
+                 dict(type='EVT_TWEAK_A', value='ANY')),
+            ),
+        )
+
+    @ToolDef.from_fn
+    def gradient_radial():
+        return dict(
+            text="Radial Gradient",
+            icon=None,
+            widget=None,
+            keymap=(
+                ("paint.weight_gradient",
+                 dict(type='RADIAL'),
+                 dict(type='EVT_TWEAK_A', value='ANY')),
+            ),
+        )
+
+
 class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'TOOLS'
@@ -653,15 +675,6 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel):
             *_tools_select,
             *_tools_transform,
         ],
-        'PAINT_WEIGHT': [
-            *_tools_select,
-
-            # TODO, override brush events
-            (
-                _defs_weight_paint.gradient_linear,
-                _defs_weight_paint.gradient_radial,
-            ),
-        ],
         'EDIT_ARMATURE': [
             *_tools_select,
             None,
@@ -735,7 +748,17 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel):
             _defs_sculpt.generate_from_brushes,
         ],
         'PAINT_VERTEX': [
-            _defs_vertexpaint.generate_from_brushes,
+            _defs_vertex_paint.generate_from_brushes,
+        ],
+        'PAINT_WEIGHT': [
+            *_tools_select,
+
+            # TODO, override brush events
+            _defs_weight_paint.generate_from_brushes,
+            (
+                _defs_weight_paint.gradient_linear,
+                _defs_weight_paint.gradient_radial,
+            ),
         ],
     }
 
diff --git a/release/scripts/startup/bl_ui/space_topbar.py b/release/scripts/startup/bl_ui/space_topbar.py
index 9c0acfd7a6a..458dc571bbb 100644
--- a/release/scripts/startup/bl_ui/space_topbar.py
+++ b/release/scripts/startup/bl_ui/space_topbar.py
@@ -150,7 +150,8 @@ class TOPBAR_HT_lower_bar(Header):
             layout.popover_group(space_type='VIEW_3D', region_type='TOOLS', context=".dummy", category="")
             layout.popover_group(space_type='VIEW_3D', region_type='TOOLS', context=".vertexpaint", category="")
         elif mode == 'PAINT_WEIGHT':
-            layout.popover_group(space_type='VIEW_3D', region_type='TOOLS', context=".dummy", category="")
+            layout.popover_group(space_type='VIEW_3D', region_type='TOOLS', context="", category="")
+            layout.popover_group(space_type='VIEW_3D', region_type='TOOLS', context=".weightpaint", category="")
         elif mode == 'PAINT_TEXTURE':
             layout.popover_group(space_type='VIEW_3D', region_type='TOOLS', context="", category="")
 
@@ -203,6 +204,18 @@ class _draw_left_context_mode:
         UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
         UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
 
+    def PAINT_WEIGHT(context, layout):
+        brush = context.tool_settings.weight_paint.brush
+        if brush is None:
+            return
+
+        from .properties_paint_common import UnifiedPaintPanel
+
+        layout.prop(brush, "weight")
+        UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
+        UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
+
+
 class TOPBAR_PT_redo(Panel):
     bl_label = "Redo"
     bl_space_type = 'TOPBAR'
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 577cd465ff1..5e39be27021 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -1050,7 +1050,7 @@ class VIEW3D_PT_tools_brush_appearance(Panel, View3DPaintPanel):
 
 class VIEW3D_PT_tools_weightpaint_symmetry(Panel, View3DPaintPanel):
     bl_category = "Tools"
-    bl_context = "weightpaint"
+    bl_context = ".weightpaint"
     bl_options = {'DEFAULT_CLOSED'}
     bl_label = "Symmetry"
 
@@ -1063,7 +1063,7 @@ class VIEW3D_PT_tools_weightpaint_symmetry(Panel, View3DPaintPanel):
 
 class VIEW3D_PT_tools_weightpaint_options(Panel, View3DPaintPanel):
     bl_category = "Options"
-    bl_context = "weightpaint"
+    bl_context = ".weightpaint"
     bl_label = "Options"
 
     def draw(self, context):



More information about the Bf-blender-cvs mailing list