From e53bbc7ab7568e315dc3cf06dd5e989300c98786 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 7 Sep 2010 12:03:09 +0000 Subject: [PATCH] Graph Editor tweaks: Buttons for editing RNA paths/array index for F-Curves that aren't working are now actually functional. This means that when invalid paths are present, they can be manually fixed up. --- source/blender/editors/animation/anim_ipo_utils.c | 3 +++ source/blender/editors/space_graph/graph_buttons.c | 2 +- source/blender/makesrna/intern/rna_fcurve.c | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c index b71e9ac3507..4bc2654e581 100644 --- a/source/blender/editors/animation/anim_ipo_utils.c +++ b/source/blender/editors/animation/anim_ipo_utils.c @@ -157,6 +157,9 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu) /* icon for this should be the icon for the base ID */ // TODO: or should we just use the error icon? icon= RNA_struct_ui_icon(id_ptr.type); + + /* tag F-Curve as disabled - as not usable path */ + fcu->flag |= FCURVE_DISABLED; } } diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 14f684dd9e3..f4567255b91 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -184,7 +184,7 @@ static void graph_panel_properties(const bContext *C, Panel *pa) /* RNA-Path Editing - only really should be enabled when things aren't working */ col= uiLayoutColumn(layout, 1); - uiLayoutSetEnabled(col, (fcu->flag & FCURVE_DISABLED)); + uiLayoutSetEnabled(col, (fcu->flag & FCURVE_DISABLED)!=0); uiItemR(col, &fcu_ptr, "data_path", 0, "", ICON_RNA); uiItemR(col, &fcu_ptr, "array_index", 0, NULL, 0); diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index a55c3f10095..63405e08f69 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -324,8 +324,10 @@ static void rna_FCurve_RnaPath_set(PointerRNA *ptr, const char *value) if (fcu->rna_path) MEM_freeN(fcu->rna_path); - if (strlen(value)) + if (strlen(value)) { fcu->rna_path= BLI_strdup(value); + fcu->flag &= ~FCURVE_DISABLED; + } else fcu->rna_path= NULL; }