[Bf-blender-cvs] [4ac54cf6b0a] modifier-panels-ui: Add apply / copy buttons
Hans Goudey
noreply at git.blender.org
Fri Apr 3 23:47:18 CEST 2020
Commit: 4ac54cf6b0afb5c16e0f413e37122db69704072b
Author: Hans Goudey
Date: Thu Apr 2 18:52:10 2020 -0500
Branches: modifier-panels-ui
https://developer.blender.org/rB4ac54cf6b0afb5c16e0f413e37122db69704072b
Add apply / copy buttons
They're not working yet, but it's one possibility for
the location of these buttons.
Also make the order of statements in the panel_draw
functions more consistent.
===================================================================
M release/scripts/startup/bl_ui/properties_data_modifier.py
M source/blender/editors/include/UI_interface.h
M source/blender/editors/interface/interface_panel.c
M source/blender/editors/interface/interface_templates.c
M source/blender/editors/screen/area.c
M source/blender/modifiers/intern/MOD_armature.c
M source/blender/modifiers/intern/MOD_array.c
M source/blender/modifiers/intern/MOD_bevel.c
M source/blender/modifiers/intern/MOD_boolean.c
M source/blender/modifiers/intern/MOD_build.c
M source/blender/modifiers/intern/MOD_cast.c
M source/blender/modifiers/intern/MOD_cloth.c
M source/blender/modifiers/intern/MOD_collision.c
M source/blender/modifiers/intern/MOD_correctivesmooth.c
M source/blender/modifiers/intern/MOD_curve.c
M source/blender/modifiers/intern/MOD_datatransfer.c
M source/blender/modifiers/intern/MOD_decimate.c
M source/blender/modifiers/intern/MOD_displace.c
M source/blender/modifiers/intern/MOD_dynamicpaint.c
M source/blender/modifiers/intern/MOD_edgesplit.c
M source/blender/modifiers/intern/MOD_explode.c
M source/blender/modifiers/intern/MOD_fluid.c
M source/blender/modifiers/intern/MOD_hook.c
M source/blender/modifiers/intern/MOD_laplaciandeform.c
M source/blender/modifiers/intern/MOD_laplaciansmooth.c
M source/blender/modifiers/intern/MOD_lattice.c
M source/blender/modifiers/intern/MOD_mask.cc
M source/blender/modifiers/intern/MOD_meshcache.c
M source/blender/modifiers/intern/MOD_meshdeform.c
M source/blender/modifiers/intern/MOD_meshsequencecache.c
M source/blender/modifiers/intern/MOD_mirror.c
M source/blender/modifiers/intern/MOD_multires.c
M source/blender/modifiers/intern/MOD_normal_edit.c
M source/blender/modifiers/intern/MOD_ocean.c
M source/blender/modifiers/intern/MOD_particleinstance.c
M source/blender/modifiers/intern/MOD_particlesystem.c
M source/blender/modifiers/intern/MOD_remesh.c
M source/blender/modifiers/intern/MOD_screw.c
M source/blender/modifiers/intern/MOD_shrinkwrap.c
M source/blender/modifiers/intern/MOD_simpledeform.c
M source/blender/modifiers/intern/MOD_skin.c
M source/blender/modifiers/intern/MOD_smooth.c
M source/blender/modifiers/intern/MOD_softbody.c
M source/blender/modifiers/intern/MOD_solidify.c
M source/blender/modifiers/intern/MOD_subsurf.c
M source/blender/modifiers/intern/MOD_surface.c
M source/blender/modifiers/intern/MOD_surfacedeform.c
M source/blender/modifiers/intern/MOD_triangulate.c
M source/blender/modifiers/intern/MOD_ui_common.c
M source/blender/modifiers/intern/MOD_ui_common.h
M source/blender/modifiers/intern/MOD_uvproject.c
M source/blender/modifiers/intern/MOD_uvwarp.c
M source/blender/modifiers/intern/MOD_warp.c
M source/blender/modifiers/intern/MOD_wave.c
M source/blender/modifiers/intern/MOD_weighted_normal.c
M source/blender/modifiers/intern/MOD_weightvgedit.c
M source/blender/modifiers/intern/MOD_weightvgmix.c
M source/blender/modifiers/intern/MOD_weightvgproximity.c
M source/blender/modifiers/intern/MOD_weld.c
M source/blender/modifiers/intern/MOD_wireframe.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 7e80ad50de7..b418a2b2a91 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -54,7 +54,6 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.operator("object.modifier_active_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
layout.template_modifiers()
- # HANS-TODO: Add new modifier properties since March 20th
class DATA_UL_modifiers(UIList):
def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index def9bce591a..e6958d30ece 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -1663,11 +1663,11 @@ void UI_panel_end(const struct ScrArea *sa,
int width,
int height,
bool open);
-struct Panel *UI_panel_add(struct ScrArea *sa,
- struct ARegion *region,
- struct ListBase *panels,
- struct PanelType *panel_type,
- int modifier_index);
+struct Panel *UI_panel_add_recreate(struct ScrArea *sa,
+ struct ARegion *region,
+ struct ListBase *panels,
+ struct PanelType *panel_type,
+ int modifier_index);
void UI_panel_set_list_index(struct Panel *panel, int i);
void UI_panel_delete(struct ListBase *panels, struct Panel *panel);
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index c2367d7b03f..1e2bba24cd2 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -460,7 +460,7 @@ static void ui_offset_panel_block(uiBlock *block)
* Called in situations where panels need to be added dynamically rather than only having one panel
* corresponding to each PanelType.
*/
-Panel *UI_panel_add(
+Panel *UI_panel_add_recreate(
ScrArea *sa, ARegion *region, ListBase *panels, PanelType *panel_type, int modifier_index)
{
Panel *panel = MEM_callocN(sizeof(Panel), "new panel");
@@ -490,7 +490,7 @@ Panel *UI_panel_add(
/* Add the panel's children too. */
for (LinkData *link = panel_type->children.first; link; link = link->next) {
PanelType *child = link->data;
- UI_panel_add(sa, region, &panel->children, child, modifier_index);
+ UI_panel_add_recreate(sa, region, &panel->children, child, modifier_index);
}
BLI_addtail(panels, panel);
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index 8f2a116cc54..f0972f9b909 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -1863,69 +1863,6 @@ void uiTemplatePathBuilder(uiLayout *layout,
// /* Switch context button. */
// uiItemS(column);
-// /* Apply / Convert / Copy Buttons. */
-// if (!is_virtual && (md->mode & eModifierMode_Expanded)) {
-// row = uiLayoutRow(column, false);
-
-// if (!ELEM(md->type, eModifierType_Collision, eModifierType_Surface)) {
-// /* only here obdata, the rest of modifiers is ob level */
-// UI_block_lock_set(block, BKE_object_obdata_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
-
-// if (md->type == eModifierType_ParticleSystem) {
-// ParticleSystem *psys = ((ParticleSystemModifierData *)md)->psys;
-
-// if (!(ob->mode & OB_MODE_PARTICLE_EDIT)) {
-// if (ELEM(psys->part->ren_as, PART_DRAW_GR, PART_DRAW_OB)) {
-// uiItemO(row,
-// CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, "Convert"),
-// ICON_NONE,
-// "OBJECT_OT_duplicates_make_real");
-// }
-// else if (psys->part->ren_as == PART_DRAW_PATH) {
-// uiItemO(row,
-// CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, "Convert"),
-// ICON_NONE,
-// "OBJECT_OT_modifier_convert");
-// }
-// }
-// }
-// else {
-// uiLayoutSetOperatorContext(row, WM_OP_INVOKE_DEFAULT);
-// uiItemEnumO(row,
-// "OBJECT_OT_modifier_apply",
-// CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, "Apply"),
-// 0,
-// "apply_as",
-// MODIFIER_APPLY_DATA);
-
-// if (modifier_isSameTopology(md) && !modifier_isNonGeometrical(md)) {
-// uiItemEnumO(row,
-// "OBJECT_OT_modifier_apply",
-// CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, "Apply as Shape Key"),
-// 0,
-// "apply_as",
-// MODIFIER_APPLY_SHAPE);
-// }
-// }
-
-// UI_block_lock_clear(block);
-// UI_block_lock_set(block, ob && ID_IS_LINKED(ob), ERROR_LIBDATA_MESSAGE);
-
-// if (!ELEM(md->type,
-// eModifierType_Fluidsim,
-// eModifierType_Softbody,
-// eModifierType_ParticleSystem,
-// eModifierType_Cloth,
-// eModifierType_Fluid)) {
-// uiItemO(row,
-// CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, "Copy"),
-// ICON_NONE,
-// "OBJECT_OT_modifier_copy");
-// }
-// }
-// }
-// }
-
static PanelType *panel_type_from_modifier_type(ARegion *region, ModifierType type)
{
ARegionType *region_type = region->type;
@@ -1990,7 +1927,13 @@ void uiTemplateModifiers(uiLayout *UNUSED(layout), bContext *C)
PanelType *panel_type = panel_type_from_modifier_type(region, md->type);
BLI_assert(panel_type != NULL);
- UI_panel_add(sa, region, ®ion->panels, panel_type, i);
+ Panel *new_panel = UI_panel_add_recreate(sa, region, ®ion->panels, panel_type, i);
+ if (md->mode & eModifierMode_Expanded) {
+ new_panel->flag |= PNL_CLOSEDY;
+ }
+ else {
+ new_panel->flag &= ~PNL_CLOSEDY;
+ }
}
}
}
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 03eaa0fe11a..194ef903526 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -2594,7 +2594,6 @@ void ED_region_panels_layout_ex(const bContext *C,
}
if (has_always_recreate_panel) {
- // printf(" Drawing Recreate Panels:");
for (Panel *panel = region->panels.first; panel; panel = panel->next) {
if (panel->type != NULL) { /* Some panels don't have a type.. */
if (panel->type->flag & PANELTYPE_RECREATE) {
diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c
index 10c4840ff2a..4441d15878e 100644
--- a/source/blender/modifiers/intern/MOD_armature.c
+++ b/source/blender/modifiers/intern/MOD_armature.c
@@ -258,6 +258,7 @@ static void panel_draw(const bContext *C, Panel *panel)
PointerRNA ptr;
PointerRNA ob_ptr;
modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
+ modifier_panel_buttons(C, panel);
bool has_vertex_group = RNA_string_length(&ptr, "vertex_group") != 0;
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c
index 66f52b87a92..b03147f9f90 100644
--- a/source/blender/modifiers/intern/MOD_array.c
+++ b/source/blender/modifiers/intern/MOD_array.c
@@ -805,13 +805,13 @@ static bool isDisabled(const struct Scene *UNUSED(scene),
static void panel_draw(const bContext *C, Panel *panel)
{
- uiLayout *sub, *row, *col, *split;
-
+ uiLayout *sub, *col, *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);
uiItemR(layout, &ptr, "fit_type", 0, NULL, ICON_NONE);
@@ -848,54 +848,57 @@ static void panel_draw(const bContext *C, Panel *panel)
uiLayoutSetActive(col, RNA_boolean_get(&ptr, "use_object_offset"));
uiItemR(col, &ptr, "offset_object", 0, "", ICON_NONE);
- /* Rows. */
- uiItemL(layout, IFACE_("UV Offsets:"), ICON_NONE);
- row = uiLayoutRow(layout, false);
- sub = uiLayoutColumn(row, true);
- uiItemR(sub, &ptr, "offset_u", UI_ITEM_R_EXPAND, NULL, ICON_NONE);
- uiItemR(sub, &ptr, "offset_v", UI_ITEM_R_EXPAND, NULL, ICON_NONE);
-
- uiItemS(layout);
uiItemR(layout, &ptr, "start_cap", 0, NULL, ICON_NONE);
uiItemR(layout, &ptr, "end_cap", 0, NULL, ICON_NONE);
modifier_panel_end(layout, &ptr);
}
-static void array_merge_header_draw(const bContext *C, Panel *panel)
+static void merge_header_draw(const bContext *C, Panel *panel)
{
+ uiLayout *layout = panel->layout;
+
PointerRNA ptr;
modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
- uiLayout *layout = panel->layout;
uiItemR(layout, &ptr, "use_merge_vertices", 0, IFACE_("Merge"), ICON_NONE);
}
-static void array_merge_panel_draw(const bContext *C, Panel *panel)
+static void merge_panel_draw(const bContext *C, Panel *panel)
{
+ uiLayout *layout = panel->layout;
+
PointerRNA ptr;
modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
- uiLayout *layout = panel->layout;
uiItemR(layout, &ptr, "use_merge_vertices", 0, IFACE_("Merge"), ICON_NONE);
uiLayout *col = uiLayoutColumn(layout, false);
uiLayoutSetActive(col, RNA_boolean_get(&ptr, "use_merge_vertices"));
uiItemR(col, &ptr, "use_merge_vertices_cap", 0, IFACE_("First Last"), ICON_NONE);
uiItemR(col, &ptr, "merge_threshold", 0, IFACE_("Distance"), ICON_NONE);
+}
- modifier_panel_end(layout, &ptr);
+static void uv_panel_draw(const bContext *C, Panel *panel)
+{
+ uiLayout *row, *sub;
+ uiLayout *layout = pane
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list