diff options
author | FĂ©lix <Miadim> | 2022-06-27 20:29:41 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2022-06-27 20:44:16 +0300 |
commit | 6b35d9e6fbef49d4ce61604c27393425c16cd7a6 (patch) | |
tree | ad67b3e9f1c1ea448f04aeb15f295b332a4824d8 /source/blender/makesrna/intern/rna_sequencer.c | |
parent | a2b9b9d3c48f302fd28042299d73ea0634a210f3 (diff) |
VSE: Add API function to select displayed meta strip
Use function `sequence_editor.display_stack(meta_strip)` to set
displayed timeline content.
To view top-level timeline, that does not belong to any meta strip, pass
`None` as argument.
Differential Revision: https://developer.blender.org/D12048
Diffstat (limited to 'source/blender/makesrna/intern/rna_sequencer.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_sequencer.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 100d90df5d6..9bfdcda79a7 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -43,6 +43,7 @@ #include "SEQ_prefetch.h" #include "SEQ_proxy.h" #include "SEQ_relations.h" +#include "SEQ_select.h" #include "SEQ_sequencer.h" #include "SEQ_sound.h" #include "SEQ_time.h" @@ -1107,6 +1108,26 @@ static void rna_SequenceEditor_overlay_frame_set(PointerRNA *ptr, int value) } } +static void rna_SequenceEditor_display_stack(ID *id, + Editing *ed, + ReportList *reports, + Sequence *seqm) +{ + /* Check for non-meta sequence */ + if (seqm != NULL && seqm->type != SEQ_TYPE_META && SEQ_exists_in_seqbase(seqm, &ed->seqbase)) { + BKE_report(reports, RPT_ERROR, "Sequence type must be 'META'"); + return; + } + + /* Get editing base of meta sequence */ + Scene *scene = (Scene *)id; + SEQ_meta_stack_set(scene, seqm); + /* De-activate strip. This is to prevent strip from different timeline being drawn. */ + SEQ_select_active_set(scene, NULL); + + WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene); +} + static bool modifier_seq_cmp_fn(Sequence *seq, void *arg_pt) { SequenceSearchData *data = arg_pt; @@ -2116,6 +2137,8 @@ static void rna_def_channel(BlenderRNA *brna) static void rna_def_editor(BlenderRNA *brna) { StructRNA *srna; + FunctionRNA *func; + PropertyRNA *parm; PropertyRNA *prop; static const EnumPropertyItem editing_storage_items[] = { @@ -2259,6 +2282,15 @@ static void rna_def_editor(BlenderRNA *brna) "Prefetch Frames", "Render frames ahead of current frame in the background for faster playback"); RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, NULL); + + /* functions */ + + func = RNA_def_function(srna, "display_stack", "rna_SequenceEditor_display_stack"); + RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_REPORTS); + RNA_def_function_ui_description(func, "Display sequences stack"); + parm = RNA_def_pointer( + func, "meta_sequence", "Sequence", "Meta Sequence", "Meta to display its stack"); + RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); } static void rna_def_filter_video(StructRNA *srna) |