[Bf-blender-cvs] [50c747d2346] modifier-panels-ui: Explode, Particle Instance modifier layouts

Hans Goudey noreply at git.blender.org
Mon Apr 6 18:09:09 CEST 2020


Commit: 50c747d234610ebfdda41177adf9b2d4f55c92f0
Author: Hans Goudey
Date:   Mon Apr 6 11:08:58 2020 -0500
Branches: modifier-panels-ui
https://developer.blender.org/rB50c747d234610ebfdda41177adf9b2d4f55c92f0

Explode, Particle Instance modifier layouts

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

M	source/blender/modifiers/intern/MOD_explode.c
M	source/blender/modifiers/intern/MOD_particleinstance.c
M	source/blender/modifiers/intern/MOD_screw.c
M	source/blender/modifiers/intern/MOD_subsurf.c

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

diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c
index ccd437197fb..09d48ecb3b2 100644
--- a/source/blender/modifiers/intern/MOD_explode.c
+++ b/source/blender/modifiers/intern/MOD_explode.c
@@ -1187,41 +1187,46 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes
 
 static void panel_draw(const bContext *C, Panel *panel)
 {
-  uiLayout *sub, *row, *col, *split;
-
+  uiLayout *sub, *row, *split;
   uiLayout *layout = panel->layout;
+
   PointerRNA ptr;
   PointerRNA ob_ptr;
   modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
   modifier_panel_buttons(C, panel);
 
   PointerRNA obj_data_ptr = RNA_pointer_get(&ob_ptr, "data");
-
   bool has_vertex_group = RNA_string_length(&ptr, "vertex_group") != 0;
 
-  split = uiLayoutSplit(layout, 0.5f, true);
-  col = uiLayoutColumn(split, true);
-  row = uiLayoutRow(col, true);
-  uiItemPointerR(row, &ptr, "vertex_group", &ob_ptr, "vertex_groups", "", ICON_NONE);
-  sub = uiLayoutRow(row, true);
-  uiLayoutSetActive(sub, has_vertex_group);
-  uiLayoutSetPropSep(sub, false);
-  uiItemR(sub, &ptr, "invert_vertex_group", 0, "", ICON_ARROW_LEFTRIGHT);
-
-  col = uiLayoutColumn(split, true);
-  uiLayoutSetActive(col, has_vertex_group);
-  uiItemR(col, &ptr, "protect", 0, NULL, ICON_NONE);
+  uiLayoutSetPropSep(layout, true);
 
   uiItemPointerR(layout, &ptr, "particle_uv", &obj_data_ptr, "uv_layers", NULL, ICON_NONE);
 
+  /* Aligned axis booleans with a single label and no decorators. */
   split = uiLayoutSplit(layout, 0.5f, false);
-  col = uiLayoutColumn(split, false);
-  uiItemR(col, &ptr, "show_alive", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "show_dead", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "show_unborn", 0, NULL, ICON_NONE);
-  col = uiLayoutColumn(split, false);
-  uiItemR(col, &ptr, "use_edge_cut", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "use_size", 0, NULL, ICON_NONE);
+  row = uiLayoutRow(split, false);
+  uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_RIGHT);
+  uiItemL(row, IFACE_("Show"), ICON_NONE);
+  row = uiLayoutRow(split, true);
+  uiLayoutSetPropSep(row, false);
+  uiItemR(row, &ptr, "show_alive", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
+  uiItemR(row, &ptr, "show_dead", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
+  uiItemR(row, &ptr, "show_unborn", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
+  uiItemL(row, "", ICON_BLANK1);
+
+  uiItemR(layout, &ptr, "use_edge_cut", 0, NULL, ICON_NONE);
+  uiItemR(layout, &ptr, "use_size", 0, NULL, ICON_NONE);
+
+  row = uiLayoutRow(layout, true);
+  uiItemPointerR(row, &ptr, "vertex_group", &ob_ptr, "vertex_groups", NULL, ICON_NONE);
+  sub = uiLayoutRow(row, true);
+  uiLayoutSetActive(sub, has_vertex_group);
+  uiLayoutSetPropDecorate(sub, false);
+  uiItemR(sub, &ptr, "invert_vertex_group", 0, "", ICON_ARROW_LEFTRIGHT);
+
+  row = uiLayoutRow(layout, false);
+  uiLayoutSetActive(row, has_vertex_group);
+  uiItemR(row, &ptr, "protect", 0, NULL, ICON_NONE);
 
   uiItemO(layout, IFACE_("Refresh"), ICON_NONE, "OBJECT_OT_explode_refresh");
 
diff --git a/source/blender/modifiers/intern/MOD_particleinstance.c b/source/blender/modifiers/intern/MOD_particleinstance.c
index 34dab7fa52b..e8d896c503b 100644
--- a/source/blender/modifiers/intern/MOD_particleinstance.c
+++ b/source/blender/modifiers/intern/MOD_particleinstance.c
@@ -560,7 +560,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes
 
 static void panel_draw(const bContext *C, Panel *panel)
 {
-  uiLayout *row, *col, *split;
+  uiLayout *row, *split;
   uiLayout *layout = panel->layout;
 
   PointerRNA ptr;
@@ -570,6 +570,8 @@ static void panel_draw(const bContext *C, Panel *panel)
 
   PointerRNA particle_obj_ptr = RNA_pointer_get(&ptr, "object");
 
+  uiLayoutSetPropSep(layout, true);
+
   uiItemR(layout, &ptr, "object", 0, NULL, ICON_NONE);
   if (!RNA_pointer_is_null(&particle_obj_ptr)) {
     uiItemPointerR(layout,
@@ -584,24 +586,38 @@ static void panel_draw(const bContext *C, Panel *panel)
     uiItemR(layout, &ptr, "particle_system_index", 0, IFACE_("Particle System"), ICON_NONE);
   }
 
-  split = uiLayoutSplit(layout, 0.5f, false);
-  col = uiLayoutColumn(split, false);
-  uiItemL(col, IFACE_("Create From:"), ICON_NONE);
-  uiItemR(col, &ptr, "use_normal", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "use_children", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "use_size", 0, NULL, ICON_NONE);
-
-  col = uiLayoutColumn(split, false);
-  uiItemL(col, IFACE_("Show Particles:"), ICON_NONE);
-  uiItemR(col, &ptr, "show_alive", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "show_unborn", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "show_dead", 0, NULL, ICON_NONE);
-
-  uiItemR(layout, &ptr, "space", 0, "", ICON_NONE);
-  row = uiLayoutRow(layout, true);
-  uiItemR(row, &ptr, "particle_amount", 0, IFACE_("Amount"), ICON_NONE);
-  uiItemR(row, &ptr, "particle_offset", 0, IFACE_("Offset"), ICON_NONE);
+  uiItemS(layout);
 
+  /* Aligned axis booleans with a single label and no decorators. */
+  split = uiLayoutSplit(layout, 0.5f, false);
+  row = uiLayoutRow(split, false);
+  uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_RIGHT);
+  uiItemL(row, IFACE_("Create Instances From"), ICON_NONE);
+  row = uiLayoutRow(split, true);
+  uiLayoutSetPropSep(row, false);
+  uiItemR(row, &ptr, "use_normal", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
+  uiItemR(row, &ptr, "use_children", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
+  uiItemR(row, &ptr, "use_size", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
+  uiItemL(row, "", ICON_BLANK1);
+
+  /* Aligned axis booleans with a single label and no decorators. */
+  split = uiLayoutSplit(layout, 0.5f, false);
+  row = uiLayoutRow(split, false);
+  uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_RIGHT);
+  uiItemL(row, IFACE_("Show"), ICON_NONE);
+  row = uiLayoutRow(split, true);
+  uiLayoutSetPropSep(row, false);
+  uiItemR(row, &ptr, "show_alive", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
+  uiItemR(row, &ptr, "show_dead", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
+  uiItemR(row, &ptr, "show_unborn", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
+  uiItemL(row, "", ICON_BLANK1);
+
+  uiItemR(layout, &ptr, "particle_amount", 0, IFACE_("Amount"), ICON_NONE);
+  uiItemR(layout, &ptr, "particle_offset", 0, IFACE_("Offset"), ICON_NONE);
+
+  uiItemS(layout);
+
+  uiItemR(layout, &ptr, "space", 0, IFACE_("Coordinate Space"), ICON_NONE);
   row = uiLayoutRow(layout, true);
   uiItemR(row, &ptr, "axis", UI_ITEM_R_EXPAND, NULL, ICON_NONE);
 
@@ -620,27 +636,39 @@ static void path_panel_draw_header(const bContext *C, Panel *panel)
 
 static void path_panel_draw(const bContext *C, Panel *panel)
 {
-  uiLayout *row, *col;
+  uiLayout *col;
   uiLayout *layout = panel->layout;
 
   PointerRNA ptr;
   PointerRNA ob_ptr;
   modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
 
-  PointerRNA obj_data_ptr = RNA_pointer_get(&ob_ptr, "data");
+  uiLayoutSetPropSep(layout, true);
+
+  uiLayoutSetActive(layout, RNA_boolean_get(&ptr, "use_path"));
+
+  col = uiLayoutColumn(layout, true);
+  uiItemR(col, &ptr, "position", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+  uiItemR(col, &ptr, "random_position", UI_ITEM_R_SLIDER, IFACE_("Random"), ICON_NONE);
+  col = uiLayoutColumn(layout, true);
+  uiItemR(col, &ptr, "rotation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+  uiItemR(col, &ptr, "random_rotation", UI_ITEM_R_SLIDER, IFACE_("Random"), ICON_NONE);
+
+  uiItemR(layout, &ptr, "use_preserve_shape", 0, NULL, ICON_NONE);
+}
 
-  col = uiLayoutColumn(layout, false);
-  uiLayoutSetActive(col, RNA_boolean_get(&ptr, "use_path"));
-  uiItemR(col, &ptr, "use_preserve_shape", 0, NULL, ICON_NONE);
+static void layers_panel_draw(const bContext *C, Panel *panel)
+{
+  uiLayout *layout = panel->layout;
+
+  PointerRNA ptr;
+  PointerRNA ob_ptr;
+  modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
+
+  PointerRNA obj_data_ptr = RNA_pointer_get(&ob_ptr, "data");
 
-  row = uiLayoutRow(col, true);
-  uiItemR(row, &ptr, "position", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
-  uiItemR(row, &ptr, "random_position", UI_ITEM_R_SLIDER, IFACE_("Random"), ICON_NONE);
-  row = uiLayoutRow(col, true);
-  uiItemR(row, &ptr, "rotation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
-  uiItemR(row, &ptr, "random_rotation", UI_ITEM_R_SLIDER, IFACE_("Random"), ICON_NONE);
+  uiLayoutSetPropSep(layout, true);
 
-  uiItemL(layout, IFACE_("Layers:"), ICON_NONE);
   uiItemPointerR(layout,
                  &ptr,
                  "index_layer_name",
@@ -666,6 +694,8 @@ static void panelRegister(ARegionType *region_type)
                              path_panel_draw_header,
                              path_panel_draw,
                              panel_type);
+  modifier_subpanel_register(
+      region_type, "particleinstance_layers", "Layers", NULL, layers_panel_draw, panel_type);
 }
 
 ModifierTypeInfo modifierType_ParticleInstance = {
diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c
index 04b84a5037c..37f004de08a 100644
--- a/source/blender/modifiers/intern/MOD_screw.c
+++ b/source/blender/modifiers/intern/MOD_screw.c
@@ -1201,8 +1201,8 @@ static void panel_draw(const bContext *C, Panel *panel)
   uiItemS(layout);
 
   col = uiLayoutColumn(layout, true);
-  uiItemR(col, &ptr, "render_steps", 0, IFACE_("Steps Render"), ICON_NONE);
-  uiItemR(col, &ptr, "steps", 0, IFACE_("Viewport"), ICON_NONE);
+  uiItemR(col, &ptr, "steps", 0, IFACE_("Steps Viewport"), ICON_NONE);
+  uiItemR(col, &ptr, "render_steps", 0, IFACE_("Render"), ICON_NONE);
 
   split = uiLayoutSplit(layout, 0.5f, false);
   row = uiLayoutRow(split, false);
diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c
index 6e79013ff99..e3cd72c9853 100644
--- a/source/blender/modifiers/intern/MOD_subsurf.c
+++ b/source/blender/modifiers/intern/MOD_subsurf.c
@@ -324,21 +324,21 @@ static void panel_draw(const bContext *C, Panel *panel)
 
   col = uiLayoutColumn(layout, false);
   if (show_adaptive_options) {
+    uiItemR(sub, &ptr, "levels", 0, "Subdivisions Viewport", ICON_NONE);
+
     uiItemR(col, &ob_cycles_ptr, "use_adaptive_subdivision", 0, "Adaptive", ICON_NONE);
     sub = uiLayoutColumn(col, true)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list