bool BKE_sequence_modifier_remove(Sequence *seq, SequenceModifierData *smd) { if (BLI_findindex(&seq->modifiers, smd) == -1) return false; BLI_remlink(&seq->modifiers, smd); BKE_sequence_modifier_free(smd); return true; }
int BKE_sequence_modifier_remove(Sequence *seq, SequenceModifierData *smd) { if (BLI_findindex(&seq->modifiers, smd) == -1) return FALSE; BLI_remlink(&seq->modifiers, smd); BKE_sequence_modifier_free(smd); return TRUE; }
void BKE_sequence_modifier_clear(Sequence *seq) { SequenceModifierData *smd, *smd_next; for (smd = seq->modifiers.first; smd; smd = smd_next) { smd_next = smd->next; BKE_sequence_modifier_free(smd); } BLI_listbase_clear(&seq->modifiers); }
void BKE_sequence_modifier_clear(Sequence *seq) { SequenceModifierData *smd, *smd_next; for (smd = seq->modifiers.first; smd; smd = smd_next) { smd_next = smd->next; BKE_sequence_modifier_free(smd); } seq->modifiers.first = seq->modifiers.last = NULL; }
static int strip_modifier_remove_exec(bContext *C, wmOperator *op) { Scene *scene = CTX_data_scene(C); Sequence *seq = BKE_sequencer_active_get(scene); char name[MAX_NAME]; SequenceModifierData *smd; RNA_string_get(op->ptr, "name", name); smd = BKE_sequence_modifier_find_by_name(seq, name); if (!smd) return OPERATOR_CANCELLED; BLI_remlink(&seq->modifiers, smd); BKE_sequence_modifier_free(smd); BKE_sequence_invalidate_cache(scene, seq); WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene); return OPERATOR_FINISHED; }
static int strip_modifier_copy_exec(bContext *C, wmOperator *op) { Scene *scene = CTX_data_scene(C); Editing *ed = scene->ed; Sequence *seq = BKE_sequencer_active_get(scene); Sequence *seq_iter; const int type = RNA_enum_get(op->ptr, "type"); if (!seq || !seq->modifiers.first) return OPERATOR_CANCELLED; SEQP_BEGIN(ed, seq_iter) { if (seq_iter->flag & SELECT) { if (seq_iter == seq) continue; if (type == SEQ_MODIFIER_COPY_REPLACE) { if (seq_iter->modifiers.first) { SequenceModifierData *smd_tmp, *smd = seq_iter->modifiers.first; while (smd) { smd_tmp = smd->next; BLI_remlink(&seq_iter->modifiers, smd); BKE_sequence_modifier_free(smd); smd = smd_tmp; } BLI_listbase_clear(&seq_iter->modifiers); } } BKE_sequence_modifier_list_copy(seq_iter, seq); } } SEQ_END BKE_sequence_invalidate_cache(scene, seq); WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene); return OPERATOR_FINISHED; }