diff options
author | Joshua Leung <aligorith@gmail.com> | 2015-01-26 16:09:50 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2015-01-26 16:10:26 +0300 |
commit | e0ee74a171135e0e13a65eb60fc352eb34ada542 (patch) | |
tree | 96be4d96a77c3b15d880360e43fa6a964d662c85 /source/blender/makesdna/DNA_anim_types.h | |
parent | b648ba4103f73e085fb27fa144f886f7464eeb20 (diff) |
Fix T38619: Confusing logic for Keying Set keyframing Settings
The logic used for determining whether certain keyframing settings (i.e. visual,
only needed, xyz -> rgb) got applied was wonky. The original intention here was
that the Keying Set settings would override the global settings, and the path
settings would override what was used for the Keying Set. However, that was not
happening in all cases previously, as it was only possible to add flags and not
to turn them off.
This commit fixes that by introducing separate toggles to control whether the
Keying Set/Path's settings override the settings inherited from its parent
(i.e. the Keying Set for the Path, and the User Prefs for the Keying Set).
The icons used for these toggles could get revised a bit (we need something
which communicates "override this"; the current one is the closest I could find)
WARNING: If you have old keying sets, this may cause some breakage!
Diffstat (limited to 'source/blender/makesdna/DNA_anim_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_anim_types.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 3d0d6b820d7..9e6b71fcbac 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -719,13 +719,13 @@ typedef struct KS_Path { int idtype; /* ID-type that path can be used on */ short groupmode; /* group naming (eKSP_Grouping) */ - short pad; + short flag; /* various settings, etc. */ char *rna_path; /* dynamically (or statically in the case of predefined sets) path */ int array_index; /* index that path affects */ - short flag; /* various settings, etc. */ - short keyingflag; /* settings to supply insertkey() with */ + short keyingflag; /* (eInsertKeyFlags) settings to supply insertkey() with */ + short keyingoverride; /* (eInsertKeyFlags) for each flag set, the relevant keyingflag bit overrides the default */ } KS_Path; /* KS_Path->flag */ @@ -770,10 +770,14 @@ typedef struct KeyingSet { char description[240]; /* (RNA_DYN_DESCR_MAX) short help text. */ char typeinfo[64]; /* name of the typeinfo data used for the relative paths */ + int active_path; /* index of the active path */ + short flag; /* settings for KeyingSet */ - short keyingflag; /* settings to supply insertkey() with */ - int active_path; /* index of the active path */ + short keyingflag; /* (eInsertKeyFlags) settings to supply insertkey() with */ + short keyingoverride; /* (eInsertKeyFlags) for each flag set, the relevant keyingflag bit overrides the default */ + + char pad[6]; } KeyingSet; /* KeyingSet settings */ |