Revision: 21296
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21296
Author:   blendix
Date:     2009-07-02 00:25:49 +0200 (Thu, 02 Jul 2009)

Log Message:
-----------
2.5: Lists for vertex groups, shape keys, uvs, vertex colors.

RNA
* Added the relevant active_*_index properties, with proper
  get/set/range, updates and notifiers.
* Context.tool_settings.
* ToolSettings.vertex_group_weight.

Operators
* MESH_OT_uv_texture_add/remove
* MESH_OT_vertex_color_add/remove
* MESH_OT_sticky_add/remove
* OBJECT_OT_vertex_group_add/remove/assign/remove_from/
  select/deselect/copy/copy_to_linked
* OBJECT_OT_shape_key_add/remove

UI
* Some updates and cleanups in list template code.

Known issue: when going in & out of editmode, uv textures and vertex
colors dissappear. I thought me->edit_mesh would be NULL when not in
edit mode but it is not?

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/buttons_data_mesh.py
    branches/blender2.5/blender/release/ui/buttons_data_modifier.py
    branches/blender2.5/blender/release/ui/buttons_particle.py
    branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h
    branches/blender2.5/blender/source/blender/editors/include/UI_interface.h
    branches/blender2.5/blender/source/blender/editors/interface/interface.c
    
branches/blender2.5/blender/source/blender/editors/interface/interface_templates.c
    
branches/blender2.5/blender/source/blender/editors/interface/interface_widgets.c
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c
    branches/blender2.5/blender/source/blender/editors/object/editkey.c
    branches/blender2.5/blender/source/blender/editors/object/object_intern.h
    branches/blender2.5/blender/source/blender/editors/object/object_ops.c
    
branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h
    branches/blender2.5/blender/source/blender/makesdna/DNA_screen_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_constraint.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_context.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_mesh.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_object.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_scene.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_ui_api.c

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_layers.c
    branches/blender2.5/blender/source/blender/editors/object/object_vgroup.c

Removed Paths:
-------------
    branches/blender2.5/blender/source/blender/editors/mesh/editdeform.c

Modified: branches/blender2.5/blender/release/ui/buttons_data_mesh.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_data_mesh.py 2009-07-01 
22:16:16 UTC (rev 21295)
+++ branches/blender2.5/blender/release/ui/buttons_data_mesh.py 2009-07-01 
22:25:49 UTC (rev 21296)
@@ -62,30 +62,125 @@
 
                row = layout.row()
 
-               row.template_list(ob, "materials", "active_material_index")
+               row.template_list(ob, "materials", ob, "active_material_index")
 
                col = row.column(align=True)
                col.itemO("OBJECT_OT_material_slot_add", icon="ICON_ZOOMIN", 
text="")
                col.itemO("OBJECT_OT_material_slot_remove", 
icon="ICON_ZOOMOUT", text="")
 
-               row = layout.row(align=True)
+               if context.edit_object:
+                       row = layout.row(align=True)
 
-               row.itemO("OBJECT_OT_material_slot_assign", text="Assign");
-               row.itemO("OBJECT_OT_material_slot_select", text="Select");
-               row.itemO("OBJECT_OT_material_slot_deselect", text="Deselect");
+                       row.itemO("OBJECT_OT_material_slot_assign", 
text="Assign")
+                       row.itemO("OBJECT_OT_material_slot_select", 
text="Select")
+                       row.itemO("OBJECT_OT_material_slot_deselect", 
text="Deselect")
 
+               """
                layout.itemS()
 
                box= layout.box()
 
                row = box.row()
-               row.template_list(ob, "materials", "active_material_index", 
compact=True)
+               row.template_list(ob, "materials", ob, "active_material_index", 
compact=True)
 
                subrow = row.row(align=True)
                subrow.itemO("OBJECT_OT_material_slot_add", icon="ICON_ZOOMIN", 
text="")
                subrow.itemO("OBJECT_OT_material_slot_remove", 
icon="ICON_ZOOMOUT", text="")
+               """
 
+class DATA_PT_vertex_groups(DataButtonsPanel):
+       __idname__ = "DATA_PT_vertex_groups"
+       __label__ = "Vertex Groups"
+       
+       def poll(self, context):
+               return (context.object and context.object.type in ('MESH', 
'LATTICE'))
 
