Cleanup: pep8, unused vars, line length

This commit is contained in:
2019-12-16 14:29:03 +11:00
parent 31ac2e292e
commit 165afb3ad0
17 changed files with 334 additions and 87 deletions

View File

@@ -241,7 +241,8 @@ class ConnectRigidBodies(Operator):
description="Pattern used to connect objects", description="Pattern used to connect objects",
items=( items=(
('SELECTED_TO_ACTIVE', "Selected to Active", "Connect selected objects to the active object"), ('SELECTED_TO_ACTIVE', "Selected to Active", "Connect selected objects to the active object"),
('CHAIN_DISTANCE', "Chain by Distance", "Connect objects as a chain based on distance, starting at the active object"), ('CHAIN_DISTANCE', "Chain by Distance", "Connect objects as a chain based on distance, "
"starting at the active object"),
), ),
default='SELECTED_TO_ACTIVE', default='SELECTED_TO_ACTIVE',
) )

View File

@@ -283,7 +283,16 @@ def mergeUvIslands(islandList):
# UV Edge list used for intersections as well as unique points. # UV Edge list used for intersections as well as unique points.
edges, uniqueEdgePoints = island2Edge(islandList[islandIdx]) edges, uniqueEdgePoints = island2Edge(islandList[islandIdx])
decoratedIslandList.append([islandList[islandIdx], totFaceArea, efficiency, islandBoundsArea, w, h, edges, uniqueEdgePoints]) decoratedIslandList.append([
islandList[islandIdx],
totFaceArea,
efficiency,
islandBoundsArea,
w,
h,
edges,
uniqueEdgePoints,
])
# Sort by island bounding box area, smallest face area first. # Sort by island bounding box area, smallest face area first.
# no.. chance that to most simple edge loop first. # no.. chance that to most simple edge loop first.
@@ -389,7 +398,8 @@ def mergeUvIslands(islandList):
# testcount+=1 # testcount+=1
# print 'Testing intersect' # print 'Testing intersect'
Intersect = islandIntersectUvIsland(sourceIsland, targetIsland, Vector((boxLeft, boxBottom))) Intersect = islandIntersectUvIsland(
sourceIsland, targetIsland, Vector((boxLeft, boxBottom)))
# print 'Done', Intersect # print 'Done', Intersect
if Intersect == 1: # Line intersect, don't bother with this any more if Intersect == 1: # Line intersect, don't bother with this any more
pass pass

View File

@@ -176,7 +176,14 @@ class VertexPaintDirt(Operator):
obj = context.object obj = context.object
mesh = obj.data mesh = obj.data
ret = applyVertexDirt(mesh, self.blur_iterations, self.blur_strength, self.dirt_angle, self.clean_angle, self.dirt_only) ret = applyVertexDirt(
mesh,
self.blur_iterations,
self.blur_strength,
self.dirt_angle,
self.clean_angle,
self.dirt_only,
)
return ret return ret

View File

@@ -2414,6 +2414,7 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel):
row.prop(md, "layer_pass", text="Pass") row.prop(md, "layer_pass", text="Pass")
row.prop(md, "invert_layer_pass", text="", icon='ARROW_LEFTRIGHT') row.prop(md, "invert_layer_pass", text="", icon='ARROW_LEFTRIGHT')
classes = ( classes = (
DATA_PT_modifiers, DATA_PT_modifiers,
DATA_PT_gpencil_modifiers, DATA_PT_gpencil_modifiers,

View File

@@ -160,6 +160,7 @@ class GreasePencilSculptOptionsPanel:
layout.prop(settings, "use_edit_uv", text="Affect UV") layout.prop(settings, "use_edit_uv", text="Affect UV")
# GP Object Tool Settings # GP Object Tool Settings
class GreasePencilDisplayPanel: class GreasePencilDisplayPanel:
bl_label = "Brush Tip" bl_label = "Brush Tip"
@@ -175,9 +176,11 @@ class GreasePencilDisplayPanel:
else: else:
# GP Sculpt and Weight Paint always have Brush Tip panel. # GP Sculpt and Weight Paint always have Brush Tip panel.
return True return True
return False
def draw_header(self, context): def draw_header(self, context):
if self.is_popover: return if self.is_popover:
return
if context.mode == 'PAINT_GPENCIL': if context.mode == 'PAINT_GPENCIL':
brush = context.tool_settings.gpencil_paint.brush brush = context.tool_settings.gpencil_paint.brush
@@ -506,7 +509,7 @@ class GPENCIL_MT_move_to_layer(Menu):
gpl_active = context.active_gpencil_layer gpl_active = context.active_gpencil_layer
tot_layers = len(gpd.layers) tot_layers = len(gpd.layers)
i = tot_layers - 1 i = tot_layers - 1
while(i >= 0): while i >= 0:
gpl = gpd.layers[i] gpl = gpd.layers[i]
if gpl.info == gpl_active.info: if gpl.info == gpl_active.info:
icon = 'GREASEPENCIL' icon = 'GREASEPENCIL'
@@ -716,12 +719,11 @@ class GreasePencilToolsPanel:
bl_options = {'DEFAULT_CLOSED'} bl_options = {'DEFAULT_CLOSED'}
@classmethod @classmethod
def poll(cls, context): def poll(cls, _context):
# XXX - disabled in 2.8 branch. # XXX - disabled in 2.8 branch.
# return (context.gpencil_data is not None)
return False return False
return (context.gpencil_data is not None)
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout

View File

@@ -27,7 +27,8 @@ class UnifiedPaintPanel:
@staticmethod @staticmethod
def get_brush_mode(context): def get_brush_mode(context):
"""Get the correct mode for this context. For any context where this returns None, no brush options should be displayed.""" """ Get the correct mode for this context. For any context where this returns None,
no brush options should be displayed."""
if context.mode == 'PARTICLE': if context.mode == 'PARTICLE':
# Particle brush settings currently completely do their own thing. # Particle brush settings currently completely do their own thing.
@@ -61,6 +62,7 @@ class UnifiedPaintPanel:
else: else:
return None return None
return context.mode return context.mode
return None
@staticmethod @staticmethod
def paint_settings(context): def paint_settings(context):
@@ -89,22 +91,35 @@ class UnifiedPaintPanel:
return tool_settings.gpencil_paint return tool_settings.gpencil_paint
elif mode in {'SCULPT_GPENCIL', 'WEIGHT_GPENCIL'}: elif mode in {'SCULPT_GPENCIL', 'WEIGHT_GPENCIL'}:
return tool_settings.gpencil_sculpt return tool_settings.gpencil_sculpt
return False
@staticmethod @staticmethod
def prop_unified(layout, context, brush, prop_name, unified_name=None, pressure_name=None, icon='NONE', text=None, slider=False, display_unified_toggle=True): def prop_unified(
""" Generalized way of adding brush options to the UI, along with their pen pressure setting and global toggle, if they exist """ layout,
context,
brush,
prop_name,
unified_name=None,
pressure_name=None,
icon='NONE',
text=None,
slider=False,
display_unified_toggle=True,
):
""" Generalized way of adding brush options to the UI,
along with their pen pressure setting and global toggle, if they exist. """
row = layout.row(align=True) row = layout.row(align=True)
ups = context.tool_settings.unified_paint_settings ups = context.tool_settings.unified_paint_settings
prop_owner = brush prop_owner = brush
if(unified_name and getattr(ups, unified_name) and display_unified_toggle): if unified_name and getattr(ups, unified_name) and display_unified_toggle:
prop_owner = ups prop_owner = ups
row.prop(prop_owner, prop_name, icon=icon, text=text, slider=slider) row.prop(prop_owner, prop_name, icon=icon, text=text, slider=slider)
if(pressure_name): if pressure_name:
row.prop(brush, pressure_name, text="") row.prop(brush, pressure_name, text="")
if(unified_name and display_unified_toggle): if unified_name and display_unified_toggle:
row.prop(ups, unified_name, text="", icon="WORLD") row.prop(ups, unified_name, text="", icon="WORLD")
return row return row
@@ -138,7 +153,7 @@ class BrushSelectPanel(BrushPanel):
brush = settings.brush brush = settings.brush
row = layout.row() row = layout.row()
large_preview=True large_preview = True
if large_preview: if large_preview:
row.column().template_ID_preview(settings, "brush", new="brush.add", rows=3, cols=8, hide_buttons=False) row.column().template_ID_preview(settings, "brush", new="brush.add", rows=3, cols=8, hide_buttons=False)
else: else:
@@ -170,6 +185,7 @@ class ColorPalettePanel(BrushPanel):
elif context.vertex_paint_object: elif context.vertex_paint_object:
capabilities = brush.vertex_paint_capabilities capabilities = brush.vertex_paint_capabilities
return capabilities.has_color return capabilities.has_color
return False
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
@@ -195,6 +211,7 @@ class ClonePanel(BrushPanel):
if mode in {'PAINT_TEXTURE', 'PAINT_2D'}: if mode in {'PAINT_TEXTURE', 'PAINT_2D'}:
brush = settings.brush brush = settings.brush
return brush.image_tool == 'CLONE' return brush.image_tool == 'CLONE'
return False
def draw_header(self, context): def draw_header(self, context):
settings = self.paint_settings(context) settings = self.paint_settings(context)
@@ -203,7 +220,6 @@ class ClonePanel(BrushPanel):
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
settings = self.paint_settings(context) settings = self.paint_settings(context)
brush = settings.brush
layout.active = settings.use_clone_layer layout.active = settings.use_clone_layer
@@ -213,16 +229,22 @@ class ClonePanel(BrushPanel):
if settings.mode == 'MATERIAL': if settings.mode == 'MATERIAL':
if len(ob.material_slots) > 1: if len(ob.material_slots) > 1:
col.label(text="Materials") col.label(text="Materials")
col.template_list("MATERIAL_UL_matslots", "", col.template_list(
ob, "material_slots", "MATERIAL_UL_matslots", "",
ob, "active_material_index", rows=2) ob, "material_slots",
ob, "active_material_index",
rows=2,
)
mat = ob.active_material mat = ob.active_material
if mat: if mat:
col.label(text="Source Clone Slot") col.label(text="Source Clone Slot")
col.template_list("TEXTURE_UL_texpaintslots", "", col.template_list(
mat, "texture_paint_images", "TEXTURE_UL_texpaintslots", "",
mat, "paint_clone_slot", rows=2) mat, "texture_paint_images",
mat, "paint_clone_slot",
rows=2,
)
elif settings.mode == 'IMAGE': elif settings.mode == 'IMAGE':
mesh = ob.data mesh = ob.data
@@ -286,7 +308,6 @@ class StrokePanel(BrushPanel):
layout.use_property_split = True layout.use_property_split = True
layout.use_property_decorate = False layout.use_property_decorate = False
tool_settings = context.tool_settings
mode = self.get_brush_mode(context) mode = self.get_brush_mode(context)
settings = self.paint_settings(context) settings = self.paint_settings(context)
brush = settings.brush brush = settings.brush
@@ -356,6 +377,7 @@ class SmoothStrokePanel(BrushPanel):
brush = settings.brush brush = settings.brush
if brush.brush_capabilities.has_smooth_stroke: if brush.brush_capabilities.has_smooth_stroke:
return True return True
return False
def draw_header(self, context): def draw_header(self, context):
settings = self.paint_settings(context) settings = self.paint_settings(context)
@@ -497,7 +519,8 @@ class VIEW3D_MT_tools_projectpaint_clone(Menu):
def brush_settings(layout, context, brush, popover=False): def brush_settings(layout, context, brush, popover=False):
""" Draw simple brush settings for Sculpt, Texture/Vertex/Weight Paint modes, or skip certain settings for the popover """ """ Draw simple brush settings for Sculpt,
Texture/Vertex/Weight Paint modes, or skip certain settings for the popover """
mode = UnifiedPaintPanel.get_brush_mode(context) mode = UnifiedPaintPanel.get_brush_mode(context)
@@ -513,7 +536,14 @@ def brush_settings(layout, context, brush, popover=False):
# auto_smooth_factor and use_inverse_smooth_pressure # auto_smooth_factor and use_inverse_smooth_pressure
if capabilities.has_auto_smooth: if capabilities.has_auto_smooth:
UnifiedPaintPanel.prop_unified(layout, context, brush, "auto_smooth_factor", pressure_name="use_inverse_smooth_pressure", slider=True) UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"auto_smooth_factor",
pressure_name="use_inverse_smooth_pressure",
slider=True,
)
# topology_rake_factor # topology_rake_factor
if ( if (
@@ -540,7 +570,14 @@ def brush_settings(layout, context, brush, popover=False):
# plane_offset, use_offset_pressure, use_plane_trim, plane_trim # plane_offset, use_offset_pressure, use_plane_trim, plane_trim
if capabilities.has_plane_offset: if capabilities.has_plane_offset:
layout.separator() layout.separator()
UnifiedPaintPanel.prop_unified(layout, context, brush, "plane_offset", pressure_name="use_offset_pressure", slider=True) UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"plane_offset",
pressure_name="use_offset_pressure",
slider=True,
)
layout.prop(brush, "use_plane_trim", text="Plane Trim") layout.prop(brush, "use_plane_trim", text="Plane Trim")
row = layout.row() row = layout.row()
@@ -581,11 +618,11 @@ def brush_settings(layout, context, brush, popover=False):
if brush.sculpt_tool == 'SCRAPE': if brush.sculpt_tool == 'SCRAPE':
row = layout.row() row = layout.row()
row.prop(brush, "invert_to_scrape_fill", text = "Invert to Fill") row.prop(brush, "invert_to_scrape_fill", text="Invert to Fill")
if brush.sculpt_tool == 'FILL': if brush.sculpt_tool == 'FILL':
row = layout.row() row = layout.row()
row.prop(brush, "invert_to_scrape_fill", text = "Invert to Scrape") row.prop(brush, "invert_to_scrape_fill", text="Invert to Scrape")
if brush.sculpt_tool == 'GRAB': if brush.sculpt_tool == 'GRAB':
layout.prop(brush, "use_grab_active_vertex") layout.prop(brush, "use_grab_active_vertex")
@@ -599,14 +636,16 @@ def brush_settings(layout, context, brush, popover=False):
if brush.sculpt_tool == 'MASK': if brush.sculpt_tool == 'MASK':
layout.row().prop(brush, "mask_tool", expand=True) layout.row().prop(brush, "mask_tool", expand=True)
# 3D and 2D Texture Paint Mode # # 3D and 2D Texture Paint Mode.
elif mode in {'PAINT_TEXTURE', 'PAINT_2D'}: elif mode in {'PAINT_TEXTURE', 'PAINT_2D'}:
capabilities = brush.image_paint_capabilities capabilities = brush.image_paint_capabilities
if brush.image_tool == 'FILL': if brush.image_tool == 'FILL':
if(brush.color_type == 'COLOR' and mode=='PAINT_2D'): # For some reason fill threshold only appears to be implemented in 2D paint. # For some reason fill threshold only appears to be implemented in 2D paint.
layout.prop(brush, "fill_threshold", text="Fill Threshold", slider=True) if brush.color_type == 'COLOR':
if(brush.color_type == 'GRADIENT'): if mode == 'PAINT_2D':
layout.prop(brush, "fill_threshold", text="Fill Threshold", slider=True)
elif brush.color_type == 'GRADIENT':
layout.row().prop(brush, "gradient_fill_mode", expand=True) layout.row().prop(brush, "gradient_fill_mode", expand=True)
@@ -654,7 +693,8 @@ def brush_shared_settings(layout, context, brush, popover=False):
size = True size = True
weight = brush.weight_paint_capabilities.has_weight weight = brush.weight_paint_capabilities.has_weight
strength = strength_pressure = True strength = strength_pressure = True
if(brush.weight_tool=='DRAW'): # Only draw blend mode for the Draw tool, because for other tools it is pointless. D5928#137944 # Only draw blend mode for the Draw tool, because for other tools it is pointless. D5928#137944
if brush.weight_tool == 'DRAW':
blend_mode = True blend_mode = True
# UV Sculpt # # UV Sculpt #
@@ -670,7 +710,14 @@ def brush_shared_settings(layout, context, brush, popover=False):
layout.separator() layout.separator()
if weight: if weight:
UnifiedPaintPanel.prop_unified(layout, context, brush, "weight", unified_name="use_unified_weight", slider=True) UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"weight",
unified_name="use_unified_weight",
slider=True,
)
size_owner = ups if ups.use_unified_size else brush size_owner = ups if ups.use_unified_size else brush
size_prop = "size" size_prop = "size"
@@ -678,14 +725,31 @@ def brush_shared_settings(layout, context, brush, popover=False):
size_prop = "unprojected_radius" size_prop = "unprojected_radius"
if size or size_mode: if size or size_mode:
if size: if size:
UnifiedPaintPanel.prop_unified(layout, context, brush, size_prop, unified_name="use_unified_size", pressure_name="use_pressure_size", text="Radius", slider=True) UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
size_prop,
unified_name="use_unified_size",
pressure_name="use_pressure_size",
text="Radius",
slider=True,
)
if size_mode: if size_mode:
layout.row().prop(size_owner, "use_locked_size", expand=True) layout.row().prop(size_owner, "use_locked_size", expand=True)
layout.separator() layout.separator()
if strength: if strength:
pressure_name = "use_pressure_strength" if strength_pressure else None pressure_name = "use_pressure_strength" if strength_pressure else None
UnifiedPaintPanel.prop_unified(layout, context, brush, "strength", unified_name="use_unified_strength", pressure_name=pressure_name, slider=True) UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"strength",
unified_name="use_unified_strength",
pressure_name=pressure_name,
slider=True,
)
layout.separator() layout.separator()
if direction: if direction:
@@ -722,7 +786,7 @@ def brush_settings_advanced(layout, context, brush, popover=False):
layout.prop(brush, "use_original_plane") layout.prop(brush, "use_original_plane")
layout.separator() layout.separator()
# 3D and 2D Texture Paint # # 3D and 2D Texture Paint.
elif mode in {'PAINT_TEXTURE', 'PAINT_2D'}: elif mode in {'PAINT_TEXTURE', 'PAINT_2D'}:
capabilities = brush.image_paint_capabilities capabilities = brush.image_paint_capabilities
use_accumulate = capabilities.has_accumulate use_accumulate = capabilities.has_accumulate
@@ -762,9 +826,7 @@ def brush_settings_advanced(layout, context, brush, popover=False):
use_accumulate = True use_accumulate = True
use_frontface = True use_frontface = True
### Draw shared settings. ### # Draw shared settings.
ups = context.scene.tool_settings.unified_paint_settings
if use_accumulate: if use_accumulate:
layout.prop(brush, "use_accumulate") layout.prop(brush, "use_accumulate")
@@ -800,7 +862,15 @@ def draw_color_settings(context, layout, brush, color_type=False):
col = layout.column() col = layout.column()
if brush.image_tool == 'DRAW': if brush.image_tool == 'DRAW':
UnifiedPaintPanel.prop_unified(col, context, brush, "secondary_color", unified_name="use_unified_color", text="Background Color", display_unified_toggle=False) UnifiedPaintPanel.prop_unified(
col,
context,
brush,
"secondary_color",
unified_name="use_unified_color",
text="Background Color",
display_unified_toggle=False,
)
col.prop(brush, "gradient_stroke_mode", text="Gradient Mapping") col.prop(brush, "gradient_stroke_mode", text="Gradient Mapping")
if brush.gradient_stroke_mode in {'SPACING_REPEAT', 'SPACING_CLAMP'}: if brush.gradient_stroke_mode in {'SPACING_REPEAT', 'SPACING_CLAMP'}:
@@ -885,18 +955,33 @@ def brush_mask_texture_settings(layout, brush):
# scale and offset # scale and offset
col.prop(mask_tex_slot, "offset") col.prop(mask_tex_slot, "offset")
col.prop(mask_tex_slot, "scale") col.prop(mask_tex_slot, "scale")
def brush_basic_texpaint_settings(layout, context, brush, *, compact=False): def brush_basic_texpaint_settings(layout, context, brush, *, compact=False):
"""Draw Tool Settings header for Vertex Paint and 2D and 3D Texture Paint modes.""" """Draw Tool Settings header for Vertex Paint and 2D and 3D Texture Paint modes."""
# NOTE: We don't draw UnifiedPaintSettings in the header to reduce clutter. D5928#136281 # NOTE: We don't draw UnifiedPaintSettings in the header to reduce clutter. D5928#136281
capabilities = brush.image_paint_capabilities capabilities = brush.image_paint_capabilities
if capabilities.has_color: if capabilities.has_color:
UnifiedPaintPanel.prop_unified_color(layout, context, brush, "color", text="") UnifiedPaintPanel.prop_unified_color(layout, context, brush, "color", text="")
layout.prop(brush, "blend", text="" if compact else "Blend") layout.prop(brush, "blend", text="" if compact else "Blend")
UnifiedPaintPanel.prop_unified(layout, context, brush, "size", pressure_name="use_pressure_size", slider=True, text="Radius") UnifiedPaintPanel.prop_unified(
UnifiedPaintPanel.prop_unified(layout, context, brush, "strength", pressure_name="use_pressure_strength") layout,
context,
brush,
"size",
pressure_name="use_pressure_size",
slider=True,
text="Radius",
)
UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"strength",
pressure_name="use_pressure_strength",
)
def brush_basic_gpencil_paint_settings(layout, context, brush, *, compact=False): def brush_basic_gpencil_paint_settings(layout, context, brush, *, compact=False):

