[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22109] branches/blender2.5/blender: 2. 5 - Giving shapekeys UI a bit of attention

Joshua Leung aligorith at gmail.com
Sat Aug 1 08:03:08 CEST 2009


Revision: 22109
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22109
Author:   aligorith
Date:     2009-08-01 08:03:08 +0200 (Sat, 01 Aug 2009)

Log Message:
-----------
2.5 - Giving shapekeys UI a bit of attention

* Separated value and range sliders for the value into two separate rows. Value comes before the range settings since it's used more often, and is drawn as a slider instead.

* Tweaked ranges for the sliders so that they will work sanely.

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/buttons_data_mesh.py
    branches/blender2.5/blender/source/blender/editors/object/editkey.c
    branches/blender2.5/blender/source/blender/editors/transform/transform.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_key.c

Modified: branches/blender2.5/blender/release/ui/buttons_data_mesh.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_data_mesh.py	2009-08-01 05:10:57 UTC (rev 22108)
+++ branches/blender2.5/blender/release/ui/buttons_data_mesh.py	2009-08-01 06:03:08 UTC (rev 22109)
@@ -125,7 +125,11 @@
 				if ob.active_shape_key_index != 0:
 					if not ob.shape_key_lock:
 						row = layout.row(align=True)
-						row.itemR(kb, "value", text="")
+						row.itemL(text="Value:")
+						row.itemR(kb, "value", text="", slider=True)
+						
+						row = layout.row(align=True);
+						row.itemL(text="Range:")
 						row.itemR(kb, "slider_min", text="Min")
 						row.itemR(kb, "slider_max", text="Max")
 

Modified: branches/blender2.5/blender/source/blender/editors/object/editkey.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/editkey.c	2009-08-01 05:10:57 UTC (rev 22108)
+++ branches/blender2.5/blender/source/blender/editors/object/editkey.c	2009-08-01 06:03:08 UTC (rev 22109)
@@ -164,14 +164,20 @@
 	kb= MEM_callocN(sizeof(KeyBlock), "Keyblock");
 	BLI_addtail(&key->block, kb);
 	kb->type= KEY_CARDINAL;
+	
 	tot= BLI_countlist(&key->block);
 	if(tot==1) strcpy(kb->name, "Basis");
 	else sprintf(kb->name, "Key %d", tot-1);
+	
+		// XXX this is old anim system stuff? (i.e. the 'index' of the shapekey)
 	kb->adrcode= tot-1;
 	
 	key->totkey++;
 	if(key->totkey==1) key->refkey= kb;
 	
+	kb->slidermin= 0.0f;
+	kb->slidermax= 1.0f;
+	
 	// XXX kb->pos is the confusing old horizontal-line RVK crap in old IPO Editor...
 	if(key->type == KEY_RELATIVE) 
 		kb->pos= curpos+0.1;

Modified: branches/blender2.5/blender/source/blender/editors/transform/transform.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform.c	2009-08-01 05:10:57 UTC (rev 22108)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform.c	2009-08-01 06:03:08 UTC (rev 22109)
@@ -93,6 +93,7 @@
 //#include "BSE_view.h"
 
 #include "ED_image.h"
+#include "ED_keyframing.h"
 #include "ED_screen.h"
 #include "ED_space_api.h"
 #include "ED_markers.h"
@@ -298,6 +299,10 @@
 	{
 		/* Do we need more refined tags? */
 		WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL);
+		
+		/* for realtime animation record - send notifiers recognised by animation editors */
+		if ((t->animtimer) && IS_AUTOKEY_ON(t->scene))
+			WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, NULL);
 	}
 	else if (t->spacetype == SPACE_ACTION) {
 		//SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first;

Modified: branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c	2009-08-01 05:10:57 UTC (rev 22108)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c	2009-08-01 06:03:08 UTC (rev 22109)
@@ -758,8 +758,7 @@
 		 * (i.e. uneditable animation values)
 		 */
 		// TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes?
-		// TODO: maybe the ob->adt check isn't really needed? makes it too difficult to use...
-		if (/*(ob->adt) && */(t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
+		if ((t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
 			short targetless_ik= (t->flag & T_AUTOIK); // XXX this currently doesn't work, since flags aren't set yet!
 			
 			animrecord_check_state(t->scene, &ob->id, t->animtimer);
@@ -790,8 +789,7 @@
 				 * (i.e. uneditable animation values)
 				 */
 				// TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes?
-				// TODO: maybe the ob->adt check isn't really needed? makes it too difficult to use...
-				if (/*(ob->adt) && */(t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
+				if ((t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
 					animrecord_check_state(t->scene, &ob->id, t->animtimer);
 					autokeyframe_ob_cb_func(t->scene, (View3D *)t->view, ob, t->mode);
 				}

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_key.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_key.c	2009-08-01 05:10:57 UTC (rev 22108)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_key.c	2009-08-01 06:03:08 UTC (rev 22109)
@@ -47,6 +47,21 @@
 #include "WM_api.h"
 #include "WM_types.h"
 
+static void rna_ShapeKey_value_set(PointerRNA *ptr, float value)
+{
+	KeyBlock *data= (KeyBlock*)ptr->data;
+	CLAMP(value, data->slidermin, data->slidermax);
+	data->curval= value;
+}
+
+static void rna_ShapeKey_value_range(PointerRNA *ptr, float *min, float *max)
+{
+	KeyBlock *data= (KeyBlock*)ptr->data;
+
+	*min= data->slidermin;
+	*max= data->slidermax;
+}
+
 static Key *rna_ShapeKey_find_key(ID *id)
 {
 	switch(GS(id->name)) {
@@ -345,6 +360,7 @@
 	/* for now, this is editable directly, as users can set this even if they're not animating them (to test results) */
 	prop= RNA_def_property(srna, "value", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_float_sdna(prop, NULL, "curval");
+	RNA_def_property_float_funcs(prop, NULL, "rna_ShapeKey_value_set", "rna_ShapeKey_value_range");
 	RNA_def_property_ui_text(prop, "Value", "Value of shape key at the current frame.");
 	RNA_def_property_update(prop, 0, "rna_Key_update_data");
 
@@ -380,6 +396,7 @@
 	prop= RNA_def_property(srna, "slider_max", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_float_sdna(prop, NULL, "slidermax");
 	RNA_def_property_range(prop, -10.0f, 10.0f);
+	RNA_def_property_float_default(prop, 1.0f);
 	RNA_def_property_ui_text(prop, "Slider Max", "Maximum for slider.");
 
 	prop= RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE);





More information about the Bf-blender-cvs mailing list