+       def draw(self, context):
+               layout = self.layout
+               ob = context.object
+
+               row = layout.row()
+
+               row.template_list(ob, "vertex_groups", ob, 
"active_vertex_group_index")
+
+               col = row.column(align=True)
+               col.itemO("OBJECT_OT_vertex_group_add", icon="ICON_ZOOMIN", 
text="")
+               col.itemO("OBJECT_OT_vertex_group_remove", icon="ICON_ZOOMOUT", 
text="")
+
+               col.itemO("OBJECT_OT_vertex_group_copy", icon="ICON_BLANK1", 
text="")
+               if ob.data.users > 1:
+                       col.itemO("OBJECT_OT_vertex_group_copy_to_linked", 
icon="ICON_BLANK1", text="")
+
+               if context.edit_object:
+                       row = layout.row(align=True)
+
+                       row.itemO("OBJECT_OT_vertex_group_assign", 
text="Assign")
+                       row.itemO("OBJECT_OT_vertex_group_remove_from", 
text="Remove")
+                       row.itemO("OBJECT_OT_vertex_group_select", 
text="Select")
+                       row.itemO("OBJECT_OT_vertex_group_deselect", 
text="Deselect")
+
+                       layout.itemR(context.tool_settings, 
"vertex_group_weight", text="Weight")
+
+class DATA_PT_shape_keys(DataButtonsPanel):
+       __idname__ = "DATA_PT_shape_keys"
+       __label__ = "Shape Keys"
+       
+       def poll(self, context):
+               return (context.object and context.object.type in ('MESH', 
'LATTICE'))
+
+       def draw(self, context):
+               layout = self.layout
+               ob = context.object
+
+               row = layout.row()
+
+               key = ob.data.shape_keys
+
+               row.template_list(key, "keys", ob, "active_shape_key_index")
+
+               col = row.column(align=True)
+               col.itemO("OBJECT_OT_shape_key_add", icon="ICON_ZOOMIN", 
text="")
+               col.itemO("OBJECT_OT_shape_key_remove", icon="ICON_ZOOMOUT", 
text="")
+
+               if context.edit_object:
+                       layout.enabled = False
+
+class DATA_PT_uv_texture(DataButtonsPanel):
+       __idname__ = "DATA_PT_uv_texture"
+       __label__ = "UV Texture"
+       
+       def draw(self, context):
+               layout = self.layout
+               me = context.mesh
+
+               row = layout.row()
+
+               row.template_list(me, "uv_textures", me, 
"active_uv_texture_index")
+
+               col = row.column(align=True)
+               col.itemO("MESH_OT_uv_texture_add", icon="ICON_ZOOMIN", text="")
+               col.itemO("MESH_OT_uv_texture_remove", icon="ICON_ZOOMOUT", 
text="")
+
+class DATA_PT_vertex_colors(DataButtonsPanel):
+       __idname__ = "DATA_PT_vertex_colors"
+       __label__ = "Vertex Colors"
+       
+       def draw(self, context):
+               layout = self.layout
+               me = context.mesh
+
+               row = layout.row()
+
+               row.template_list(me, "vertex_colors", me, 
"active_vertex_color_index")
+
+               col = row.column(align=True)
+               col.itemO("MESH_OT_vertex_color_add", icon="ICON_ZOOMIN", 
text="")
+               col.itemO("MESH_OT_vertex_color_remove", icon="ICON_ZOOMOUT", 
text="")
+
 bpy.types.register(DATA_PT_mesh)
 bpy.types.register(DATA_PT_materials)
+bpy.types.register(DATA_PT_vertex_groups)
+bpy.types.register(DATA_PT_shape_keys)
+bpy.types.register(DATA_PT_uv_texture)
+bpy.types.register(DATA_PT_vertex_colors)
 

Modified: branches/blender2.5/blender/release/ui/buttons_data_modifier.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_data_modifier.py     
2009-07-01 22:16:16 UTC (rev 21295)
+++ branches/blender2.5/blender/release/ui/buttons_data_modifier.py     
2009-07-01 22:25:49 UTC (rev 21296)
@@ -350,7 +350,7 @@
                sub.itemR(md, "factor")
                sub.itemR(md, "repeat")
                
-               layout.template_pointer(md, "vertex_group", ob, "vertex_groups")
+               layout.item_pointerR(md, "vertex_group", ob, "vertex_groups")
                
        def softbody(self, layout, ob, md):
                layout.itemL(text="See Softbody panel.")

Modified: branches/blender2.5/blender/release/ui/buttons_particle.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_particle.py  2009-07-01 
22:16:16 UTC (rev 21295)
+++ branches/blender2.5/blender/release/ui/buttons_particle.py  2009-07-01 
22:25:49 UTC (rev 21296)
@@ -33,7 +33,7 @@
                if ob:
                        row = layout.row()
 
-                       row.template_list(ob, "particle_systems", 
"active_particle_system_index")
+                       row.template_list(ob, "particle_systems", ob, 
"active_particle_system_index")
 
                        col = row.column(align=True)
                        col.itemO("OBJECT_OT_particle_system_add", 
icon="ICON_ZOOMIN", text="")

Modified: 
branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c     
2009-07-01 22:16:16 UTC (rev 21295)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c     
2009-07-01 22:25:49 UTC (rev 21296)
@@ -230,7 +230,7 @@
        if(ob==0) return;
 
        for(psys=ob->particlesystem.first, i=0; psys; psys=psys->next, i++) {
-               if(i == index - 1)
+               if(i == index)
                        psys->flag |= PSYS_CURRENT;
                else
                        psys->flag &= ~PSYS_CURRENT;

Modified: 
branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c     
2009-07-01 22:16:16 UTC (rev 21295)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c     
2009-07-01 22:25:49 UTC (rev 21296)
@@ -9011,12 +9011,14 @@
                 */
                //do_versions_ipos_to_animato(main);
                
-               /* struct audio data moved to renderdata */
+               /* toolsettings */
                for(scene= main->scene.first; scene; scene= scene->id.next) {
                        scene->r.audio = scene->audio;
                        
-                       if(!scene->toolsettings->uv_selectmode)
+                       if(!scene->toolsettings->uv_selectmode) {
                                scene->toolsettings->uv_selectmode= 
UV_SELECT_VERTEX;
+                               scene->toolsettings->vgroup_weight= 1.0f;
+                       }
                }
                
                /* shader, composit and texture node trees have id.name empty, 
put something in

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h        
2009-07-01 22:16:16 UTC (rev 21295)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h        
2009-07-01 22:25:49 UTC (rev 21296)
@@ -110,7 +110,6 @@
 struct EditFace        *EM_get_actFace(struct EditMesh *em, int sloppy);
 void             EM_set_actFace(struct EditMesh *em, struct EditFace *efa);
 float            EM_face_area(struct EditFace *efa);
-void             EM_add_data_layer(struct EditMesh *em, struct CustomData 
*data, int type);
 
 void           EM_select_edge(struct EditEdge *eed, int sel);
 void           EM_select_face(struct EditFace *efa, int sel);
@@ -134,6 +133,9 @@
 struct UvMapVert *EM_get_uv_map_vert(struct UvVertMap *vmap, unsigned int v);
 void              EM_free_uv_vert_map(struct UvVertMap *vmap);
 
+void           EM_add_data_layer(struct EditMesh *em, struct CustomData *data, 
int type);
+void           EM_free_data_layer(struct EditMesh *em, struct CustomData 
*data, int type);
+
 /* editmesh_mods.c */
 extern unsigned int em_vertoffs, em_solidoffs, em_wireoffs;
 

Modified: 
branches/blender2.5/blender/source/blender/editors/include/UI_interface.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/UI_interface.h   
2009-07-01 22:16:16 UTC (rev 21295)
+++ branches/blender2.5/blender/source/blender/editors/include/UI_interface.h   
2009-07-01 22:25:49 UTC (rev 21296)
@@ -617,7 +617,7 @@
 void uiTemplateCurveMapping(uiLayout *layout, struct CurveMapping *cumap, int 
type);
 void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, char 
*propname);
 void uiTemplateImageLayers(uiLayout *layout, struct bContext *C, struct Image 
*ima, struct ImageUser *iuser);
-ListBase uiTemplateList(uiLayout *layout, struct PointerRNA *ptr, char 
*propname, char *activeprop, int rows, int columns, int compact);
+ListBase uiTemplateList(uiLayout *layout, struct PointerRNA *ptr, char 
*propname, struct PointerRNA *activeptr, char *activeprop, int rows, int 
columns, int compact);
 void uiTemplateRunningJobs(uiLayout *layout, struct bContext *C);
 void uiTemplateOperatorSearch(uiLayout *layout);
 

Modified: 
branches/blender2.5/blender/source/blender/editors/interface/interface.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface.c    
2009-07-01 22:16:16 UTC (rev 21295)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface.c    
2009-07-01 22:25:49 UTC (rev 21296)
@@ -2184,7 +2184,7 @@
                                RNA_property_int_range(ptr, prop, &hardmin, 
&hardmax);
                                RNA_property_int_ui_range(ptr, prop, &softmin, 
&softmax, &step);
 
-                               if(min == max) {
+                               if(type != ROW && min == max) {
                                        min= hardmin;
                                        max= hardmax;
                                }
@@ -2199,7 +2199,7 @@
                                RNA_property_float_range(ptr, prop, &hardmin, 
&hardmax);

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to