View File

@@ -119,6 +119,7 @@ def find_modifier(ob, psys):
if md.type == 'PARTICLE_SYSTEM': if md.type == 'PARTICLE_SYSTEM':
if md.particle_system == psys: if md.particle_system == psys:
return md return md
return None
class PARTICLE_UL_particle_systems(bpy.types.UIList): class PARTICLE_UL_particle_systems(bpy.types.UIList):
@@ -159,7 +160,10 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
@classmethod @classmethod
def poll(cls, context): def poll(cls, context):
engine = context.engine engine = context.engine
return (context.particle_system or context.object or context.space_data.pin_id) and (engine in cls.COMPAT_ENGINES) return (
(context.particle_system or context.object or context.space_data.pin_id) and
(engine in cls.COMPAT_ENGINES)
)
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout

View File

@@ -160,6 +160,7 @@ class PHYSICS_PT_cloth_damping(PhysicButtonsPanel, Panel):
col = flow.column() col = flow.column()
col.prop(cloth, "bending_damping", text="Bending") col.prop(cloth, "bending_damping", text="Bending")
class PHYSICS_PT_cloth_internal_springs(PhysicButtonsPanel, Panel): class PHYSICS_PT_cloth_internal_springs(PhysicButtonsPanel, Panel):
bl_label = "Internal Springs" bl_label = "Internal Springs"
bl_parent_id = 'PHYSICS_PT_cloth_physical_properties' bl_parent_id = 'PHYSICS_PT_cloth_physical_properties'
@@ -201,6 +202,7 @@ class PHYSICS_PT_cloth_internal_springs(PhysicButtonsPanel, Panel):
col = flow.column() col = flow.column()
col.prop(cloth, "internal_compression_stiffness_max", text="Max Compression") col.prop(cloth, "internal_compression_stiffness_max", text="Max Compression")
class PHYSICS_PT_cloth_pressure(PhysicButtonsPanel, Panel): class PHYSICS_PT_cloth_pressure(PhysicButtonsPanel, Panel):
bl_label = "Pressure" bl_label = "Pressure"
bl_parent_id = 'PHYSICS_PT_cloth_physical_properties' bl_parent_id = 'PHYSICS_PT_cloth_physical_properties'

