UI: move gpencil tool-draw code to topbar
The grease pencil UI was showing twice in tool properties space. Move to top-bar because this UI is meant as quick convenience access which is expanded on in the tool properties editor.
This commit is contained in:
@@ -1328,56 +1328,9 @@ class _defs_gpencil_paint:
|
|||||||
|
|
||||||
row.prop(gp_settings, "use_material_pin", text="")
|
row.prop(gp_settings, "use_material_pin", text="")
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def draw_settings_common(context, layout, tool):
|
|
||||||
ob = context.active_object
|
|
||||||
if ob and ob.mode == 'GPENCIL_PAINT':
|
|
||||||
brush = context.active_gpencil_brush
|
|
||||||
if brush is None:
|
|
||||||
return
|
|
||||||
gp_settings = brush.gpencil_settings
|
|
||||||
|
|
||||||
row = layout.row(align=True)
|
|
||||||
ts = context.scene.tool_settings
|
|
||||||
settings = ts.gpencil_paint
|
|
||||||
row.template_ID_preview(settings, "brush", rows=3, cols=8, hide_buttons=True)
|
|
||||||
|
|
||||||
if brush.gpencil_tool == 'ERASE':
|
|
||||||
row = layout.row(align=True)
|
|
||||||
row.prop(brush, "size", text="Radius")
|
|
||||||
row.prop(gp_settings, "use_pressure", text="", icon='STYLUS_PRESSURE')
|
|
||||||
if gp_settings.eraser_mode == 'SOFT':
|
|
||||||
row = layout.row(align=True)
|
|
||||||
row.prop(gp_settings, "pen_strength", slider=True)
|
|
||||||
row.prop(gp_settings, "use_strength_pressure", text="", icon='STYLUS_PRESSURE')
|
|
||||||
elif brush.gpencil_tool == 'FILL':
|
|
||||||
row = layout.row()
|
|
||||||
row.prop(gp_settings, "fill_leak", text="Leak Size")
|
|
||||||
row.prop(brush, "size", text="Thickness")
|
|
||||||
row.prop(gp_settings, "fill_simplify_level", text="Simplify")
|
|
||||||
|
|
||||||
_defs_gpencil_paint.draw_color_selector(context, layout)
|
|
||||||
|
|
||||||
row = layout.row(align=True)
|
|
||||||
row.prop(gp_settings, "fill_draw_mode", text="")
|
|
||||||
row.prop(gp_settings, "show_fill_boundary", text="", icon='GRID')
|
|
||||||
|
|
||||||
else: # bgpsettings.tool == 'DRAW':
|
|
||||||
row = layout.row(align=True)
|
|
||||||
row.prop(brush, "size", text="Radius")
|
|
||||||
row.prop(gp_settings, "use_pressure", text="", icon='STYLUS_PRESSURE')
|
|
||||||
row = layout.row(align=True)
|
|
||||||
row.prop(gp_settings, "pen_strength", slider=True)
|
|
||||||
row.prop(gp_settings, "use_strength_pressure", text="", icon='STYLUS_PRESSURE')
|
|
||||||
|
|
||||||
_defs_gpencil_paint.draw_color_selector(context, layout)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generate_from_brushes(context):
|
def generate_from_brushes(context):
|
||||||
|
|
||||||
def draw_settings(context, layout, tool):
|
|
||||||
_defs_gpencil_paint.draw_settings_common(context, layout, tool)
|
|
||||||
|
|
||||||
return generate_from_brushes_tool_slots_ex(
|
return generate_from_brushes_tool_slots_ex(
|
||||||
context, context.tool_settings.gpencil_paint,
|
context, context.tool_settings.gpencil_paint,
|
||||||
icon_prefix="brush.gpencil_draw.",
|
icon_prefix="brush.gpencil_draw.",
|
||||||
@@ -1389,7 +1342,6 @@ class _defs_gpencil_paint:
|
|||||||
),
|
),
|
||||||
tooldef_keywords=dict(
|
tooldef_keywords=dict(
|
||||||
operator="gpencil.draw",
|
operator="gpencil.draw",
|
||||||
draw_settings=draw_settings,
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -2044,6 +1996,7 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel):
|
|||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class TOPBAR_PT_annotation_layers(Panel, AnnotationDataPanel):
|
class TOPBAR_PT_annotation_layers(Panel, AnnotationDataPanel):
|
||||||
bl_space_type = 'VIEW_3D'
|
bl_space_type = 'VIEW_3D'
|
||||||
bl_region_type = 'HEADER'
|
bl_region_type = 'HEADER'
|
||||||
|
|||||||
@@ -241,6 +241,7 @@ class _draw_left_context_mode:
|
|||||||
UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
|
UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
|
||||||
layout.prop(brush, "direction", text="", expand=True)
|
layout.prop(brush, "direction", text="", expand=True)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
def PAINT_TEXTURE(context, layout, tool):
|
def PAINT_TEXTURE(context, layout, tool):
|
||||||
if (tool is None) or (not tool.has_datablock):
|
if (tool is None) or (not tool.has_datablock):
|
||||||
return
|
return
|
||||||
@@ -258,6 +259,7 @@ class _draw_left_context_mode:
|
|||||||
UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
|
UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
|
||||||
UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
|
UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
def PAINT_VERTEX(context, layout, tool):
|
def PAINT_VERTEX(context, layout, tool):
|
||||||
if (tool is None) or (not tool.has_datablock):
|
if (tool is None) or (not tool.has_datablock):
|
||||||
return
|
return
|
||||||
@@ -275,6 +277,7 @@ class _draw_left_context_mode:
|
|||||||
UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
|
UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
|
||||||
UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
|
UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
def PAINT_WEIGHT(context, layout, tool):
|
def PAINT_WEIGHT(context, layout, tool):
|
||||||
if (tool is None) or (not tool.has_datablock):
|
if (tool is None) or (not tool.has_datablock):
|
||||||
return
|
return
|
||||||
@@ -291,6 +294,80 @@ class _draw_left_context_mode:
|
|||||||
UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
|
UnifiedPaintPanel.prop_unified_size(layout, context, brush, "size", slider=True, text="Radius")
|
||||||
UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
|
UnifiedPaintPanel.prop_unified_strength(layout, context, brush, "strength", slider=True, text="Strength")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def GPENCIL_PAINT(context, layout, tool):
|
||||||
|
|
||||||
|
if (tool is None) or (not tool.has_datablock):
|
||||||
|
return
|
||||||
|
|
||||||
|
paint = context.tool_settings.gpencil_paint
|
||||||
|
brush = paint.brush
|
||||||
|
if brush is None:
|
||||||
|
return
|
||||||
|
|
||||||
|
gp_settings = brush.gpencil_settings
|
||||||
|
|
||||||
|
def draw_color_selector():
|
||||||
|
ma = gp_settings.material
|
||||||
|
row = layout.row(align=True)
|
||||||
|
|
||||||
|
icon_id = 0
|
||||||
|
if ma:
|
||||||
|
icon_id = ma.id_data.preview.icon_id
|
||||||
|
txt_ma = ma.name
|
||||||
|
maxw = 25
|
||||||
|
if len(txt_ma) > maxw:
|
||||||
|
txt_ma = txt_ma[:maxw - 5] + '..' + txt_ma[-3:]
|
||||||
|
else:
|
||||||
|
txt_ma = ""
|
||||||
|
|
||||||
|
row.label(text="Material:")
|
||||||
|
sub = row.row()
|
||||||
|
sub.ui_units_x = 8
|
||||||
|
sub.popover(
|
||||||
|
panel="TOPBAR_PT_gpencil_materials",
|
||||||
|
text=txt_ma,
|
||||||
|
icon_value=icon_id,
|
||||||
|
)
|
||||||
|
|
||||||
|
row.prop(gp_settings, "use_material_pin", text="")
|
||||||
|
|
||||||
|
row = layout.row(align=True)
|
||||||
|
ts = context.scene.tool_settings
|
||||||
|
settings = ts.gpencil_paint
|
||||||
|
row.template_ID_preview(settings, "brush", rows=3, cols=8, hide_buttons=True)
|
||||||
|
|
||||||
|
if brush.gpencil_tool == 'ERASE':
|
||||||
|
row = layout.row(align=True)
|
||||||
|
row.prop(brush, "size", text="Radius")
|
||||||
|
row.prop(gp_settings, "use_pressure", text="", icon='STYLUS_PRESSURE')
|
||||||
|
if gp_settings.eraser_mode == 'SOFT':
|
||||||
|
row = layout.row(align=True)
|
||||||
|
row.prop(gp_settings, "pen_strength", slider=True)
|
||||||
|
row.prop(gp_settings, "use_strength_pressure", text="", icon='STYLUS_PRESSURE')
|
||||||
|
elif brush.gpencil_tool == 'FILL':
|
||||||
|
row = layout.row()
|
||||||
|
row.prop(gp_settings, "fill_leak", text="Leak Size")
|
||||||
|
row.prop(brush, "size", text="Thickness")
|
||||||
|
row.prop(gp_settings, "fill_simplify_level", text="Simplify")
|
||||||
|
|
||||||
|
draw_color_selector()
|
||||||
|
|
||||||
|
row = layout.row(align=True)
|
||||||
|
row.prop(gp_settings, "fill_draw_mode", text="")
|
||||||
|
row.prop(gp_settings, "show_fill_boundary", text="", icon='GRID')
|
||||||
|
|
||||||
|
else: # bgpsettings.tool == 'DRAW':
|
||||||
|
row = layout.row(align=True)
|
||||||
|
row.prop(brush, "size", text="Radius")
|
||||||
|
row.prop(gp_settings, "use_pressure", text="", icon='STYLUS_PRESSURE')
|
||||||
|
row = layout.row(align=True)
|
||||||
|
row.prop(gp_settings, "pen_strength", slider=True)
|
||||||
|
row.prop(gp_settings, "use_strength_pressure", text="", icon='STYLUS_PRESSURE')
|
||||||
|
|
||||||
|
draw_color_selector()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
def PARTICLE(context, layout, tool):
|
def PARTICLE(context, layout, tool):
|
||||||
# See: 'VIEW3D_PT_tools_brush', basically a duplicate
|
# See: 'VIEW3D_PT_tools_brush', basically a duplicate
|
||||||
settings = context.tool_settings.particle_edit
|
settings = context.tool_settings.particle_edit
|
||||||
@@ -323,6 +400,7 @@ class _draw_left_context_mode:
|
|||||||
sub.prop(settings, "emitter_distance", text="Distance")
|
sub.prop(settings, "emitter_distance", text="Distance")
|
||||||
|
|
||||||
class IMAGE_EDITOR:
|
class IMAGE_EDITOR:
|
||||||
|
@staticmethod
|
||||||
def VIEW(context, layout, tool):
|
def VIEW(context, layout, tool):
|
||||||
tool_settings = context.tool_settings
|
tool_settings = context.tool_settings
|
||||||
if tool_settings.use_uv_sculpt:
|
if tool_settings.use_uv_sculpt:
|
||||||
@@ -340,6 +418,7 @@ class _draw_left_context_mode:
|
|||||||
UnifiedPaintPanel.prop_unified_strength(row, context, brush, "strength", slider=True, text="Strength")
|
UnifiedPaintPanel.prop_unified_strength(row, context, brush, "strength", slider=True, text="Strength")
|
||||||
UnifiedPaintPanel.prop_unified_strength(row, context, brush, "use_pressure_strength")
|
UnifiedPaintPanel.prop_unified_strength(row, context, brush, "use_pressure_strength")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
def PAINT(context, layout, tool):
|
def PAINT(context, layout, tool):
|
||||||
if (tool is None) or (not tool.has_datablock):
|
if (tool is None) or (not tool.has_datablock):
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user