Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_sequencer/sequencer_edit.c
| Show First 20 Lines • Show All 2,665 Lines • ▼ Show 20 Lines | static int sequencer_meta_make_exec(bContext *C, wmOperator *op) | ||||
| if (BKE_sequence_base_isolated_sel_check(ed->seqbasep) == false) { | if (BKE_sequence_base_isolated_sel_check(ed->seqbasep) == false) { | ||||
| BKE_report(op->reports, RPT_ERROR, "Please select all related strips"); | BKE_report(op->reports, RPT_ERROR, "Please select all related strips"); | ||||
| return OPERATOR_CANCELLED; | return OPERATOR_CANCELLED; | ||||
| } | } | ||||
| /* remove all selected from main list, and put in meta */ | /* remove all selected from main list, and put in meta */ | ||||
| seqm = BKE_sequence_alloc(ed->seqbasep, 1, 1); /* channel number set later */ | seqm = BKE_sequence_alloc(ed->seqbasep, 1, 1, SEQ_TYPE_META); /* channel number set later */ | ||||
| strcpy(seqm->name + 2, "MetaStrip"); | strcpy(seqm->name + 2, "MetaStrip"); | ||||
| seqm->type = SEQ_TYPE_META; | |||||
| seqm->flag = SELECT; | seqm->flag = SELECT; | ||||
| seq = ed->seqbasep->first; | seq = ed->seqbasep->first; | ||||
| while (seq) { | while (seq) { | ||||
| next = seq->next; | next = seq->next; | ||||
| if (seq != seqm && (seq->flag & SELECT)) { | if (seq != seqm && (seq->flag & SELECT)) { | ||||
| BKE_sequence_invalidate_dependent(scene, seq); | BKE_sequence_invalidate_dependent(scene, seq); | ||||
| channel_max = max_ii(seq->machine, channel_max); | channel_max = max_ii(seq->machine, channel_max); | ||||
| BLI_remlink(ed->seqbasep, seq); | BLI_remlink(ed->seqbasep, seq); | ||||
| BLI_addtail(&seqm->seqbase, seq); | BLI_addtail(&seqm->seqbase, seq); | ||||
| } | } | ||||
| seq = next; | seq = next; | ||||
| } | } | ||||
| seqm->machine = last_seq ? last_seq->machine : channel_max; | seqm->machine = last_seq ? last_seq->machine : channel_max; | ||||
| BKE_sequence_calc(scene, seqm); | BKE_sequence_calc(scene, seqm); | ||||
| seqm->strip = MEM_callocN(sizeof(Strip), "metastrip"); | |||||
| seqm->strip->us = 1; | |||||
| BKE_sequencer_active_set(scene, seqm); | BKE_sequencer_active_set(scene, seqm); | ||||
| if (BKE_sequence_test_overlap(ed->seqbasep, seqm)) { | if (BKE_sequence_test_overlap(ed->seqbasep, seqm)) { | ||||
| BKE_sequence_base_shuffle(ed->seqbasep, seqm, scene); | BKE_sequence_base_shuffle(ed->seqbasep, seqm, scene); | ||||
| } | } | ||||
| BKE_sequencer_update_muting(ed); | BKE_sequencer_update_muting(ed); | ||||
| ▲ Show 20 Lines • Show All 1,475 Lines • Show Last 20 Lines | |||||