View File

@@ -657,6 +657,7 @@ class DOPESHEET_MT_snap_pie(Menu):
pie.operator("action.snap", text="Nearest Second").type = 'NEAREST_SECOND' pie.operator("action.snap", text="Nearest Second").type = 'NEAREST_SECOND'
pie.operator("action.snap", text="Nearest Marker").type = 'NEAREST_MARKER' pie.operator("action.snap", text="Nearest Marker").type = 'NEAREST_MARKER'
class LayersDopeSheetPanel: class LayersDopeSheetPanel:
bl_space_type = 'DOPESHEET_EDITOR' bl_space_type = 'DOPESHEET_EDITOR'
bl_region_type = 'UI' bl_region_type = 'UI'

View File

@@ -162,7 +162,7 @@ def panel_poll_is_upper_region(region):
class FILEBROWSER_UL_dir(UIList): class FILEBROWSER_UL_dir(UIList):
def draw_item(self, _context, layout, _data, item, icon, _active_data, active_propname, _index): def draw_item(self, _context, layout, _data, item, icon, _active_data, _active_propname, _index):
direntry = item direntry = item
# space = context.space_data # space = context.space_data

View File

@@ -294,7 +294,9 @@ class GRAPH_MT_key(Menu):
operator_context = layout.operator_context operator_context = layout.operator_context
layout.operator("graph.decimate", text="Decimate (Ratio)").mode = 'RATIO' layout.operator("graph.decimate", text="Decimate (Ratio)").mode = 'RATIO'
# Using the modal operation doesn't make sense for this variant as we do not have a modal mode for it, so just execute it.
# Using the modal operation doesn't make sense for this variant
# as we do not have a modal mode for it, so just execute it.
layout.operator_context = 'EXEC_DEFAULT' layout.operator_context = 'EXEC_DEFAULT'
layout.operator("graph.decimate", text="Decimate (Allowed Change)").mode = 'ERROR' layout.operator("graph.decimate", text="Decimate (Allowed Change)").mode = 'ERROR'
layout.operator_context = operator_context layout.operator_context = operator_context

