From e0c966a3b974fd0054aeb9524822f102db773381 Mon Sep 17 00:00:00 2001 From: Antonio Vazquez Date: Thu, 16 Jun 2022 16:27:57 +0200 Subject: Fix T98904: GPencil sculpt brushes break after you delete a brush There were two problems here: 1) Console warnings due to brush was None. 2) It was impossible to recreate a brush. This patch fixes both issues and it is now possible to recreate any brush. Differential Revision: https://developer.blender.org/D15213 Reviewed by: @dflelinto --- release/scripts/startup/bl_ui/properties_paint_common.py | 2 ++ release/scripts/startup/bl_ui/space_view3d.py | 11 ++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'release/scripts/startup/bl_ui') diff --git a/release/scripts/startup/bl_ui/properties_paint_common.py b/release/scripts/startup/bl_ui/properties_paint_common.py index 68a7e2b4527..f0034a3d710 100644 --- a/release/scripts/startup/bl_ui/properties_paint_common.py +++ b/release/scripts/startup/bl_ui/properties_paint_common.py @@ -1316,6 +1316,8 @@ def brush_basic_gpencil_paint_settings(layout, context, brush, *, compact=False) def brush_basic_gpencil_sculpt_settings(layout, _context, brush, *, compact=False): + if brush is None: + return gp_settings = brush.gpencil_settings if gp_settings is None: return diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 80ea33f8a75..5e5e7a79035 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -95,7 +95,7 @@ class VIEW3D_HT_tool_header(Header): elif tool_mode == 'PAINT_GPENCIL': if is_valid_context: brush = context.tool_settings.gpencil_paint.brush - if brush.gpencil_tool != 'ERASE': + if brush and brush.gpencil_tool != 'ERASE': if brush.gpencil_tool != 'TINT': layout.popover("VIEW3D_PT_tools_grease_pencil_brush_advanced") @@ -106,10 +106,11 @@ class VIEW3D_HT_tool_header(Header): elif tool_mode == 'SCULPT_GPENCIL': if is_valid_context: brush = context.tool_settings.gpencil_sculpt_paint.brush - tool = brush.gpencil_sculpt_tool - if tool != 'CLONE': - layout.popover("VIEW3D_PT_tools_grease_pencil_sculpt_brush_popover") - layout.popover("VIEW3D_PT_tools_grease_pencil_sculpt_appearance") + if brush: + tool = brush.gpencil_sculpt_tool + if tool != 'CLONE': + layout.popover("VIEW3D_PT_tools_grease_pencil_sculpt_brush_popover") + layout.popover("VIEW3D_PT_tools_grease_pencil_sculpt_appearance") elif tool_mode == 'WEIGHT_GPENCIL': if is_valid_context: layout.popover("VIEW3D_PT_tools_grease_pencil_weight_appearance") -- cgit v1.2.3