diff options
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_edit.c')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_edit.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 11451091680..1c9b3676b19 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -34,6 +34,7 @@ #include "BLT_translation.h" +#include "DNA_anim_types.h" #include "DNA_scene_types.h" #include "DNA_sound_types.h" @@ -138,6 +139,42 @@ bool ED_space_sequencer_check_show_strip(SpaceSeq *sseq) ELEM(sseq->mainb, SEQ_DRAW_SEQUENCE, SEQ_DRAW_IMG_IMBUF)); } +static bool sequencer_fcurves_targets_color_strip(const FCurve *fcurve) +{ + if (!BLI_str_startswith(fcurve->rna_path, "sequence_editor.sequences_all[\"")) { + return false; + } + + if (!BLI_str_endswith(fcurve->rna_path, "\"].color")) { + return false; + } + + return true; +} + +/* + * Check if there is animation attached to a strip, that is shown on the strip in the UI. + * + * - Colors of color strips are displayed on the strip itself. + */ +bool ED_space_sequencer_has_visible_animation_on_strip(const struct Scene *scene) +{ + if (!scene->adt) { + return false; + } + if (!scene->adt->action) { + return false; + } + + LISTBASE_FOREACH (FCurve *, fcurve, &scene->adt->action->curves) { + if (sequencer_fcurves_targets_color_strip(fcurve)) { + return true; + } + } + + return false; +} + /** \} */ /* -------------------------------------------------------------------- */ |