View File

@@ -231,7 +231,7 @@ class IMAGE_MT_image(Menu):
if ima and not show_render: if ima and not show_render:
if ima.packed_file: if ima.packed_file:
if len(ima.filepath): if ima.filepath:
layout.separator() layout.separator()
layout.operator("image.unpack", text="Unpack") layout.operator("image.unpack", text="Unpack")
else: else:
@@ -590,8 +590,22 @@ class _draw_tool_settings_context_mode:
brush = uv_sculpt.brush brush = uv_sculpt.brush
if brush: if brush:
# NOTE: We don't draw UnifiedPaintSettings in the header to reduce clutter. D5928#136281 # NOTE: We don't draw UnifiedPaintSettings in the header to reduce clutter. D5928#136281
UnifiedPaintPanel.prop_unified(layout, context, brush, "size", pressure_name="use_pressure_size", slider=True) UnifiedPaintPanel.prop_unified(
UnifiedPaintPanel.prop_unified(layout, context, brush, "strength", pressure_name="use_pressure_strength", slider=True) layout,
context,
brush,
"size",
pressure_name="use_pressure_size",
slider=True,
)
UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"strength",
pressure_name="use_pressure_strength",
slider=True,
)
@staticmethod @staticmethod
def PAINT(context, layout, tool): def PAINT(context, layout, tool):
@@ -738,7 +752,6 @@ class MASK_MT_editor_menus(Menu):
show_uvedit = sima.show_uvedit show_uvedit = sima.show_uvedit
show_maskedit = sima.show_maskedit show_maskedit = sima.show_maskedit
show_paint = sima.show_paint
layout.menu("IMAGE_MT_view") layout.menu("IMAGE_MT_view")
@@ -1037,7 +1050,7 @@ class IMAGE_PT_render_slots(Panel):
class IMAGE_UL_udim_tiles(UIList): class IMAGE_UL_udim_tiles(UIList):
def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index): def draw_item(self, _context, layout, _data, item, _icon, _active_data, _active_propname, _index):
tile = item tile = item
layout.prop(tile, "label", text="", emboss=False) layout.prop(tile, "label", text="", emboss=False)
@@ -1079,6 +1092,7 @@ class IMAGE_PT_paint_select(Panel, ImagePaintPanel, BrushSelectPanel):
bl_context = ".paint_common_2d" bl_context = ".paint_common_2d"
bl_category = "Tool" bl_category = "Tool"
class IMAGE_PT_paint_settings(Panel, ImagePaintPanel): class IMAGE_PT_paint_settings(Panel, ImagePaintPanel):
bl_context = ".paint_common_2d" bl_context = ".paint_common_2d"
bl_category = "Tool" bl_category = "Tool"
@@ -1226,6 +1240,7 @@ class IMAGE_PT_tools_imagepaint_symmetry(BrushButtonsPanel, Panel):
row.prop(ipaint, "tile_x", text="X", toggle=True) row.prop(ipaint, "tile_x", text="X", toggle=True)
row.prop(ipaint, "tile_y", text="Y", toggle=True) row.prop(ipaint, "tile_y", text="Y", toggle=True)
class UVSculptPanel(UnifiedPaintPanel): class UVSculptPanel(UnifiedPaintPanel):
@classmethod @classmethod
def poll(cls, context): def poll(cls, context):
@@ -1255,7 +1270,9 @@ class IMAGE_PT_uv_sculpt_brush_settings(Panel, ImagePaintPanel, UVSculptPanel):
if brush: if brush:
if brush.uv_sculpt_tool == 'RELAX': if brush.uv_sculpt_tool == 'RELAX':
# Although this settings is stored in the scene, it is only used by a single tool, so it doesn't make sense from a user perspective to move it to the Options panel. # Although this settings is stored in the scene,
# it is only used by a single tool,
# so it doesn't make sense from a user perspective to move it to the Options panel.
layout.prop(tool_settings, "uv_relax_method") layout.prop(tool_settings, "uv_relax_method")
@@ -1266,6 +1283,7 @@ class IMAGE_PT_uv_sculpt_curve(Panel, FalloffPanel, ImagePaintPanel, UVSculptPan
bl_label = "Falloff" bl_label = "Falloff"
bl_options = {'DEFAULT_CLOSED'} bl_options = {'DEFAULT_CLOSED'}
class IMAGE_PT_uv_sculpt_options(Panel, ImagePaintPanel, UVSculptPanel): class IMAGE_PT_uv_sculpt_options(Panel, ImagePaintPanel, UVSculptPanel):
bl_context = ".uv_sculpt" # dot on purpose (access from topbar) bl_context = ".uv_sculpt" # dot on purpose (access from topbar)
bl_category = "Tool" bl_category = "Tool"

View File

@@ -676,7 +676,6 @@ class ToolSelectPanelHelper:
space_type = context.space_data.type space_type = context.space_data.type
return ToolSelectPanelHelper._tool_active_from_context(context, space_type) return ToolSelectPanelHelper._tool_active_from_context(context, space_type)
@staticmethod @staticmethod
def draw_active_tool_fallback( def draw_active_tool_fallback(
context, layout, tool, context, layout, tool,

View File

@@ -594,7 +594,7 @@ class _defs_edit_mesh:
props = tool.operator_properties("mesh.bevel") props = tool.operator_properties("mesh.bevel")
region_type = context.region.type region_type = context.region.type
if extra == False: if not extra:
if props.offset_type == 'PERCENT': if props.offset_type == 'PERCENT':
layout.prop(props, "offset_pct") layout.prop(props, "offset_pct")
else: else:

View File

@@ -1213,7 +1213,12 @@ class ThemeGenericClassGenerator():
"datapath": new_datapath, "datapath": new_datapath,
}) })
yield from generate_child_panel_classes_recurse(panel_id, prop.fixed_type, theme_area, new_datapath) yield from generate_child_panel_classes_recurse(
panel_id,
prop.fixed_type,
theme_area,
new_datapath,
)
yield from generate_child_panel_classes_recurse(parent_id, rna_type, theme_area, datapath) yield from generate_child_panel_classes_recurse(parent_id, rna_type, theme_area, datapath)

