Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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);
}
Пример #4
0
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;
}