[Bf-blender-cvs] [191a5656007] modifier-panels-ui: Use checkbox+value configuration for Decimate modifier UI layout

William Reynish noreply at git.blender.org
Sat Apr 11 14:31:25 CEST 2020


Commit: 191a5656007f7518ce7ac1cc96160a9157b59029
Author: William Reynish
Date:   Sat Apr 11 14:30:30 2020 +0200
Branches: modifier-panels-ui
https://developer.blender.org/rB191a5656007f7518ce7ac1cc96160a9157b59029

Use checkbox+value configuration for Decimate modifier UI layout

===================================================================

M	source/blender/modifiers/intern/MOD_decimate.c

===================================================================

diff --git a/source/blender/modifiers/intern/MOD_decimate.c b/source/blender/modifiers/intern/MOD_decimate.c
index dad7eb3dcf2..3470e2e24b4 100644
--- a/source/blender/modifiers/intern/MOD_decimate.c
+++ b/source/blender/modifiers/intern/MOD_decimate.c
@@ -228,7 +228,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes
 
 static void panel_draw(const bContext *C, Panel *panel)
 {
-  uiLayout *sub, *row;
+  uiLayout *sub, *row, *col;
 
   uiLayout *layout = panel->layout;
   PointerRNA ptr;
@@ -248,6 +248,17 @@ static void panel_draw(const bContext *C, Panel *panel)
   if (decimate_type == MOD_DECIM_MODE_COLLAPSE) {
     uiItemR(layout, &ptr, "ratio", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
 
+    col = uiLayoutColumnWithHeading(layout, false, "Symmetry");
+    row = uiLayoutRow(col, true);
+    uiLayoutSetPropDecorate(row, false);
+    sub = uiLayoutRow(row, true);
+    uiItemR(sub, &ptr, "use_symmetry", 0, "", ICON_NONE);
+    sub = uiLayoutRow(sub, true);
+    uiLayoutSetActive(sub, RNA_boolean_get(&ptr, "use_symmetry"));
+    uiLayoutSetPropSep(sub, false);
+    uiItemR(sub, &ptr, "symmetry_axis", UI_ITEM_R_EXPAND, NULL, ICON_NONE);
+    uiItemDecoratorR(row, &ptr, "symmetry_axis", 0);
+
     uiItemR(layout, &ptr, "use_collapse_triangulate", 0, NULL, ICON_NONE);
 
     row = uiLayoutRow(layout, true);
@@ -271,47 +282,9 @@ static void panel_draw(const bContext *C, Panel *panel)
   modifier_panel_end(layout, &ptr);
 }
 
-static void decimate_symmetry_panel_header_draw(const bContext *C, Panel *panel)
-{
-  uiLayout *layout = panel->layout;
-
-  PointerRNA ptr;
-  modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
-
-  int decimate_type = RNA_enum_get(&ptr, "decimate_type");
-
-  uiLayoutSetActive(layout, decimate_type == MOD_DECIM_MODE_COLLAPSE);
-
-  uiItemR(layout, &ptr, "use_symmetry", 0, IFACE_("Symmetry"), ICON_NONE);
-}
-
-static void decimate_symmetry_panel_draw(const bContext *C, Panel *panel)
-{
-  uiLayout *layout = panel->layout;
-
-  PointerRNA ptr;
-  modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
-
-  int decimate_type = RNA_enum_get(&ptr, "decimate_type");
-
-  uiLayoutSetPropSep(layout, true);
-
-  uiLayoutSetActive(layout, decimate_type == MOD_DECIM_MODE_COLLAPSE);
-
-  uiLayout *row = uiLayoutRow(layout, false);
-  uiLayoutSetActive(row, RNA_boolean_get(&ptr, "use_symmetry"));
-  uiItemR(row, &ptr, "symmetry_axis", UI_ITEM_R_EXPAND, IFACE_("Symmetry Axis"), ICON_NONE);
-}
-
 static void panelRegister(ARegionType *region_type)
 {
-  PanelType *panel_type = modifier_panel_register(region_type, "Decimate", panel_draw);
-  modifier_subpanel_register(region_type,
-                             "array_merge",
-                             "",
-                             decimate_symmetry_panel_header_draw,
-                             decimate_symmetry_panel_draw,
-                             panel_type);
+  modifier_panel_register(region_type, "Decimate", panel_draw);
 }
 
 ModifierTypeInfo modifierType_Decimate = {



More information about the Bf-blender-cvs mailing list