View File

@@ -262,11 +262,26 @@ class _draw_tool_settings_context_mode:
size = "unprojected_radius" size = "unprojected_radius"
# NOTE: We don't draw UnifiedPaintSettings in the header to reduce clutter. D5928#136281 # NOTE: We don't draw UnifiedPaintSettings in the header to reduce clutter. D5928#136281
UnifiedPaintPanel.prop_unified(layout, context, brush, size, pressure_name="use_pressure_size", text="Radius", slider=True) UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
size,
pressure_name="use_pressure_size",
text="Radius",
slider=True,
)
# strength, use_strength_pressure # strength, use_strength_pressure
pressure_name = "use_pressure_strength" if capabilities.has_strength_pressure else None pressure_name = "use_pressure_strength" if capabilities.has_strength_pressure else None
UnifiedPaintPanel.prop_unified(layout, context, brush, "strength", pressure_name=pressure_name, text="Strength") UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"strength",
pressure_name=pressure_name,
text="Strength",
)
# direction # direction
if not capabilities.has_direction: if not capabilities.has_direction:
@@ -316,8 +331,22 @@ class _draw_tool_settings_context_mode:
if capabilities.has_weight: if capabilities.has_weight:
UnifiedPaintPanel.prop_unified(layout, context, brush, "weight", slider=True) UnifiedPaintPanel.prop_unified(layout, context, brush, "weight", slider=True)
UnifiedPaintPanel.prop_unified(layout, context, brush, "size", pressure_name="use_pressure_size", slider=True, text="Radius") UnifiedPaintPanel.prop_unified(
UnifiedPaintPanel.prop_unified(layout, context, brush, "strength", pressure_name="use_pressure_strength") layout,
context,
brush,
"size",
pressure_name="use_pressure_size",
slider=True,
text="Radius",
)
UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"strength",
pressure_name="use_pressure_strength",
)
@staticmethod @staticmethod
def PAINT_GPENCIL(context, layout, tool): def PAINT_GPENCIL(context, layout, tool):
@@ -5502,9 +5531,10 @@ class VIEW3D_PT_shading_render_pass(Panel):
@classmethod @classmethod
def poll(cls, context): def poll(cls, context):
return (context.space_data.shading.type == 'MATERIAL' return (
or (context.engine in cls.COMPAT_ENGINES (context.space_data.shading.type == 'MATERIAL') or
and context.space_data.shading.type == 'RENDERED')) (context.engine in cls.COMPAT_ENGINES and context.space_data.shading.type == 'RENDERED')
)
def draw(self, context): def draw(self, context):
shading = context.space_data.shading shading = context.space_data.shading
@@ -6690,8 +6720,25 @@ class VIEW3D_PT_paint_vertex_context_menu(Panel):
UnifiedPaintPanel.prop_unified_color_picker(split, context, brush, "color", value_slider=True) UnifiedPaintPanel.prop_unified_color_picker(split, context, brush, "color", value_slider=True)
layout.prop(brush, "blend", text="") layout.prop(brush, "blend", text="")
UnifiedPaintPanel.prop_unified(layout, context, brush, "size", unified_name="use_unified_size", pressure_name="use_pressure_size", slider=True) UnifiedPaintPanel.prop_unified(
UnifiedPaintPanel.prop_unified(layout, context, brush, "strength", unified_name="use_unified_strength", pressure_name="use_pressure_strength", slider=True) layout,
context,
brush,
"size",
unified_name="use_unified_size",
pressure_name="use_pressure_size",
slider=True,
)
UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"strength",
unified_name="use_unified_strength",
pressure_name="use_pressure_strength",
slider=True,
)
class VIEW3D_PT_paint_texture_context_menu(Panel): class VIEW3D_PT_paint_texture_context_menu(Panel):
# Only for popover, these are dummy values. # Only for popover, these are dummy values.
@@ -6712,8 +6759,24 @@ class VIEW3D_PT_paint_texture_context_menu(Panel):
layout.prop(brush, "blend", text="") layout.prop(brush, "blend", text="")
if capabilities.has_radius: if capabilities.has_radius:
UnifiedPaintPanel.prop_unified(layout, context, brush, "size", unified_name="use_unified_size", pressure_name="use_pressure_size", slider=True) UnifiedPaintPanel.prop_unified(
UnifiedPaintPanel.prop_unified(layout, context, brush, "strength", unified_name="use_unified_strength", pressure_name="use_pressure_strength", slider=True) layout,
context,
brush,
"size",
unified_name="use_unified_size",
pressure_name="use_pressure_size",
slider=True,
)
UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"strength",
unified_name="use_unified_strength",
pressure_name="use_pressure_strength",
slider=True,
)
class VIEW3D_PT_paint_weight_context_menu(Panel): class VIEW3D_PT_paint_weight_context_menu(Panel):
@@ -6726,9 +6789,32 @@ class VIEW3D_PT_paint_weight_context_menu(Panel):
layout = self.layout layout = self.layout
brush = context.tool_settings.weight_paint.brush brush = context.tool_settings.weight_paint.brush
UnifiedPaintPanel.prop_unified(layout, context, brush, "weight", unified_name="use_unified_weight", slider=True) UnifiedPaintPanel.prop_unified(
UnifiedPaintPanel.prop_unified(layout, context, brush, "size", unified_name="use_unified_size", pressure_name="use_pressure_size", slider=True) layout,
UnifiedPaintPanel.prop_unified(layout, context, brush, "strength", unified_name="use_unified_strength", pressure_name="use_pressure_strength", slider=True) context,
brush,
"weight",
unified_name="use_unified_weight",
slider=True,
)
UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"size",
unified_name="use_unified_size",
pressure_name="use_pressure_size",
slider=True,
)
UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"strength",
unified_name="use_unified_strength",
pressure_name="use_pressure_strength",
slider=True,
)
class VIEW3D_PT_sculpt_context_menu(Panel): class VIEW3D_PT_sculpt_context_menu(Panel):
@@ -6743,8 +6829,24 @@ class VIEW3D_PT_sculpt_context_menu(Panel):
brush = context.tool_settings.sculpt.brush brush = context.tool_settings.sculpt.brush
capabilities = brush.sculpt_capabilities capabilities = brush.sculpt_capabilities
UnifiedPaintPanel.prop_unified(layout, context, brush, "size", unified_name="use_unified_size", pressure_name="use_pressure_size", slider=True) UnifiedPaintPanel.prop_unified(
UnifiedPaintPanel.prop_unified(layout, context, brush, "strength", unified_name="use_unified_strength", pressure_name="use_pressure_strength", slider=True) layout,
context,
brush,
"size",
unified_name="use_unified_size",
pressure_name="use_pressure_size",
slider=True,
)
UnifiedPaintPanel.prop_unified(
layout,
context,
brush,
"strength",
unified_name="use_unified_strength",
pressure_name="use_pressure_strength",
slider=True,
)
if capabilities.has_auto_smooth: if capabilities.has_auto_smooth:
layout.prop(brush, "auto_smooth_factor", slider=True) layout.prop(brush, "auto_smooth_factor", slider=True)

