Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFĂ©lix <Miadim>2022-06-27 20:29:41 +0300
committerRichard Antalik <richardantalik@gmail.com>2022-06-27 20:44:16 +0300
commit6b35d9e6fbef49d4ce61604c27393425c16cd7a6 (patch)
treead67b3e9f1c1ea448f04aeb15f295b332a4824d8 /source/blender/makesrna/intern/rna_sequencer.c
parenta2b9b9d3c48f302fd28042299d73ea0634a210f3 (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.c32
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)