GPv3: Use RNA properties for modifier influence panels
Some modifiers were still using `BKE_panel_layout_panel_state_ensure` to create open/close flag properties at runtime. Should register a RNA property using `rna_def_modifier_panel_open_prop` instead. Pull Request: https://projects.blender.org/blender/blender/pulls/117697
This commit is contained in:
@@ -7767,6 +7767,9 @@ static void rna_def_modifier_grease_pencil_opacity(BlenderRNA *brna)
|
||||
rna_def_modifier_grease_pencil_vertex_group(
|
||||
srna, "rna_GreasePencilOpacityModifier_vertex_group_name_set");
|
||||
rna_def_modifier_grease_pencil_custom_curve(srna);
|
||||
|
||||
rna_def_modifier_panel_open_prop(srna, "open_influence_panel", 0);
|
||||
|
||||
RNA_define_lib_overridable(true);
|
||||
|
||||
prop = RNA_def_property(srna, "color_mode", PROP_ENUM, PROP_NONE);
|
||||
@@ -7874,6 +7877,8 @@ static void rna_def_modifier_grease_pencil_color(BlenderRNA *brna)
|
||||
srna, "rna_GreasePencilColorModifier_material_filter_set");
|
||||
rna_def_modifier_grease_pencil_custom_curve(srna);
|
||||
|
||||
rna_def_modifier_panel_open_prop(srna, "open_influence_panel", 0);
|
||||
|
||||
RNA_define_lib_overridable(true);
|
||||
|
||||
prop = RNA_def_property(srna, "color_mode", PROP_ENUM, PROP_NONE);
|
||||
@@ -7935,6 +7940,8 @@ static void rna_def_modifier_grease_pencil_tint(BlenderRNA *brna)
|
||||
srna, "rna_GreasePencilTintModifier_vertex_group_name_set");
|
||||
rna_def_modifier_grease_pencil_custom_curve(srna);
|
||||
|
||||
rna_def_modifier_panel_open_prop(srna, "open_influence_panel", 0);
|
||||
|
||||
RNA_define_lib_overridable(true);
|
||||
|
||||
prop = RNA_def_property(srna, "color_mode", PROP_ENUM, PROP_NONE);
|
||||
@@ -8094,6 +8101,8 @@ static void rna_def_modifier_grease_pencil_offset(BlenderRNA *brna)
|
||||
rna_def_modifier_grease_pencil_vertex_group(
|
||||
srna, "rna_GreasePencilOffsetModifier_vertex_group_name_set");
|
||||
|
||||
rna_def_modifier_panel_open_prop(srna, "open_influence_panel", 0);
|
||||
|
||||
prop = RNA_def_property(srna, "offset_mode", PROP_ENUM, PROP_NONE);
|
||||
RNA_def_property_enum_items(prop, offset_mode_items);
|
||||
RNA_def_property_ui_text(prop, "Mode", "");
|
||||
@@ -8265,6 +8274,8 @@ static void rna_def_modifier_grease_pencil_mirror(BlenderRNA *brna)
|
||||
rna_def_modifier_grease_pencil_material_filter(
|
||||
srna, "rna_GreasePencilMirrorModifier_material_filter_set");
|
||||
|
||||
rna_def_modifier_panel_open_prop(srna, "open_influence_panel", 0);
|
||||
|
||||
RNA_define_lib_overridable(true);
|
||||
|
||||
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
||||
|
||||
@@ -223,12 +223,8 @@ static void panel_draw(const bContext *C, Panel *panel)
|
||||
uiItemR(layout, ptr, "saturation", UI_ITEM_R_SLIDER, nullptr, ICON_NONE);
|
||||
uiItemR(layout, ptr, "value", UI_ITEM_R_SLIDER, nullptr, ICON_NONE);
|
||||
|
||||
LayoutPanelState *influence_panel_state = BKE_panel_layout_panel_state_ensure(
|
||||
panel, "influence", true);
|
||||
PointerRNA influence_state_ptr = RNA_pointer_create(
|
||||
nullptr, &RNA_LayoutPanelState, influence_panel_state);
|
||||
if (uiLayout *influence_panel = uiLayoutPanelProp(
|
||||
C, layout, &influence_state_ptr, "is_open", "Influence"))
|
||||
C, layout, ptr, "open_influence_panel", "Influence"))
|
||||
{
|
||||
modifier::greasepencil::draw_layer_filter_settings(C, influence_panel, ptr);
|
||||
modifier::greasepencil::draw_material_filter_settings(C, influence_panel, ptr);
|
||||
|
||||
@@ -219,13 +219,8 @@ static void panel_draw(const bContext *C, Panel *panel)
|
||||
|
||||
uiItemR(layout, ptr, "object", UI_ITEM_NONE, nullptr, ICON_NONE);
|
||||
|
||||
LayoutPanelState *influence_panel_state = BKE_panel_layout_panel_state_ensure(
|
||||
panel, "influence", true);
|
||||
|
||||
PointerRNA influence_state_ptr = RNA_pointer_create(
|
||||
nullptr, &RNA_LayoutPanelState, influence_panel_state);
|
||||
if (uiLayout *influence_panel = uiLayoutPanelProp(
|
||||
C, layout, &influence_state_ptr, "is_open", "Influence"))
|
||||
C, layout, ptr, "open_influence_panel", "Influence"))
|
||||
{
|
||||
modifier::greasepencil::draw_layer_filter_settings(C, influence_panel, ptr);
|
||||
modifier::greasepencil::draw_material_filter_settings(C, influence_panel, ptr);
|
||||
|
||||
@@ -425,12 +425,8 @@ static void panel_draw(const bContext *C, Panel *panel)
|
||||
}
|
||||
}
|
||||
|
||||
LayoutPanelState *influence_panel_state = BKE_panel_layout_panel_state_ensure(
|
||||
panel, "influence", true);
|
||||
PointerRNA influence_state_ptr = RNA_pointer_create(
|
||||
nullptr, &RNA_LayoutPanelState, influence_panel_state);
|
||||
if (uiLayout *influence_panel = uiLayoutPanelProp(
|
||||
C, layout, &influence_state_ptr, "is_open", "Influence"))
|
||||
C, layout, ptr, "open_influence_panel", "Influence"))
|
||||
{
|
||||
modifier::greasepencil::draw_layer_filter_settings(C, influence_panel, ptr);
|
||||
modifier::greasepencil::draw_material_filter_settings(C, influence_panel, ptr);
|
||||
|
||||
@@ -256,12 +256,8 @@ static void panel_draw(const bContext *C, Panel *panel)
|
||||
}
|
||||
}
|
||||
|
||||
LayoutPanelState *influence_panel_state = BKE_panel_layout_panel_state_ensure(
|
||||
panel, "influence", true);
|
||||
PointerRNA influence_state_ptr = RNA_pointer_create(
|
||||
nullptr, &RNA_LayoutPanelState, influence_panel_state);
|
||||
if (uiLayout *influence_panel = uiLayoutPanelProp(
|
||||
C, layout, &influence_state_ptr, "is_open", "Influence"))
|
||||
C, layout, ptr, "open_influence_panel", "Influence"))
|
||||
{
|
||||
modifier::greasepencil::draw_layer_filter_settings(C, influence_panel, ptr);
|
||||
modifier::greasepencil::draw_material_filter_settings(C, influence_panel, ptr);
|
||||
|
||||
@@ -433,12 +433,8 @@ static void panel_draw(const bContext *C, Panel *panel)
|
||||
break;
|
||||
}
|
||||
|
||||
LayoutPanelState *influence_panel_state = BKE_panel_layout_panel_state_ensure(
|
||||
panel, "influence", true);
|
||||
PointerRNA influence_state_ptr = RNA_pointer_create(
|
||||
nullptr, &RNA_LayoutPanelState, influence_panel_state);
|
||||
if (uiLayout *influence_panel = uiLayoutPanelProp(
|
||||
C, layout, &influence_state_ptr, "is_open", "Influence"))
|
||||
C, layout, ptr, "open_influence_panel", "Influence"))
|
||||
{
|
||||
modifier::greasepencil::draw_layer_filter_settings(C, influence_panel, ptr);
|
||||
modifier::greasepencil::draw_material_filter_settings(C, influence_panel, ptr);
|
||||
|
||||
Reference in New Issue
Block a user