Cleanup: VSE effects never have 3 inputs, remove seq3 handling
"seq3" input for VSE effect strips has been there ever since "initial revision" commit in 2002, with comment "pointers voor effecten" even. But it has never been used, so remove all code that pretends to do something with it. Pull Request: https://projects.blender.org/blender/blender/pulls/127401
This commit is contained in:
committed by
Aras Pranckevicius
parent
1a52f2bbab
commit
30dbb7820d
@@ -1436,10 +1436,8 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
|
||||
load_data_init_from_operator(&load_data, C, op);
|
||||
load_data.effect.type = RNA_enum_get(op->ptr, "type");
|
||||
|
||||
Sequence *seq1, *seq2, *seq3;
|
||||
if (!seq_effect_find_selected(
|
||||
scene, nullptr, load_data.effect.type, &seq1, &seq2, &seq3, &error_msg))
|
||||
{
|
||||
Sequence *seq1, *seq2;
|
||||
if (!seq_effect_find_selected(scene, nullptr, load_data.effect.type, &seq1, &seq2, &error_msg)) {
|
||||
BKE_report(op->reports, RPT_ERROR, error_msg);
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
@@ -1450,13 +1448,11 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
|
||||
|
||||
load_data.effect.seq1 = seq1;
|
||||
load_data.effect.seq2 = seq2;
|
||||
load_data.effect.seq3 = seq3;
|
||||
|
||||
/* Set channel. If unset, use lowest free one above strips. */
|
||||
if (!RNA_struct_property_is_set(op->ptr, "channel")) {
|
||||
if (seq1 != nullptr) {
|
||||
int chan = max_iii(
|
||||
seq1 ? seq1->machine : 0, seq2 ? seq2->machine : 0, seq3 ? seq3->machine : 0);
|
||||
int chan = max_ii(seq1 ? seq1->machine : 0, seq2 ? seq2->machine : 0);
|
||||
if (chan < MAXSEQ) {
|
||||
load_data.channel = chan;
|
||||
}
|
||||
|
||||
@@ -406,12 +406,6 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
|
||||
scene, seq, (snap_frame - SEQ_time_left_handle_frame_get(scene, seq)));
|
||||
}
|
||||
}
|
||||
else if (seq->seq3 && (seq->seq3->flag & SELECT)) {
|
||||
if (!either_handle_selected) {
|
||||
SEQ_offset_animdata(
|
||||
scene, seq, (snap_frame - SEQ_time_left_handle_frame_get(scene, seq)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1206,11 +1200,10 @@ int seq_effect_find_selected(Scene *scene,
|
||||
int type,
|
||||
Sequence **r_selseq1,
|
||||
Sequence **r_selseq2,
|
||||
Sequence **r_selseq3,
|
||||
const char **r_error_str)
|
||||
{
|
||||
Editing *ed = SEQ_editing_get(scene);
|
||||
Sequence *seq1 = nullptr, *seq2 = nullptr, *seq3 = nullptr;
|
||||
Sequence *seq1 = nullptr, *seq2 = nullptr;
|
||||
|
||||
*r_error_str = nullptr;
|
||||
|
||||
@@ -1219,7 +1212,7 @@ int seq_effect_find_selected(Scene *scene,
|
||||
}
|
||||
|
||||
if (SEQ_effect_get_num_inputs(type) == 0) {
|
||||
*r_selseq1 = *r_selseq2 = *r_selseq3 = nullptr;
|
||||
*r_selseq1 = *r_selseq2 = nullptr;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1236,25 +1229,14 @@ int seq_effect_find_selected(Scene *scene,
|
||||
else if (seq1 == nullptr) {
|
||||
seq1 = seq;
|
||||
}
|
||||
else if (seq3 == nullptr) {
|
||||
seq3 = seq;
|
||||
}
|
||||
else {
|
||||
*r_error_str = N_("Cannot apply effect to more than 3 sequence strips");
|
||||
*r_error_str = N_("Cannot apply effect to more than 2 sequence strips");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Make sequence selection a little bit more intuitive
|
||||
* for 3 strips: the last-strip should be seq3. */
|
||||
if (seq3 != nullptr && seq2 != nullptr) {
|
||||
Sequence *tmp = seq2;
|
||||
seq2 = seq3;
|
||||
seq3 = tmp;
|
||||
}
|
||||
|
||||
switch (SEQ_effect_get_num_inputs(type)) {
|
||||
case 1:
|
||||
if (seq2 == nullptr) {
|
||||
@@ -1264,34 +1246,24 @@ int seq_effect_find_selected(Scene *scene,
|
||||
if (seq1 == nullptr) {
|
||||
seq1 = seq2;
|
||||
}
|
||||
if (seq3 == nullptr) {
|
||||
seq3 = seq2;
|
||||
}
|
||||
ATTR_FALLTHROUGH;
|
||||
case 2:
|
||||
if (seq1 == nullptr || seq2 == nullptr) {
|
||||
*r_error_str = N_("2 selected sequence strips are needed");
|
||||
return 0;
|
||||
}
|
||||
if (seq3 == nullptr) {
|
||||
seq3 = seq2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (seq1 == nullptr && seq2 == nullptr && seq3 == nullptr) {
|
||||
if (seq1 == nullptr && seq2 == nullptr) {
|
||||
*r_error_str = N_("TODO: in what cases does this happen?");
|
||||
return 0;
|
||||
}
|
||||
|
||||
*r_selseq1 = seq1;
|
||||
*r_selseq2 = seq2;
|
||||
*r_selseq3 = seq3;
|
||||
|
||||
/* TODO(Richard): This function needs some refactoring, this is just quick hack for #73828. */
|
||||
if (SEQ_effect_get_num_inputs(type) < 3) {
|
||||
*r_selseq3 = nullptr;
|
||||
}
|
||||
if (SEQ_effect_get_num_inputs(type) < 2) {
|
||||
*r_selseq2 = nullptr;
|
||||
}
|
||||
@@ -1302,7 +1274,7 @@ int seq_effect_find_selected(Scene *scene,
|
||||
static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
Sequence *seq1, *seq2, *seq3, *last_seq = SEQ_select_active_get(scene);
|
||||
Sequence *seq1, *seq2, *last_seq = SEQ_select_active_get(scene);
|
||||
const char *error_msg;
|
||||
|
||||
if (SEQ_effect_get_num_inputs(last_seq->type) == 0) {
|
||||
@@ -1310,8 +1282,7 @@ static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op)
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
if (!seq_effect_find_selected(
|
||||
scene, last_seq, last_seq->type, &seq1, &seq2, &seq3, &error_msg) ||
|
||||
if (!seq_effect_find_selected(scene, last_seq, last_seq->type, &seq1, &seq2, &error_msg) ||
|
||||
SEQ_effect_get_num_inputs(last_seq->type) == 0)
|
||||
{
|
||||
BKE_report(op->reports, RPT_ERROR, error_msg);
|
||||
@@ -1319,8 +1290,7 @@ static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op)
|
||||
}
|
||||
/* Check if reassigning would create recursivity. */
|
||||
if (SEQ_relations_render_loop_check(seq1, last_seq) ||
|
||||
SEQ_relations_render_loop_check(seq2, last_seq) ||
|
||||
SEQ_relations_render_loop_check(seq3, last_seq))
|
||||
SEQ_relations_render_loop_check(seq2, last_seq))
|
||||
{
|
||||
BKE_report(op->reports, RPT_ERROR, "Cannot reassign inputs: recursion detected");
|
||||
return OPERATOR_CANCELLED;
|
||||
@@ -1328,7 +1298,6 @@ static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op)
|
||||
|
||||
last_seq->seq1 = seq1;
|
||||
last_seq->seq2 = seq2;
|
||||
last_seq->seq3 = seq3;
|
||||
|
||||
int old_start = last_seq->start;
|
||||
|
||||
@@ -1407,7 +1376,7 @@ void SEQUENCER_OT_swap_inputs(wmOperatorType *ot)
|
||||
/* Identifiers. */
|
||||
ot->name = "Swap Inputs";
|
||||
ot->idname = "SEQUENCER_OT_swap_inputs";
|
||||
ot->description = "Swap the first two inputs for the effect strip";
|
||||
ot->description = "Swap the two inputs of the effect strip";
|
||||
|
||||
/* Api callbacks. */
|
||||
ot->exec = sequencer_swap_inputs_exec;
|
||||
@@ -2363,7 +2332,7 @@ static Sequence *find_next_prev_sequence(Scene *scene, Sequence *test, int lr, i
|
||||
|
||||
static bool seq_is_parent(const Sequence *par, const Sequence *seq)
|
||||
{
|
||||
return ((par->seq1 == seq) || (par->seq2 == seq) || (par->seq3 == seq));
|
||||
return ((par->seq1 == seq) || (par->seq2 == seq));
|
||||
}
|
||||
|
||||
static int sequencer_swap_exec(bContext *C, wmOperator *op)
|
||||
@@ -2384,13 +2353,11 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op)
|
||||
if (seq) {
|
||||
|
||||
/* Disallow effect strips. */
|
||||
if (SEQ_effect_get_num_inputs(seq->type) >= 1 &&
|
||||
(seq->effectdata || seq->seq1 || seq->seq2 || seq->seq3))
|
||||
{
|
||||
if (SEQ_effect_get_num_inputs(seq->type) >= 1 && (seq->effectdata || seq->seq1 || seq->seq2)) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
if ((SEQ_effect_get_num_inputs(active_seq->type) >= 1) &&
|
||||
(active_seq->effectdata || active_seq->seq1 || active_seq->seq2 || active_seq->seq3))
|
||||
(active_seq->effectdata || active_seq->seq1 || active_seq->seq2))
|
||||
{
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
@@ -2650,34 +2617,12 @@ void SEQUENCER_OT_swap_data(wmOperatorType *ot)
|
||||
/** \name Change Effect Input Operator
|
||||
* \{ */
|
||||
|
||||
static const EnumPropertyItem prop_change_effect_input_types[] = {
|
||||
{0, "A_B", 0, "A " BLI_STR_UTF8_RIGHTWARDS_ARROW " B", ""},
|
||||
{1, "B_C", 0, "B " BLI_STR_UTF8_RIGHTWARDS_ARROW " C", ""},
|
||||
{2, "A_C", 0, "A " BLI_STR_UTF8_RIGHTWARDS_ARROW " C", ""},
|
||||
{0, nullptr, 0, nullptr, nullptr},
|
||||
};
|
||||
|
||||
static int sequencer_change_effect_input_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
Sequence *seq = SEQ_select_active_get(scene);
|
||||
|
||||
Sequence **seq_1, **seq_2;
|
||||
|
||||
switch (RNA_enum_get(op->ptr, "swap")) {
|
||||
case 0:
|
||||
seq_1 = &seq->seq1;
|
||||
seq_2 = &seq->seq2;
|
||||
break;
|
||||
case 1:
|
||||
seq_1 = &seq->seq2;
|
||||
seq_2 = &seq->seq3;
|
||||
break;
|
||||
default: /* 2 */
|
||||
seq_1 = &seq->seq1;
|
||||
seq_2 = &seq->seq3;
|
||||
break;
|
||||
}
|
||||
Sequence **seq_1 = &seq->seq1, **seq_2 = &seq->seq2;
|
||||
|
||||
if (*seq_1 == nullptr || *seq_2 == nullptr) {
|
||||
BKE_report(op->reports, RPT_ERROR, "One of the effect inputs is unset, cannot swap");
|
||||
@@ -2704,9 +2649,6 @@ void SEQUENCER_OT_change_effect_input(wmOperatorType *ot)
|
||||
|
||||
/* Flags. */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
|
||||
ot->prop = RNA_def_enum(
|
||||
ot->srna, "swap", prop_change_effect_input_types, 0, "Swap", "The effect inputs to swap");
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
@@ -177,7 +177,6 @@ int seq_effect_find_selected(Scene *scene,
|
||||
int type,
|
||||
Sequence **r_selseq1,
|
||||
Sequence **r_selseq2,
|
||||
Sequence **r_selseq3,
|
||||
const char **r_error_str);
|
||||
|
||||
/* Operator helpers. */
|
||||
|
||||
@@ -2422,9 +2422,6 @@ static bool select_grouped_effect(blender::Span<Sequence *> strips,
|
||||
if (seq->seq2) {
|
||||
seq->seq2->flag |= SELECT;
|
||||
}
|
||||
if (seq->seq3) {
|
||||
seq->seq3->flag |= SELECT;
|
||||
}
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,16 +194,14 @@ typedef struct Sequence {
|
||||
float startstill, endstill;
|
||||
/** Machine: the strip channel */
|
||||
int machine;
|
||||
int _pad;
|
||||
/** Starting and ending points of the effect strip. Undefined for other strip types. */
|
||||
int startdisp, enddisp;
|
||||
float sat;
|
||||
float mul;
|
||||
float _pad1;
|
||||
|
||||
short anim_preseek; /* UNUSED. */
|
||||
/** Stream-index for movie or sound files with several streams. */
|
||||
short streamindex;
|
||||
short _pad;
|
||||
/** For multi-camera source selection. */
|
||||
int multicam_source;
|
||||
/** MOVIECLIP render flags. */
|
||||
@@ -231,7 +229,7 @@ typedef struct Sequence {
|
||||
float speed_fader;
|
||||
|
||||
/* pointers for effects: */
|
||||
struct Sequence *seq1, *seq2, *seq3;
|
||||
struct Sequence *seq1, *seq2;
|
||||
|
||||
/** List of strips for meta-strips. */
|
||||
ListBase seqbase;
|
||||
@@ -291,7 +289,6 @@ typedef struct Sequence {
|
||||
float speed_factor;
|
||||
|
||||
struct SeqRetimingKey *retiming_keys;
|
||||
void *_pad5;
|
||||
int retiming_keys_num;
|
||||
char _pad6[4];
|
||||
|
||||
|
||||
@@ -2696,16 +2696,6 @@ static void rna_def_effect_inputs(StructRNA *srna, int count)
|
||||
RNA_def_property_pointer_funcs(prop, nullptr, "rna_Sequence_input_2_set", nullptr, nullptr);
|
||||
RNA_def_property_ui_text(prop, "Input 2", "Second input for the effect strip");
|
||||
}
|
||||
|
||||
# if 0
|
||||
if (count == 3) {
|
||||
/* Not used by any effects (perhaps one day plugins?). */
|
||||
prop = RNA_def_property(srna, "input_3", PROP_POINTER, PROP_NONE);
|
||||
RNA_def_property_pointer_sdna(prop, nullptr, "seq3");
|
||||
RNA_def_property_flag(prop, PROP_EDITABLE | PROP_NEVER_NULL);
|
||||
RNA_def_property_ui_text(prop, "Input 3", "Third input for the effect strip");
|
||||
}
|
||||
# endif
|
||||
}
|
||||
|
||||
static void rna_def_color_management(StructRNA *srna)
|
||||
|
||||
@@ -450,8 +450,7 @@ static Sequence *rna_Sequences_new_effect(ID *id,
|
||||
int frame_start,
|
||||
int frame_end,
|
||||
Sequence *seq1,
|
||||
Sequence *seq2,
|
||||
Sequence *seq3)
|
||||
Sequence *seq2)
|
||||
{
|
||||
Scene *scene = (Scene *)id;
|
||||
Sequence *seq;
|
||||
@@ -476,17 +475,11 @@ static Sequence *rna_Sequences_new_effect(ID *id,
|
||||
return nullptr;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (seq1 == nullptr || seq2 == nullptr || seq3 == nullptr) {
|
||||
BKE_report(reports, RPT_ERROR, "Sequences.new_effect: effect takes 3 input sequences");
|
||||
return nullptr;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
BKE_reportf(
|
||||
reports,
|
||||
RPT_ERROR,
|
||||
"Sequences.new_effect: effect expects more than 3 inputs (%d, should never happen!)",
|
||||
"Sequences.new_effect: effect expects more than 2 inputs (%d, should never happen!)",
|
||||
num_inputs);
|
||||
return nullptr;
|
||||
}
|
||||
@@ -497,7 +490,6 @@ static Sequence *rna_Sequences_new_effect(ID *id,
|
||||
load_data.effect.type = type;
|
||||
load_data.effect.seq1 = seq1;
|
||||
load_data.effect.seq2 = seq2;
|
||||
load_data.effect.seq3 = seq3;
|
||||
seq = SEQ_add_effect_strip(scene, seqbase, &load_data);
|
||||
|
||||
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
|
||||
@@ -515,11 +507,10 @@ static Sequence *rna_Sequences_editing_new_effect(ID *id,
|
||||
int frame_start,
|
||||
int frame_end,
|
||||
Sequence *seq1,
|
||||
Sequence *seq2,
|
||||
Sequence *seq3)
|
||||
Sequence *seq2)
|
||||
{
|
||||
return rna_Sequences_new_effect(
|
||||
id, &ed->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2, seq3);
|
||||
id, &ed->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2);
|
||||
}
|
||||
|
||||
static Sequence *rna_Sequences_meta_new_effect(ID *id,
|
||||
@@ -531,11 +522,10 @@ static Sequence *rna_Sequences_meta_new_effect(ID *id,
|
||||
int frame_start,
|
||||
int frame_end,
|
||||
Sequence *seq1,
|
||||
Sequence *seq2,
|
||||
Sequence *seq3)
|
||||
Sequence *seq2)
|
||||
{
|
||||
return rna_Sequences_new_effect(
|
||||
id, &seq->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2, seq3);
|
||||
id, &seq->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2);
|
||||
}
|
||||
|
||||
static void rna_Sequences_remove(
|
||||
@@ -1075,7 +1065,6 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri
|
||||
INT_MAX);
|
||||
RNA_def_pointer(func, "seq1", "Sequence", "", "Sequence 1 for effect");
|
||||
RNA_def_pointer(func, "seq2", "Sequence", "", "Sequence 2 for effect");
|
||||
RNA_def_pointer(func, "seq3", "Sequence", "", "Sequence 3 for effect");
|
||||
/* return type */
|
||||
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
|
||||
RNA_def_function_return(func, parm);
|
||||
|
||||
@@ -48,7 +48,6 @@ struct SeqLoadData {
|
||||
int end_frame;
|
||||
Sequence *seq1;
|
||||
Sequence *seq2;
|
||||
Sequence *seq3;
|
||||
} effect; /* Only for effect strips. */
|
||||
eSeqLoadFlags flags;
|
||||
eSeqImageFitMethod fit_method;
|
||||
|
||||
@@ -243,16 +243,11 @@ void SEQ_query_strip_effect_chain(const Scene *scene,
|
||||
if (reference_strip->seq2) {
|
||||
SEQ_query_strip_effect_chain(scene, reference_strip->seq2, seqbase, strips);
|
||||
}
|
||||
if (reference_strip->seq3) {
|
||||
SEQ_query_strip_effect_chain(scene, reference_strip->seq3, seqbase, strips);
|
||||
}
|
||||
}
|
||||
|
||||
/* Find all strips connected to reference_strip. */
|
||||
LISTBASE_FOREACH (Sequence *, seq_test, seqbase) {
|
||||
if (seq_test->seq1 == reference_strip || seq_test->seq2 == reference_strip ||
|
||||
seq_test->seq3 == reference_strip)
|
||||
{
|
||||
if (seq_test->seq1 == reference_strip || seq_test->seq2 == reference_strip) {
|
||||
SEQ_query_strip_effect_chain(scene, seq_test, seqbase, strips);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,9 +316,6 @@ static void seq_new_fix_links_recursive(Sequence *seq)
|
||||
if (seq->seq2 && seq->seq2->tmp) {
|
||||
seq->seq2 = static_cast<Sequence *>(seq->seq2->tmp);
|
||||
}
|
||||
if (seq->seq3 && seq->seq3->tmp) {
|
||||
seq->seq3 = static_cast<Sequence *>(seq->seq3->tmp);
|
||||
}
|
||||
}
|
||||
else if (seq->type == SEQ_TYPE_META) {
|
||||
LISTBASE_FOREACH (Sequence *, seqn, &seq->seqbase) {
|
||||
@@ -829,12 +826,6 @@ static bool seq_read_data_cb(Sequence *seq, void *user_data)
|
||||
|
||||
BLO_read_struct(reader, Sequence, &seq->seq1);
|
||||
BLO_read_struct(reader, Sequence, &seq->seq2);
|
||||
BLO_read_struct(reader, Sequence, &seq->seq3);
|
||||
|
||||
/* a patch: after introduction of effects with 3 input strips */
|
||||
if (seq->seq3 == nullptr) {
|
||||
seq->seq3 = seq->seq2;
|
||||
}
|
||||
|
||||
if (seq->effectdata) {
|
||||
switch (seq->type) {
|
||||
|
||||
@@ -167,7 +167,6 @@ Sequence *SEQ_add_effect_strip(Scene *scene, ListBase *seqbase, SeqLoadData *loa
|
||||
sh.init(seq);
|
||||
seq->seq1 = load_data->effect.seq1;
|
||||
seq->seq2 = load_data->effect.seq2;
|
||||
seq->seq3 = load_data->effect.seq3;
|
||||
|
||||
if (SEQ_effect_get_num_inputs(seq->type) == 1) {
|
||||
seq->blend_mode = seq->seq1->blend_mode;
|
||||
|
||||
@@ -367,13 +367,6 @@ static bool seq_edit_split_effect_inputs_intersect(const Scene *scene,
|
||||
scene, seq->seq2, timeline_frame);
|
||||
}
|
||||
}
|
||||
if (seq->seq3) {
|
||||
input_does_intersect |= seq_edit_split_intersect_check(scene, seq->seq3, timeline_frame);
|
||||
if ((seq->seq1->type & SEQ_TYPE_EFFECT) != 0) {
|
||||
input_does_intersect |= seq_edit_split_effect_inputs_intersect(
|
||||
scene, seq->seq3, timeline_frame);
|
||||
}
|
||||
}
|
||||
return input_does_intersect;
|
||||
}
|
||||
|
||||
|
||||
@@ -379,8 +379,7 @@ bool SEQ_relations_render_loop_check(Sequence *seq_main, Sequence *seq)
|
||||
}
|
||||
|
||||
if ((seq_main->seq1 && SEQ_relations_render_loop_check(seq_main->seq1, seq)) ||
|
||||
(seq_main->seq2 && SEQ_relations_render_loop_check(seq_main->seq2, seq)) ||
|
||||
(seq_main->seq3 && SEQ_relations_render_loop_check(seq_main->seq3, seq)))
|
||||
(seq_main->seq2 && SEQ_relations_render_loop_check(seq_main->seq2, seq)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -59,16 +59,13 @@ bool SEQ_transform_seqbase_isolated_sel_check(ListBase *seqbase)
|
||||
|
||||
if (seq->flag & SELECT) {
|
||||
if ((seq->seq1 && (seq->seq1->flag & SELECT) == 0) ||
|
||||
(seq->seq2 && (seq->seq2->flag & SELECT) == 0) ||
|
||||
(seq->seq3 && (seq->seq3->flag & SELECT) == 0))
|
||||
(seq->seq2 && (seq->seq2->flag & SELECT) == 0))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ((seq->seq1 && (seq->seq1->flag & SELECT)) || (seq->seq2 && (seq->seq2->flag & SELECT)) ||
|
||||
(seq->seq3 && (seq->seq3->flag & SELECT)))
|
||||
{
|
||||
if ((seq->seq1 && (seq->seq1->flag & SELECT)) || (seq->seq2 && (seq->seq2->flag & SELECT))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user