Commit: d2dee8f482bda04ab90af33dd0c223c91b61b720 Author: Joseph Eagar Date: Wed Apr 20 13:28:55 2022 -0700 Branches: sculpt-dev https://developer.blender.org/rBd2dee8f482bda04ab90af33dd0c223c91b61b720
Sculpt-dev: fix crash in paint brush =================================================================== M release/scripts/startup/bl_ui/properties_data_mesh.py M source/blender/blenkernel/intern/attribute.c =================================================================== diff --git a/release/scripts/startup/bl_ui/properties_data_mesh.py b/release/scripts/startup/bl_ui/properties_data_mesh.py index a04db145710..1bfd82cc790 100644 --- a/release/scripts/startup/bl_ui/properties_data_mesh.py +++ b/release/scripts/startup/bl_ui/properties_data_mesh.py @@ -12,12 +12,16 @@ class MESH_MT_vertex_group_context_menu(Menu): def draw(self, _context): layout = self.layout - layout.operator("object.vertex_group_sort", + layout.operator( + "object.vertex_group_sort", icon='SORTALPHA', - text="Sort by Name",).sort_type = 'NAME' - layout.operator("object.vertex_group_sort", + text="Sort by Name", + ).sort_type = 'NAME' + layout.operator( + "object.vertex_group_sort", icon='BONE_DATA', - text="Sort by Bone Hierarchy",).sort_type = 'BONE_HIERARCHY' + text="Sort by Bone Hierarchy", + ).sort_type = 'BONE_HIERARCHY' layout.separator() layout.operator("object.vertex_group_copy", icon='DUPLICATE') layout.operator("object.vertex_group_copy_to_selected") @@ -25,9 +29,11 @@ class MESH_MT_vertex_group_context_menu(Menu): layout.operator("object.vertex_group_mirror", icon='ARROW_LEFTRIGHT').use_topology = False layout.operator("object.vertex_group_mirror", text="Mirror Vertex Group (Topology)").use_topology = True layout.separator() - layout.operator("object.vertex_group_remove_from", + layout.operator( + "object.vertex_group_remove_from", icon='X', - text="Remove from All Groups",).use_all_groups = True + text="Remove from All Groups", + ).use_all_groups = True layout.operator("object.vertex_group_remove_from", text="Clear Active Group").use_all_verts = True layout.operator("object.vertex_group_remove", text="Delete All Unlocked Groups").all_unlocked = True layout.operator("object.vertex_group_remove", text="Delete All Groups").all = True @@ -119,8 +125,7 @@ class MESH_UL_shape_keys(UIList): class MESH_UL_uvmaps(UIList): def draw_item(self, _context, layout, _data, item, icon, _active_data, _active_propname, _index): - # assert(isinstance(item, (bpy.types.MeshTexturePolyLayer, - # bpy.types.MeshLoopColorLayer))) + # assert(isinstance(item, (bpy.types.MeshTexturePolyLayer, bpy.types.MeshLoopColorLayer))) if self.layout_type in {'DEFAULT', 'COMPACT'}: layout.prop(item, "name", text="", emboss=False, icon='GROUP_UVS') icon = 'RESTRICT_RENDER_OFF' if item.active_render else 'RESTRICT_RENDER_ON' @@ -239,7 +244,11 @@ class DATA_PT_vertex_groups(MeshButtonsPanel, Panel): col.operator("object.vertex_group_move", icon='TRIA_UP', text="").direction = 'UP' col.operator("object.vertex_group_move", icon='TRIA_DOWN', text="").direction = 'DOWN' - if (ob.vertex_groups and (ob.mode == 'EDIT' or (ob.mode == 'WEIGHT_PAINT' and ob.type == 'MESH' and ob.data.use_paint_mask_vertex))): + if ( + ob.vertex_groups and + (ob.mode == 'EDIT' or + (ob.mode == 'WEIGHT_PAINT' and ob.type == 'MESH' and ob.data.use_paint_mask_vertex)) + ): row = layout.row() sub = row.row(align=True) @@ -410,7 +419,6 @@ class DATA_PT_uv_texture(MeshButtonsPanel, Panel): col.operator("mesh.uv_texture_add", icon='ADD', text="") col.operator("mesh.uv_texture_remove", icon='REMOVE', text="") - class DATA_PT_remesh(MeshButtonsPanel, Panel): bl_label = "Remesh" bl_options = {'DEFAULT_CLOSED'} @@ -463,8 +471,6 @@ class DATA_PT_customdata(MeshButtonsPanel, Panel): else: col.operator("mesh.customdata_custom_splitnormals_add", icon='ADD') - col.operator("mesh.customdata_ids_clear", icon='X') - col = layout.column(heading="Store") col.enabled = obj is not None and obj.mode != 'EDIT' @@ -488,20 +494,6 @@ class MESH_UL_attributes(UIList): 'CORNER': "Face Corner", } - def filter_items(self, context, data, property): - attrs = getattr(data, property) - ret = [] - idxs = [] - idx = 0 - - for item in attrs: - ret.append(self.bitflag_filter_item if not item.temporary else 0) - idxs.append(idx) - - idx += 1 - - return ret, idxs - def draw_item(self, _context, layout, _data, attribute, _icon, _active_data, _active_propname, _index): data_type = attribute.bl_rna.properties['data_type'].enum_items[attribute.data_type] @@ -528,13 +520,15 @@ class DATA_PT_mesh_attributes(MeshButtonsPanel, Panel): row = layout.row() col = row.column() - col.template_list("MESH_UL_attributes", + col.template_list( + "MESH_UL_attributes", "attributes", mesh, "attributes", mesh.attributes, "active_index", - rows=3,) + rows=3, + ) col = row.column(align=True) col.operator("geometry.attribute_add", icon='ADD', text="") @@ -605,21 +599,20 @@ class MESH_UL_color_attributes(UIList, ColorAttributesListBase): split.emboss = 'NONE' split.prop(attribute, "name", text="") - sub = split.row() - sub.alignment = 'RIGHT' - sub.active = False - sub.label(text="%s ▶ %s" % (domain_name, data_type.name)) - active_render = _index == data.color_attributes.render_color_index - - row = layout.row() - row.emboss = 'NONE' - prop = row.operator( + + props = split.operator( "geometry.color_attribute_render_set", text="", icon='RESTRICT_RENDER_OFF' if active_render else 'RESTRICT_RENDER_ON', ) - prop.name = attribute.name + + props.name = attribute.name + + sub = split.row() + sub.alignment = 'RIGHT' + sub.active = False + sub.label(text="%s ▶ %s" % (domain_name, data_type.name)) class MESH_UL_color_attributes_selector(UIList, ColorAttributesListBase): @@ -656,7 +649,8 @@ class DATA_PT_vertex_colors(DATA_PT_mesh_attributes, Panel): self.draw_attribute_warnings(context, layout) -classes = (MESH_MT_vertex_group_context_menu, +classes = ( + MESH_MT_vertex_group_context_menu, MESH_MT_shape_key_context_menu, MESH_MT_attribute_context_menu, MESH_UL_vgroups, diff --git a/source/blender/blenkernel/intern/attribute.c b/source/blender/blenkernel/intern/attribute.c index a0bebfa6362..1b14419500d 100644 --- a/source/blender/blenkernel/intern/attribute.c +++ b/source/blender/blenkernel/intern/attribute.c @@ -285,7 +285,13 @@ int BKE_id_attributes_length(const ID *id, AttributeDomainMask domain_mask, Cust CustomData *customdata = info[domain].customdata; if (customdata && ((1 << (int)domain) & domain_mask)) { - length += CustomData_number_of_layers_typemask(customdata, mask); + for (int i = 0; i < customdata->totlayer; i++) { + CustomDataLayer *layer = customdata->layers + i; + + if ((mask & CD_TYPE_AS_MASK(layer->type)) && !(layer->flag & CD_FLAG_TEMPORARY)) { + length++; + } + } } } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs