Revision: 23121
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23121
Author:   aligorith
Date:     2009-09-11 11:09:54 +0200 (Fri, 11 Sep 2009)

Log Message:
-----------
2.5: Two Bugfixes

* Mesh Deform modifier now correctly shows Bind/Unbind buttons. Previously, 
only Bind got shown...

* Selecting keyframes in the Graph Editor using Border Select now allows the 
keyframes to be editable afterwards. Previously, the curves weren't getting 
selected afterwards, therefore, the poll operators would skip those curves.

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/buttons_data_modifier.py
    
branches/blender2.5/blender/source/blender/editors/space_graph/graph_select.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c

Modified: branches/blender2.5/blender/release/ui/buttons_data_modifier.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_data_modifier.py     
2009-09-11 03:00:09 UTC (rev 23120)
+++ branches/blender2.5/blender/release/ui/buttons_data_modifier.py     
2009-09-11 09:09:54 UTC (rev 23121)
@@ -242,10 +242,13 @@
 
                layout.itemS()
                
-               layout.itemO("object.meshdeform_bind", text="Bind")
-               row = layout.row()
-               row.itemR(md, "precision")
-               row.itemR(md, "dynamic")
+               if md.is_bound:
+                       layout.itemO("object.meshdeform_bind", text="Unbind")
+               else:
+                       layout.itemO("object.meshdeform_bind", text="Bind")
+                       row = layout.row()
+                       row.itemR(md, "precision")
+                       row.itemR(md, "dynamic")
                
        def MIRROR(self, layout, ob, md):
                layout.itemR(md, "merge_limit")

Modified: 
branches/blender2.5/blender/source/blender/editors/space_graph/graph_select.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_graph/graph_select.c   
    2009-09-11 03:00:09 UTC (rev 23120)
+++ 
branches/blender2.5/blender/source/blender/editors/space_graph/graph_select.c   
    2009-09-11 09:09:54 UTC (rev 23121)
@@ -234,6 +234,7 @@
        /* loop over data, doing border select */
        for (ale= anim_data.first; ale; ale= ale->next) {
                AnimData *adt= ANIM_nla_mapping_get(ac, ale);
+               FCurve *fcu= (FCurve *)ale->key_data;
                
                /* set horizontal range (if applicable) */
                if (mode != BEZT_OK_VALUERANGE) {
@@ -253,7 +254,13 @@
                }
                
                /* select keyframes that are in the appropriate places */
-               ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, 
select_cb, NULL);
+               ANIM_fcurve_keys_bezier_loop(&bed, fcu, ok_cb, select_cb, NULL);
+               
+               /* select the curve too 
+                * NOTE: this should really only happen if the curve got 
touched...
+                */
+               if (selectmode == SELECT_ADD)
+                       fcu->flag |= FCURVE_SELECTED;
        }
        
        /* cleanup */

Modified: 
branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c   
2009-09-11 03:00:09 UTC (rev 23120)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c   
2009-09-11 09:09:54 UTC (rev 23121)
@@ -384,6 +384,11 @@
        modifier_object_set(&((ArrayModifierData*)ptr->data)->curve_ob, 
OB_CURVE, value);
 }
 
+static int rna_MeshDeformModifier_is_bound_get(PointerRNA *ptr)
+{
+       return (((MeshDeformModifierData*)ptr->data)->bindcos != NULL);
+}
+
 static PointerRNA rna_SoftBodyModifier_settings_get(PointerRNA *ptr)
 {
        Object *ob= (Object*)ptr->id.data;
@@ -1368,7 +1373,12 @@
        RNA_def_property_pointer_funcs(prop, NULL, 
"rna_MeshDeformModifier_object_set", NULL);
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
-
+       
+       prop= RNA_def_property(srna, "is_bound", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_funcs(prop, 
"rna_MeshDeformModifier_is_bound_get", NULL);
+       RNA_def_property_ui_text(prop, "Bound", "Whether geometry has been 
bound to control cage.");
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       
        prop= RNA_def_property(srna, "invert", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", 
MOD_MDEF_INVERT_VGROUP);
        RNA_def_property_ui_text(prop, "Invert", "Invert vertex group 
influence.");


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to