View File

@@ -321,6 +321,7 @@ class VIEW3D_PT_tools_posemode_options(View3DPanel, Panel):
# ********** default tools for paint modes **************** # ********** default tools for paint modes ****************
class TEXTURE_UL_texpaintslots(UIList): class TEXTURE_UL_texpaintslots(UIList):
def draw_item(self, _context, layout, _data, item, icon, _active_data, _active_propname, _index): def draw_item(self, _context, layout, _data, item, icon, _active_data, _active_propname, _index):
# mat = data # mat = data
@@ -331,6 +332,7 @@ class TEXTURE_UL_texpaintslots(UIList):
layout.alignment = 'CENTER' layout.alignment = 'CENTER'
layout.label(text="") layout.label(text="")
class View3DPaintPanel(View3DPanel, UnifiedPaintPanel): class View3DPaintPanel(View3DPanel, UnifiedPaintPanel):
bl_category = "Tool" bl_category = "Tool"
@@ -409,6 +411,7 @@ class VIEW3D_PT_tools_brush_settings(Panel, View3DPaintBrushPanel):
brush_settings(layout.column(), context, brush, popover=self.is_popover) brush_settings(layout.column(), context, brush, popover=self.is_popover)
class VIEW3D_PT_tools_brush_settings_advanced(Panel, View3DPaintBrushPanel): class VIEW3D_PT_tools_brush_settings_advanced(Panel, View3DPaintBrushPanel):
bl_context = ".paint_common" bl_context = ".paint_common"
bl_parent_id = "VIEW3D_PT_tools_brush_settings" bl_parent_id = "VIEW3D_PT_tools_brush_settings"
@@ -436,20 +439,22 @@ class VIEW3D_PT_tools_brush_color(Panel, View3DPaintPanel):
def poll(cls, context): def poll(cls, context):
settings = cls.paint_settings(context) settings = cls.paint_settings(context)
brush = settings.brush brush = settings.brush
if context.image_paint_object: if context.image_paint_object:
capabilities = brush.image_paint_capabilities capabilities = brush.image_paint_capabilities
return capabilities.has_color return capabilities.has_color
elif context.vertex_paint_object: elif context.vertex_paint_object:
capabilities = brush.vertex_paint_capabilities capabilities = brush.vertex_paint_capabilities
return capabilities.has_color return capabilities.has_color
return False
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
settings = self.paint_settings(context) settings = self.paint_settings(context)
brush = settings.brush brush = settings.brush
draw_color_settings(context, layout, brush, color_type = not context.vertex_paint_object) draw_color_settings(context, layout, brush, color_type=not context.vertex_paint_object)
class VIEW3D_PT_tools_brush_swatches(Panel, View3DPaintPanel, ColorPalettePanel): class VIEW3D_PT_tools_brush_swatches(Panel, View3DPaintPanel, ColorPalettePanel):
@@ -852,6 +857,7 @@ class VIEW3D_PT_sculpt_voxel_remesh(Panel, View3DPaintPanel):
col.prop(mesh, "use_remesh_preserve_paint_mask") col.prop(mesh, "use_remesh_preserve_paint_mask")
col.operator("object.voxel_remesh", text="Remesh") col.operator("object.voxel_remesh", text="Remesh")
# TODO, move to space_view3d.py # TODO, move to space_view3d.py
class VIEW3D_PT_sculpt_options(Panel, View3DPaintPanel): class VIEW3D_PT_sculpt_options(Panel, View3DPaintPanel):
bl_context = ".sculpt_mode" # dot on purpose (access from topbar) bl_context = ".sculpt_mode" # dot on purpose (access from topbar)
@@ -879,6 +885,7 @@ class VIEW3D_PT_sculpt_options(Panel, View3DPaintPanel):
col = flow.column() col = flow.column()
col.prop(sculpt, "use_deform_only") col.prop(sculpt, "use_deform_only")
class VIEW3D_PT_sculpt_options_gravity(Panel, View3DPaintPanel): class VIEW3D_PT_sculpt_options_gravity(Panel, View3DPaintPanel):
bl_context = ".sculpt_mode" # dot on purpose (access from topbar) bl_context = ".sculpt_mode" # dot on purpose (access from topbar)
bl_parent_id = "VIEW3D_PT_sculpt_options" bl_parent_id = "VIEW3D_PT_sculpt_options"
@@ -1047,11 +1054,11 @@ class VIEW3D_PT_tools_vertexpaint_options(Panel, View3DPaintPanel):
bl_options = {'DEFAULT_CLOSED'} bl_options = {'DEFAULT_CLOSED'}
@classmethod @classmethod
def poll(self, context): def poll(self, _context):
# This is currently unused, since there aren't any Vertex Paint mode specific options. # This is currently unused, since there aren't any Vertex Paint mode specific options.
return False return False
def draw(self, context): def draw(self, _context):
layout = self.layout layout = self.layout
layout.use_property_split = True layout.use_property_split = True
layout.use_property_decorate = False layout.use_property_decorate = False
@@ -1206,12 +1213,12 @@ class VIEW3D_PT_imagepaint_options(View3DPaintPanel):
bl_label = "Options" bl_label = "Options"
@classmethod @classmethod
def poll(cls, context): def poll(cls, _context):
# This is currently unused, since there aren't any Vertex Paint mode specific options. # This is currently unused, since there aren't any Vertex Paint mode specific options.
return False return False
return (context.image_paint_object and context.tool_settings.image_paint) # return (context.image_paint_object and context.tool_settings.image_paint)
def draw(self, context): def draw(self, _context):
layout = self.layout layout = self.layout
layout.use_property_split = True layout.use_property_split = True
layout.use_property_decorate = False layout.use_property_decorate = False
@@ -1370,7 +1377,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_select(Panel, View3DPanel, GreasePenci
col.prop(brush, "use_custom_icon", toggle=True, icon='FILE_IMAGE', text="") col.prop(brush, "use_custom_icon", toggle=True, icon='FILE_IMAGE', text="")
if(brush.use_custom_icon): if brush.use_custom_icon:
layout.row().prop(brush, "icon_filepath", text="") layout.row().prop(brush, "icon_filepath", text="")
else: else:
layout.row().prop(gp_settings, "gp_icon", text="Icon") layout.row().prop(gp_settings, "gp_icon", text="Icon")
@@ -1482,7 +1489,8 @@ class VIEW3D_PT_tools_grease_pencil_brush_stabilizer(Panel, View3DPanel):
return brush is not None and brush.gpencil_tool == 'DRAW' return brush is not None and brush.gpencil_tool == 'DRAW'
def draw_header(self, context): def draw_header(self, context):
if self.is_popover: return if self.is_popover:
return
brush = context.tool_settings.gpencil_paint.brush brush = context.tool_settings.gpencil_paint.brush
gp_settings = brush.gpencil_settings gp_settings = brush.gpencil_settings
@@ -1521,7 +1529,8 @@ class VIEW3D_PT_tools_grease_pencil_brush_post_processing(View3DPanel, Panel):
return brush is not None and brush.gpencil_tool not in {'ERASE', 'FILL'} return brush is not None and brush.gpencil_tool not in {'ERASE', 'FILL'}
def draw_header(self, context): def draw_header(self, context):
if self.is_popover: return if self.is_popover:
return
brush = context.tool_settings.gpencil_paint.brush brush = context.tool_settings.gpencil_paint.brush
gp_settings = brush.gpencil_settings gp_settings = brush.gpencil_settings
@@ -1575,7 +1584,8 @@ class VIEW3D_PT_tools_grease_pencil_brush_random(View3DPanel, Panel):
return brush is not None and brush.gpencil_tool not in {'ERASE', 'FILL'} return brush is not None and brush.gpencil_tool not in {'ERASE', 'FILL'}
def draw_header(self, context): def draw_header(self, context):
if self.is_popover: return if self.is_popover:
return
brush = context.tool_settings.gpencil_paint.brush brush = context.tool_settings.gpencil_paint.brush
gp_settings = brush.gpencil_settings gp_settings = brush.gpencil_settings
@@ -1734,7 +1744,6 @@ class VIEW3D_PT_tools_grease_pencil_sculpt_select(Panel, View3DPanel):
layout.use_property_decorate = False layout.use_property_decorate = False
settings = context.tool_settings.gpencil_sculpt settings = context.tool_settings.gpencil_sculpt
brush = settings.brush
layout.template_icon_view(settings, "sculpt_tool", show_labels=True) layout.template_icon_view(settings, "sculpt_tool", show_labels=True)
@@ -1760,6 +1769,7 @@ class VIEW3D_PT_tools_grease_pencil_sculpt_settings(Panel, View3DPanel):
# Grease Pencil weight painting tools # Grease Pencil weight painting tools
class VIEW3D_PT_tools_grease_pencil_weight_paint_select(View3DPanel, Panel): class VIEW3D_PT_tools_grease_pencil_weight_paint_select(View3DPanel, Panel):
bl_context = ".greasepencil_weight" bl_context = ".greasepencil_weight"
bl_label = "Brushes" bl_label = "Brushes"
@@ -1771,7 +1781,6 @@ class VIEW3D_PT_tools_grease_pencil_weight_paint_select(View3DPanel, Panel):
layout.use_property_decorate = False layout.use_property_decorate = False
settings = context.tool_settings.gpencil_sculpt settings = context.tool_settings.gpencil_sculpt
brush = settings.brush
layout.template_icon_view(settings, "weight_tool", show_labels=True) layout.template_icon_view(settings, "weight_tool", show_labels=True)
@@ -1789,7 +1798,6 @@ class VIEW3D_PT_tools_grease_pencil_weight_paint_settings(Panel, View3DPanel):
settings = context.tool_settings.gpencil_sculpt settings = context.tool_settings.gpencil_sculpt
brush = settings.brush brush = settings.brush
if not self.is_popover: if not self.is_popover:
from bl_ui.properties_paint_common import ( from bl_ui.properties_paint_common import (
brush_basic_gpencil_weight_settings, brush_basic_gpencil_weight_settings,