[Bf-blender-cvs] [2b9ca08276d] greasepencil-refactor: GPencil: Replace Add mask with popover menu
Antonio Vazquez
noreply at git.blender.org
Tue Feb 11 16:47:42 CET 2020
Commit: 2b9ca08276d6645ffdd18942382884397b901546
Author: Antonio Vazquez
Date: Tue Feb 11 16:43:45 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB2b9ca08276d6645ffdd18942382884397b901546
GPencil: Replace Add mask with popover menu
Also removed iinternal property used.
===================================================================
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 92c7b2bdc4a..1f26242149a 100644
--- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
+++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
@@ -784,6 +784,24 @@ class GPENCIL_UL_masks(UIList):
layout.prop(mask, "name", text="", emboss=False, icon_value=icon)
+class GPENCIL_MT_layer_mask_menu(Menu):
+ bl_label = "Layer Specials"
+
+ def draw(self, context):
+ layout = self.layout
+ ob = context.object
+ gpd = ob.data
+ gpl_active = gpd.layers.active
+ done = False
+ for gpl in gpd.layers:
+ if gpl != gpl_active and gpl.info not in gpl_active.mask_layers:
+ done = True
+ layout.operator("gpencil.layer_mask_add", text=gpl.info).name=gpl.info
+
+ if done is False:
+ layout.label(text="No layers to add")
+
+
class GreasePencilLayerMasksPanel:
def draw_header(self, context):
ob = context.active_object
@@ -801,11 +819,6 @@ class GreasePencilLayerMasksPanel:
layout.enabled = gpl.use_mask_layer
if gpl:
- row = layout.row(align=True)
- row.prop(gpd, "layer_list", text="Layer")
- layer_name = gpd.layer_list
- row.operator("gpencil.layer_mask_add", icon="ADD", text="").name=layer_name
-
rows = 4
row = layout.row()
col = row.column()
@@ -813,6 +826,7 @@ class GreasePencilLayerMasksPanel:
"active_mask_index", rows=rows, sort_lock=True)
col2 = row.column(align=True)
+ col2.menu("GPENCIL_MT_layer_mask_menu", icon='ADD', text="")
col2.operator("gpencil.layer_mask_remove", icon='REMOVE', text="")
@@ -899,6 +913,7 @@ classes = (
GPENCIL_MT_move_to_layer,
GPENCIL_MT_gpencil_draw_delete,
+ GPENCIL_MT_layer_mask_menu,
GPENCIL_UL_annotation_layer,
GPENCIL_UL_layer,
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index 58b42e5fc39..4b118c5359a 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -491,8 +491,7 @@ typedef struct bGPdata_Runtime {
/** Temp stroke used for drawing. */
struct bGPDstroke *sbuffer_gps;
- /* Index for dynamic layer list. */
- short layer_idx;
+ char _pad[2];
/** Material index of the stroke. */
short matid;
diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c
index 4af325079b1..b937da93f15 100644
--- a/source/blender/makesrna/intern/rna_gpencil.c
+++ b/source/blender/makesrna/intern/rna_gpencil.c
@@ -404,18 +404,6 @@ static void rna_GPencil_active_layer_set(PointerRNA *ptr,
}
}
-static int rna_GPencil_active_layer_dummy_get(PointerRNA *ptr)
-{
- bGPdata *gpd = (bGPdata *)ptr->owner_id;
- return gpd->runtime.layer_idx;
-}
-
-static void rna_GPencil_active_layer_dummy_set(PointerRNA *ptr, int value)
-{
- bGPdata *gpd = (bGPdata *)ptr->owner_id;
- gpd->runtime.layer_idx = value;
-}
-
static int rna_GPencil_active_layer_index_get(PointerRNA *ptr)
{
bGPdata *gpd = (bGPdata *)ptr->owner_id;
@@ -1840,15 +1828,6 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Layers", "");
rna_def_gpencil_layers_api(brna, prop);
- prop = RNA_def_property(srna, "layer_list", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_funcs(prop,
- "rna_GPencil_active_layer_dummy_get",
- "rna_GPencil_active_layer_dummy_set",
- "rna_GPencil_active_layer_itemf");
- RNA_def_property_enum_items(
- prop, DummyRNA_DEFAULT_items); /* purely dynamic, as it maps to user-data */
- RNA_def_property_ui_text(prop, "Layer List", "List of Layers");
-
/* Animation Data */
rna_def_animdata_common(srna);
More information about the Bf-blender-cvs
mailing list