Commit: 5bdcbfc42b71611bf8f1b4355a4c448b0851e061 Author: Antonio Vazquez Date: Tue Feb 11 11:24:56 2020 +0100 Branches: greasepencil-refactor https://developer.blender.org/rB5bdcbfc42b71611bf8f1b4355a4c448b0851e061
GPencil: Add new Hide and Invert icons to Masks =================================================================== M release/scripts/startup/bl_ui/properties_grease_pencil_common.py M source/blender/makesdna/DNA_gpencil_types.h M source/blender/makesrna/intern/rna_gpencil.c =================================================================== diff --git a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py index e854c4cdbfe..d540eab7dab 100644 --- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py +++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py @@ -769,18 +769,22 @@ class GreasePencilLayerAdjustmentsPanel: col = layout.row(align=True) col.prop(gpl, "lock_material") + class GPENCIL_UL_masks(UIList): def draw_item(self, _context, layout, _data, item, icon, _active_data, _active_propname, _index): mask = item if self.layout_type in {'DEFAULT', 'COMPACT'}: - layout.prop(mask, "name", text="", emboss=False, icon_value=icon) + row = layout.row(align=True) + row.prop(mask, "name", text="", emboss=False, icon_value=icon) + icon_mask = 'HOLDOUT_ON' if mask.invert else 'MOD_MASK' + row.prop(mask, "invert", text="", emboss=False, icon=icon_mask) + row.prop(mask, "hide", text="", emboss=False) elif self.layout_type == 'GRID': layout.alignment = 'CENTER' layout.prop(mask, "name", text="", emboss=False, icon_value=icon) class GreasePencilLayerMasksPanel: - def draw_header(self, context): ob = context.active_object gpd = ob.data @@ -805,13 +809,12 @@ class GreasePencilLayerMasksPanel: rows = 4 row = layout.row() col = row.column() - col.template_list("GPENCIL_UL_masks", "", gpl, "mask_layers", gpl.mask_layers, "active_mask_index", rows=rows) + col.template_list("GPENCIL_UL_masks", "", gpl, "mask_layers", gpl.mask_layers, + "active_mask_index", rows=rows, sort_lock=True) col2 = row.column(align=True) col2.operator("gpencil.layer_mask_remove", icon='REMOVE', text="") - row = layout.row() - row.prop(gpl, "invert_mask") class GreasePencilLayerRelationsPanel: diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h index f0fabd256fe..93612aa2309 100644 --- a/source/blender/makesdna/DNA_gpencil_types.h +++ b/source/blender/makesdna/DNA_gpencil_types.h @@ -329,8 +329,18 @@ typedef enum eGPDframe_Flag { typedef struct bGPDlayer_Mask { struct bGPDlayer_Mask *next, *prev; char name[128]; + short flag; + char _pad[6]; } bGPDlayer_Mask; +/* bGPDlayer_Mask->flag */ +typedef enum ebGPDlayer_Mask_Flag { + /* Mask is hidden. */ + GP_MASK_HIDE = (1 << 0), + /* Mask is inverted. */ + GP_MASK_INVERT = (1 << 1), +} ebGPDlayer_Mask_Flag; + /* Runtime temp data for bGPDlayer */ typedef struct bGPDlayer_Runtime { /** Id for dynamic icon used to show annotation color preview for layer. */ diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 20b3426f1b4..4af325079b1 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -1681,6 +1681,18 @@ static void rna_def_gpencil_layer_mask(BlenderRNA *brna) RNA_def_property_string_funcs(prop, NULL, NULL, "rna_GPencilLayer_mask_info_set"); RNA_def_struct_name_property(srna, prop); RNA_def_property_update(prop, NC_GPENCIL | ND_DATA | NA_RENAME, NULL); + + /* Flags */ + prop = RNA_def_property(srna, "hide", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_MASK_HIDE); + RNA_def_property_ui_icon(prop, ICON_HIDE_OFF, -1); + RNA_def_property_ui_text(prop, "Hide", "Set mask Visibility"); + RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update"); + + prop = RNA_def_property(srna, "invert", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_MASK_INVERT); + RNA_def_property_ui_text(prop, "Invert", "Invert mask"); + RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update"); } static void rna_def_gpencil_layers_api(BlenderRNA *brna, PropertyRNA *cprop) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs