From 26104c7611c193a4d389789d8e5f13c2a71fa30b Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 28 Dec 2010 06:18:56 +0000 Subject: [PATCH] - Silencing some gcc warnings (yay! I can finally use this setup again) - Graph Editor "Active Keyframe" panel now displays more descriptive error messages. In particular, hopefully this helps to alert users of the default generator modifier for Driver F-Curves - The first F-Modifier added to a list is now set to be active one for that list. --- source/blender/blenkernel/intern/fmodifier.c | 6 +++++- source/blender/blenkernel/intern/key.c | 2 +- source/blender/editors/armature/editarmature.c | 6 +++--- .../blender/editors/space_graph/graph_buttons.c | 15 +++++++++++++-- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index 1ed8241325e..0376d75d651 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -1009,9 +1009,13 @@ FModifier *add_fmodifier (ListBase *modifiers, int type) fcm->flag = FMODIFIER_FLAG_EXPANDED; BLI_addtail(modifiers, fcm); + /* tag modifier as "active" if no other modifiers exist in the stack yet */ + if (modifiers->first == modifiers->last) + fcm->flag |= FMODIFIER_FLAG_ACTIVE; + /* add modifier's data */ fcm->data= MEM_callocN(fmi->size, fmi->structName); - + /* init custom settings if necessary */ if (fmi->new_data) fmi->new_data(fcm->data); diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index c18085b2d73..8cdfbaf9e2a 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1191,7 +1191,7 @@ static void do_curve_key(Scene *scene, Object *ob, Key *key, char *out, int tot) if(key->slurph && key->type!=KEY_RELATIVE) { Nurb *nu; - int mode, i= 0, remain= 0, estep, count; + int mode=0, i= 0, remain= 0, estep=0, count=0; delta= (float)key->slurph / tot; diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 829a1d78900..7c8ef511d22 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -5037,7 +5037,7 @@ static int pose_clear_rot_exec(bContext *C, wmOperator *UNUSED(op)) else { /* perform clamping using euler form (3-components) */ float eul[3], oldeul[3], quat1[4] = {0}; - float qlen; + float qlen = 0.0f; if (pchan->rotmode == ROT_MODE_QUAT) { qlen= normalize_qt_qt(quat1, pchan->quat); @@ -5061,10 +5061,10 @@ static int pose_clear_rot_exec(bContext *C, wmOperator *UNUSED(op)) if (pchan->rotmode == ROT_MODE_QUAT) { eul_to_quat(pchan->quat, eul); - + /* restore original quat size */ mul_qt_fl(pchan->quat, qlen); - + /* quaternions flip w sign to accumulate rotations correctly */ if ((quat1[0]<0.0f && pchan->quat[0]>0.0f) || (quat1[0]>0.0f && pchan->quat[0]<0.0f)) { mul_qt_fl(pchan->quat, -1.0f); diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 21c269633f6..d34ef74b66a 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -278,8 +278,19 @@ static void graph_panel_key_properties(const bContext *C, Panel *pa) if (bezt->ipo == BEZT_IPO_BEZ) uiItemR(col, &bezt_ptr, "handle_right", 0, NULL, ICON_NULL); } - else - uiItemL(layout, "No active keyframe on F-Curve", ICON_NULL); + else { + if ((fcu->bezt == NULL) && (fcu->modifiers.first)) { + /* modifiers only - so no keyframes to be active */ + uiItemL(layout, "F-Curve only has F-Modifiers", ICON_NULL); + uiItemL(layout, "See Modifiers panel below", ICON_INFO); + } + else if (fcu->fpt) { + /* samples only */ + uiItemL(layout, "F-Curve doesn't have any keyframes as it only contains sampled points", ICON_NULL); + } + else + uiItemL(layout, "No active keyframe on F-Curve", ICON_NULL); + } MEM_freeN(ale); }