Sculpt/Paint UI: Add a new menu for brush options.
For vertex/weight/texture paint, this has only the flags for using unified size/strength. (Addresses TODO in code, before only sculpt menu had these settings.) For sculpt, moved the brush-related settings from the sculpt menu to the brush menu. Note that these menus are still very out of date (missing lots of options), will address that in a different commit.
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
from bpy.types import Header, Menu, Panel
|
||||
from .properties_paint_common import UnifiedPaintPanel
|
||||
|
||||
|
||||
class VIEW3D_HT_header(Header):
|
||||
@@ -51,6 +52,8 @@ class VIEW3D_HT_header(Header):
|
||||
elif obj:
|
||||
if mode_string not in {'PAINT_TEXTURE'}:
|
||||
sub.menu("VIEW3D_MT_%s" % mode_string.lower())
|
||||
if mode_string in {'SCULPT', 'PAINT_VERTEX', 'PAINT_WEIGHT', 'PAINT_TEXTURE'}:
|
||||
sub.menu("VIEW3D_MT_brush")
|
||||
else:
|
||||
sub.menu("VIEW3D_MT_object")
|
||||
|
||||
@@ -1013,6 +1016,45 @@ class VIEW3D_MT_object_game(Menu):
|
||||
|
||||
layout.operator("object.game_property_clear")
|
||||
|
||||
|
||||
# ********** Brush menu **********
|
||||
class VIEW3D_MT_brush(Menu):
|
||||
bl_label = "Brush"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
settings = UnifiedPaintPanel.paint_settings(context)
|
||||
brush = settings.brush
|
||||
|
||||
ups = context.tool_settings.unified_paint_settings
|
||||
layout.prop(ups, "use_unified_size", text="Unified Size")
|
||||
layout.prop(ups, "use_unified_strength", text="Unified Strength")
|
||||
|
||||
# skip if no active brush
|
||||
if not brush:
|
||||
return
|
||||
|
||||
# TODO: still missing a lot of brush options here
|
||||
|
||||
# sculpt options
|
||||
if context.sculpt_object:
|
||||
|
||||
sculpt_tool = brush.sculpt_tool
|
||||
|
||||
layout.separator()
|
||||
layout.operator_menu_enum("brush.curve_preset", "shape", text='Curve Preset')
|
||||
layout.separator()
|
||||
|
||||
if sculpt_tool != 'GRAB':
|
||||
layout.prop_menu_enum(brush, "stroke_method")
|
||||
|
||||
if sculpt_tool in {'DRAW', 'PINCH', 'INFLATE', 'LAYER', 'CLAY'}:
|
||||
layout.prop_menu_enum(brush, "direction")
|
||||
|
||||
if sculpt_tool == 'LAYER':
|
||||
layout.prop(brush, "use_persistent")
|
||||
layout.operator("sculpt.set_persistent_base")
|
||||
|
||||
# ********** Vertex paint menu **********
|
||||
|
||||
@@ -1116,7 +1158,6 @@ class VIEW3D_MT_sculpt(Menu):
|
||||
|
||||
toolsettings = context.tool_settings
|
||||
sculpt = toolsettings.sculpt
|
||||
brush = toolsettings.sculpt.brush
|
||||
|
||||
layout.operator("ed.undo")
|
||||
layout.operator("ed.redo")
|
||||
@@ -1130,22 +1171,6 @@ class VIEW3D_MT_sculpt(Menu):
|
||||
layout.prop(sculpt, "lock_x")
|
||||
layout.prop(sculpt, "lock_y")
|
||||
layout.prop(sculpt, "lock_z")
|
||||
layout.separator()
|
||||
layout.operator_menu_enum("brush.curve_preset", "shape")
|
||||
layout.separator()
|
||||
|
||||
if brush is not None: # unlikely but can happen
|
||||
sculpt_tool = brush.sculpt_tool
|
||||
|
||||
if sculpt_tool != 'GRAB':
|
||||
layout.prop_menu_enum(brush, "stroke_method")
|
||||
|
||||
if sculpt_tool in {'DRAW', 'PINCH', 'INFLATE', 'LAYER', 'CLAY'}:
|
||||
layout.prop_menu_enum(brush, "direction")
|
||||
|
||||
if sculpt_tool == 'LAYER':
|
||||
layout.prop(brush, "use_persistent")
|
||||
layout.operator("sculpt.set_persistent_base")
|
||||
|
||||
layout.separator()
|
||||
layout.prop(sculpt, "use_threaded", text="Threaded Sculpt")
|
||||
@@ -1153,11 +1178,6 @@ class VIEW3D_MT_sculpt(Menu):
|
||||
layout.prop(sculpt, "show_brush")
|
||||
layout.prop(sculpt, "use_deform_only")
|
||||
|
||||
# TODO, make available from paint menu!
|
||||
ups = context.tool_settings.unified_paint_settings
|
||||
layout.separator()
|
||||
layout.prop(ups, "use_unified_size")
|
||||
layout.prop(ups, "use_unified_strength")
|
||||
|
||||
# ********** Particle menu **********
|
||||
|
||||
|
||||
Reference in New Issue
Block a user