diff options
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_select.c')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_select.c | 464 |
1 files changed, 241 insertions, 223 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index 00c2caea258..b8fc66cd3c3 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -63,19 +63,22 @@ /* own include */ #include "sequencer_intern.h" -static void *find_nearest_marker(int UNUSED(d1), int UNUSED(d2)) {return NULL;} +static void *find_nearest_marker(int UNUSED(d1), int UNUSED(d2)) +{ + return NULL; +} static void select_surrounding_handles(Scene *scene, Sequence *test) /* XXX BRING BACK */ { Sequence *neighbor; - neighbor=find_neighboring_sequence(scene, test, SEQ_SIDE_LEFT, -1); + neighbor = find_neighboring_sequence(scene, test, SEQ_SIDE_LEFT, -1); if (neighbor) { neighbor->flag |= SELECT; recurs_sel_seq(neighbor); neighbor->flag |= SEQ_RIGHTSEL; } - neighbor=find_neighboring_sequence(scene, test, SEQ_SIDE_RIGHT, -1); + neighbor = find_neighboring_sequence(scene, test, SEQ_SIDE_RIGHT, -1); if (neighbor) { neighbor->flag |= SELECT; recurs_sel_seq(neighbor); @@ -89,24 +92,24 @@ static void select_active_side(ListBase *seqbase, int sel_side, int channel, int { Sequence *seq; - for (seq= seqbase->first; seq; seq=seq->next) { - if (channel==seq->machine) { - switch(sel_side) { - case SEQ_SIDE_LEFT: - if (frame > (seq->startdisp)) { - seq->flag &= ~(SEQ_RIGHTSEL|SEQ_LEFTSEL); - seq->flag |= SELECT; - } - break; - case SEQ_SIDE_RIGHT: - if (frame < (seq->startdisp)) { - seq->flag &= ~(SEQ_RIGHTSEL|SEQ_LEFTSEL); - seq->flag |= SELECT; - } - break; - case SEQ_SIDE_BOTH: - seq->flag &= ~(SEQ_RIGHTSEL|SEQ_LEFTSEL); - break; + for (seq = seqbase->first; seq; seq = seq->next) { + if (channel == seq->machine) { + switch (sel_side) { + case SEQ_SIDE_LEFT: + if (frame > (seq->startdisp)) { + seq->flag &= ~(SEQ_RIGHTSEL | SEQ_LEFTSEL); + seq->flag |= SELECT; + } + break; + case SEQ_SIDE_RIGHT: + if (frame < (seq->startdisp)) { + seq->flag &= ~(SEQ_RIGHTSEL | SEQ_LEFTSEL); + seq->flag |= SELECT; + } + break; + case SEQ_SIDE_BOTH: + seq->flag &= ~(SEQ_RIGHTSEL | SEQ_LEFTSEL); + break; } } } @@ -117,28 +120,28 @@ static void select_linked_time(ListBase *seqbase, Sequence *seq_link) { Sequence *seq; - for (seq= seqbase->first; seq; seq=seq->next) { + for (seq = seqbase->first; seq; seq = seq->next) { if (seq_link->machine != seq->machine) { - int left_match = (seq->startdisp == seq_link->startdisp) ? 1:0; - int right_match = (seq->enddisp == seq_link->enddisp) ? 1:0; + int left_match = (seq->startdisp == seq_link->startdisp) ? 1 : 0; + int right_match = (seq->enddisp == seq_link->enddisp) ? 1 : 0; if (left_match && right_match) { /* a direct match, copy the selection settinhs */ - seq->flag &= ~(SELECT|SEQ_LEFTSEL|SEQ_RIGHTSEL); - seq->flag |= seq_link->flag & (SELECT|SEQ_LEFTSEL|SEQ_RIGHTSEL); + seq->flag &= ~(SELECT | SEQ_LEFTSEL | SEQ_RIGHTSEL); + seq->flag |= seq_link->flag & (SELECT | SEQ_LEFTSEL | SEQ_RIGHTSEL); recurs_sel_seq(seq); } else if (seq_link->flag & SELECT && (left_match || right_match)) { /* clear for reselection */ - seq->flag &= ~(SEQ_LEFTSEL|SEQ_RIGHTSEL); + seq->flag &= ~(SEQ_LEFTSEL | SEQ_RIGHTSEL); if (left_match && seq_link->flag & SEQ_LEFTSEL) - seq->flag |= SELECT|SEQ_LEFTSEL; + seq->flag |= SELECT | SEQ_LEFTSEL; if (right_match && seq_link->flag & SEQ_RIGHTSEL) - seq->flag |= SELECT|SEQ_RIGHTSEL; + seq->flag |= SELECT | SEQ_RIGHTSEL; recurs_sel_seq(seq); } @@ -149,9 +152,9 @@ static void select_linked_time(ListBase *seqbase, Sequence *seq_link) #if 0 // BRING BACK void select_surround_from_last(Scene *scene) { - Sequence *seq=get_last_seq(scene); + Sequence *seq = get_last_seq(scene); - if (seq==NULL) + if (seq == NULL) return; select_surrounding_handles(scene, seq); @@ -159,51 +162,51 @@ void select_surround_from_last(Scene *scene) #endif -static void UNUSED_FUNCTION(select_single_seq)(Scene *scene, Sequence *seq, int deselect_all) /* BRING BACK */ +static void UNUSED_FUNCTION(select_single_seq) (Scene * scene, Sequence * seq, int deselect_all) /* BRING BACK */ { - Editing *ed= seq_give_editing(scene, FALSE); + Editing *ed = seq_give_editing(scene, FALSE); if (deselect_all) deselect_all_seq(scene); seq_active_set(scene, seq); - if ((seq->type==SEQ_IMAGE) || (seq->type==SEQ_MOVIE)) { + if ((seq->type == SEQ_IMAGE) || (seq->type == SEQ_MOVIE)) { if (seq->strip) BLI_strncpy(ed->act_imagedir, seq->strip->dir, FILE_MAXDIR); } - else if (seq->type==SEQ_SOUND) { + else if (seq->type == SEQ_SOUND) { if (seq->strip) BLI_strncpy(ed->act_sounddir, seq->strip->dir, FILE_MAXDIR); } - seq->flag|= SELECT; + seq->flag |= SELECT; recurs_sel_seq(seq); } #if 0 static void select_neighbor_from_last(Scene *scene, int lr) { - Sequence *seq= seq_active_get(scene); + Sequence *seq = seq_active_get(scene); Sequence *neighbor; int change = 0; if (seq) { - neighbor=find_neighboring_sequence(scene, seq, lr, -1); + neighbor = find_neighboring_sequence(scene, seq, lr, -1); if (neighbor) { switch (lr) { - case SEQ_SIDE_LEFT: - neighbor->flag |= SELECT; - recurs_sel_seq(neighbor); - neighbor->flag |= SEQ_RIGHTSEL; - seq->flag |= SEQ_LEFTSEL; - break; - case SEQ_SIDE_RIGHT: - neighbor->flag |= SELECT; - recurs_sel_seq(neighbor); - neighbor->flag |= SEQ_LEFTSEL; - seq->flag |= SEQ_RIGHTSEL; - break; + case SEQ_SIDE_LEFT: + neighbor->flag |= SELECT; + recurs_sel_seq(neighbor); + neighbor->flag |= SEQ_RIGHTSEL; + seq->flag |= SEQ_LEFTSEL; + break; + case SEQ_SIDE_RIGHT: + neighbor->flag |= SELECT; + recurs_sel_seq(neighbor); + neighbor->flag |= SEQ_LEFTSEL; + seq->flag |= SEQ_RIGHTSEL; + break; } - seq->flag |= SELECT; - change = 1; + seq->flag |= SELECT; + change = 1; } } if (change) { @@ -268,7 +271,7 @@ void SEQUENCER_OT_select_all(struct wmOperatorType *ot) ot->poll = sequencer_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; WM_operator_properties_select_all(ot); } @@ -277,21 +280,21 @@ void SEQUENCER_OT_select_all(struct wmOperatorType *ot) /* (de)select operator */ static int sequencer_select_inverse_exec(bContext *C, wmOperator *UNUSED(op)) { - Scene *scene= CTX_data_scene(C); - Editing *ed= seq_give_editing(scene, FALSE); + Scene *scene = CTX_data_scene(C); + Editing *ed = seq_give_editing(scene, FALSE); Sequence *seq; - for (seq= ed->seqbasep->first; seq; seq=seq->next) { + for (seq = ed->seqbasep->first; seq; seq = seq->next) { if (seq->flag & SELECT) { seq->flag &= ~SEQ_ALLSEL; } else { - seq->flag &= ~(SEQ_LEFTSEL+SEQ_RIGHTSEL); + seq->flag &= ~(SEQ_LEFTSEL + SEQ_RIGHTSEL); seq->flag |= SELECT; } } - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene); + WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene); return OPERATOR_FINISHED; } @@ -308,40 +311,40 @@ void SEQUENCER_OT_select_inverse(struct wmOperatorType *ot) ot->poll = sequencer_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event) { - View2D *v2d= UI_view2d_fromcontext(C); - Scene *scene= CTX_data_scene(C); - Editing *ed= seq_give_editing(scene, FALSE); - short extend= RNA_boolean_get(op->ptr, "extend"); - short linked_handle= RNA_boolean_get(op->ptr, "linked_handle"); - short left_right= RNA_boolean_get(op->ptr, "left_right"); - short linked_time= RNA_boolean_get(op->ptr, "linked_time"); + View2D *v2d = UI_view2d_fromcontext(C); + Scene *scene = CTX_data_scene(C); + Editing *ed = seq_give_editing(scene, FALSE); + short extend = RNA_boolean_get(op->ptr, "extend"); + short linked_handle = RNA_boolean_get(op->ptr, "linked_handle"); + short left_right = RNA_boolean_get(op->ptr, "left_right"); + short linked_time = RNA_boolean_get(op->ptr, "linked_time"); - Sequence *seq,*neighbor, *act_orig; - int hand,sel_side; + Sequence *seq, *neighbor, *act_orig; + int hand, sel_side; TimeMarker *marker; - if (ed==NULL) + if (ed == NULL) return OPERATOR_CANCELLED; - marker=find_nearest_marker(SCE_MARKERS, 1); //XXX - dummy function for now + marker = find_nearest_marker(SCE_MARKERS, 1); //XXX - dummy function for now - seq= find_nearest_seq(scene, v2d, &hand, event->mval); + seq = find_nearest_seq(scene, v2d, &hand, event->mval); // XXX - not nice, Ctrl+RMB needs to do left_right only when not over a strip if (seq && linked_time && left_right) - left_right= FALSE; + left_right = FALSE; if (marker) { int oldflag; /* select timeline marker */ if (extend) { - oldflag= marker->flag; + oldflag = marker->flag; if (oldflag & SELECT) marker->flag &= ~SELECT; else @@ -359,7 +362,8 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event) deselect_all_seq(scene); UI_view2d_region_to_view(v2d, event->mval[0], event->mval[1], &x, NULL); - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN(ed, seq) + { if (x < CFRA) { if (seq->enddisp < CFRA) { seq->flag |= SELECT; @@ -376,14 +380,14 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event) SEQ_END { - SpaceSeq *sseq= CTX_wm_space_seq(C); + SpaceSeq *sseq = CTX_wm_space_seq(C); if (sseq && sseq->flag & SEQ_MARKER_TRANS) { TimeMarker *tmarker; - for (tmarker= scene->markers.first; tmarker; tmarker= tmarker->next) { - if ( ((x < CFRA) && tmarker->frame < CFRA) || - ((x >= CFRA) && tmarker->frame >= CFRA) - ) { + for (tmarker = scene->markers.first; tmarker; tmarker = tmarker->next) { + if (((x < CFRA) && tmarker->frame < CFRA) || + ((x >= CFRA) && tmarker->frame >= CFRA)) + { tmarker->flag |= SELECT; } else { @@ -396,9 +400,9 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event) else { // seq= find_nearest_seq(scene, v2d, &hand, mval); - act_orig= ed->act_seq; + act_orig = ed->act_seq; - if (extend == 0 && linked_handle==0) + if (extend == 0 && linked_handle == 0) deselect_all_seq(scene); if (seq) { @@ -416,29 +420,29 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event) } } - if (extend && (seq->flag & SELECT) && ed->act_seq == act_orig ) { - switch(hand) { - case SEQ_SIDE_NONE: - if (linked_handle==0) - seq->flag &= ~SEQ_ALLSEL; - break; - case SEQ_SIDE_LEFT: - seq->flag ^= SEQ_LEFTSEL; - break; - case SEQ_SIDE_RIGHT: - seq->flag ^= SEQ_RIGHTSEL; - break; + if (extend && (seq->flag & SELECT) && ed->act_seq == act_orig) { + switch (hand) { + case SEQ_SIDE_NONE: + if (linked_handle == 0) + seq->flag &= ~SEQ_ALLSEL; + break; + case SEQ_SIDE_LEFT: + seq->flag ^= SEQ_LEFTSEL; + break; + case SEQ_SIDE_RIGHT: + seq->flag ^= SEQ_RIGHTSEL; + break; } } else { seq->flag |= SELECT; - if (hand==SEQ_SIDE_LEFT) seq->flag |= SEQ_LEFTSEL; - if (hand==SEQ_SIDE_RIGHT) seq->flag |= SEQ_RIGHTSEL; + if (hand == SEQ_SIDE_LEFT) seq->flag |= SEQ_LEFTSEL; + if (hand == SEQ_SIDE_RIGHT) seq->flag |= SEQ_RIGHTSEL; } /* On Alt selection, select the strip and bordering handles */ if (linked_handle && !ELEM(hand, SEQ_SIDE_LEFT, SEQ_SIDE_RIGHT)) { - if (extend==0) deselect_all_seq(scene); + if (extend == 0) deselect_all_seq(scene); seq->flag |= SELECT; select_surrounding_handles(scene, seq); } @@ -448,48 +452,48 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event) * Second click selects all strips in that direction. * If there are no adjacent strips, it just selects all in that direction. */ - sel_side= hand; - neighbor=find_neighboring_sequence(scene, seq, sel_side, -1); + sel_side = hand; + neighbor = find_neighboring_sequence(scene, seq, sel_side, -1); if (neighbor) { switch (sel_side) { - case SEQ_SIDE_LEFT: - if ((seq->flag & SEQ_LEFTSEL) && (neighbor->flag & SEQ_RIGHTSEL)) { - if (extend==0) deselect_all_seq(scene); - seq->flag |= SELECT; - - select_active_side(ed->seqbasep, SEQ_SIDE_LEFT, seq->machine, seq->startdisp); - } - else { - if (extend==0) deselect_all_seq(scene); - seq->flag |= SELECT; - - neighbor->flag |= SELECT; - recurs_sel_seq(neighbor); - neighbor->flag |= SEQ_RIGHTSEL; - seq->flag |= SEQ_LEFTSEL; - } - break; - case SEQ_SIDE_RIGHT: - if ((seq->flag & SEQ_RIGHTSEL) && (neighbor->flag & SEQ_LEFTSEL)) { - if (extend==0) deselect_all_seq(scene); - seq->flag |= SELECT; - - select_active_side(ed->seqbasep, SEQ_SIDE_RIGHT, seq->machine, seq->startdisp); - } - else { - if (extend==0) deselect_all_seq(scene); - seq->flag |= SELECT; - - neighbor->flag |= SELECT; - recurs_sel_seq(neighbor); - neighbor->flag |= SEQ_LEFTSEL; - seq->flag |= SEQ_RIGHTSEL; - } - break; + case SEQ_SIDE_LEFT: + if ((seq->flag & SEQ_LEFTSEL) && (neighbor->flag & SEQ_RIGHTSEL)) { + if (extend == 0) deselect_all_seq(scene); + seq->flag |= SELECT; + + select_active_side(ed->seqbasep, SEQ_SIDE_LEFT, seq->machine, seq->startdisp); + } + else { + if (extend == 0) deselect_all_seq(scene); + seq->flag |= SELECT; + + neighbor->flag |= SELECT; + recurs_sel_seq(neighbor); + neighbor->flag |= SEQ_RIGHTSEL; + seq->flag |= SEQ_LEFTSEL; + } + break; + case SEQ_SIDE_RIGHT: + if ((seq->flag & SEQ_RIGHTSEL) && (neighbor->flag & SEQ_LEFTSEL)) { + if (extend == 0) deselect_all_seq(scene); + seq->flag |= SELECT; + + select_active_side(ed->seqbasep, SEQ_SIDE_RIGHT, seq->machine, seq->startdisp); + } + else { + if (extend == 0) deselect_all_seq(scene); + seq->flag |= SELECT; + + neighbor->flag |= SELECT; + recurs_sel_seq(neighbor); + neighbor->flag |= SEQ_LEFTSEL; + seq->flag |= SEQ_RIGHTSEL; + } + break; } } else { - if (extend==0) deselect_all_seq(scene); + if (extend == 0) deselect_all_seq(scene); select_active_side(ed->seqbasep, sel_side, seq->machine, seq->startdisp); } } @@ -506,12 +510,12 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event) if (marker) { int mval[2], xo, yo; // getmouseco_areawin(mval); - xo= mval[0]; - yo= mval[1]; + xo = mval[0]; + yo = mval[1]; while (get_mbut()) { // getmouseco_areawin(mval); - if (abs(mval[0]-xo)+abs(mval[1]-yo) > 4) { + if (abs(mval[0] - xo) + abs(mval[1] - yo) > 4) { transform_markers('g', 0); return; } @@ -519,10 +523,10 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event) } #endif - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene); + WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene); /* allowing tweaks */ - return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH; + return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH; } void SEQUENCER_OT_select(wmOperatorType *ot) @@ -537,7 +541,7 @@ void SEQUENCER_OT_select(wmOperatorType *ot) ot->poll = ED_operator_sequencer_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend the selection"); @@ -553,12 +557,12 @@ void SEQUENCER_OT_select(wmOperatorType *ot) /* run recursively to select linked */ static int select_more_less_seq__internal(Scene *scene, int sel, int linked) { - Editing *ed= seq_give_editing(scene, FALSE); + Editing *ed = seq_give_editing(scene, FALSE); Sequence *seq, *neighbor; - int change=0; + int change = 0; int isel; - if (ed==NULL) return 0; + if (ed == NULL) return 0; if (sel) { sel = SELECT; @@ -571,27 +575,27 @@ static int select_more_less_seq__internal(Scene *scene, int sel, int linked) if (!linked) { /* if not linked we only want to touch each seq once, newseq */ - for (seq= ed->seqbasep->first; seq; seq= seq->next) { + for (seq = ed->seqbasep->first; seq; seq = seq->next) { seq->tmp = NULL; } } - for (seq= ed->seqbasep->first; seq; seq= seq->next) { + for (seq = ed->seqbasep->first; seq; seq = seq->next) { if ((int)(seq->flag & SELECT) == sel) { - if ((linked==0 && seq->tmp)==0) { + if ((linked == 0 && seq->tmp) == 0) { /* only get unselected nabours */ neighbor = find_neighboring_sequence(scene, seq, SEQ_SIDE_LEFT, isel); if (neighbor) { - if (sel) {neighbor->flag |= SELECT; recurs_sel_seq(neighbor);} - else neighbor->flag &= ~SELECT; - if (linked==0) neighbor->tmp = (Sequence *)1; + if (sel) {neighbor->flag |= SELECT; recurs_sel_seq(neighbor); } + else neighbor->flag &= ~SELECT; + if (linked == 0) neighbor->tmp = (Sequence *)1; change = 1; } neighbor = find_neighboring_sequence(scene, seq, SEQ_SIDE_RIGHT, isel); if (neighbor) { - if (sel) {neighbor->flag |= SELECT; recurs_sel_seq(neighbor);} - else neighbor->flag &= ~SELECT; - if (linked==0) neighbor->tmp = (void *)1; + if (sel) {neighbor->flag |= SELECT; recurs_sel_seq(neighbor); } + else neighbor->flag &= ~SELECT; + if (linked == 0) neighbor->tmp = (void *)1; change = 1; } } @@ -606,12 +610,12 @@ static int select_more_less_seq__internal(Scene *scene, int sel, int linked) /* select more operator */ static int sequencer_select_more_exec(bContext *C, wmOperator *UNUSED(op)) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); if (!select_more_less_seq__internal(scene, 0, 0)) return OPERATOR_CANCELLED; - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene); + WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene); return OPERATOR_FINISHED; } @@ -628,7 +632,7 @@ void SEQUENCER_OT_select_more(wmOperatorType *ot) ot->poll = sequencer_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ } @@ -637,12 +641,12 @@ void SEQUENCER_OT_select_more(wmOperatorType *ot) /* select less operator */ static int sequencer_select_less_exec(bContext *C, wmOperator *UNUSED(op)) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); if (!select_more_less_seq__internal(scene, 1, 0)) return OPERATOR_CANCELLED; - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene); + WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene); return OPERATOR_FINISHED; } @@ -659,7 +663,7 @@ void SEQUENCER_OT_select_less(wmOperatorType *ot) ot->poll = sequencer_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ } @@ -668,20 +672,20 @@ void SEQUENCER_OT_select_less(wmOperatorType *ot) /* select pick linked operator (uses the mouse) */ static int sequencer_select_linked_pick_invoke(bContext *C, wmOperator *op, wmEvent *event) { - Scene *scene= CTX_data_scene(C); - View2D *v2d= UI_view2d_fromcontext(C); + Scene *scene = CTX_data_scene(C); + View2D *v2d = UI_view2d_fromcontext(C); - short extend= RNA_boolean_get(op->ptr, "extend"); + short extend = RNA_boolean_get(op->ptr, "extend"); Sequence *mouse_seq; int selected, hand; /* this works like UV, not mesh */ - mouse_seq= find_nearest_seq(scene, v2d, &hand, event->mval); + mouse_seq = find_nearest_seq(scene, v2d, &hand, event->mval); if (!mouse_seq) - return OPERATOR_FINISHED; /* user error as with mesh?? */ + return OPERATOR_FINISHED; /* user error as with mesh?? */ - if (extend==0) + if (extend == 0) deselect_all_seq(scene); mouse_seq->flag |= SELECT; @@ -692,7 +696,7 @@ static int sequencer_select_linked_pick_invoke(bContext *C, wmOperator *op, wmEv selected = select_more_less_seq__internal(scene, 1, 1); } - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene); + WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene); return OPERATOR_FINISHED; } @@ -709,7 +713,7 @@ void SEQUENCER_OT_select_linked_pick(wmOperatorType *ot) ot->poll = ED_operator_sequencer_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend the selection"); @@ -719,7 +723,7 @@ void SEQUENCER_OT_select_linked_pick(wmOperatorType *ot) /* select linked operator */ static int sequencer_select_linked_exec(bContext *C, wmOperator *UNUSED(op)) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); int selected; selected = 1; @@ -727,7 +731,7 @@ static int sequencer_select_linked_exec(bContext *C, wmOperator *UNUSED(op)) selected = select_more_less_seq__internal(scene, 1, 1); } - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene); + WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene); return OPERATOR_FINISHED; } @@ -744,7 +748,7 @@ void SEQUENCER_OT_select_linked(wmOperatorType *ot) ot->poll = sequencer_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ } @@ -753,31 +757,31 @@ void SEQUENCER_OT_select_linked(wmOperatorType *ot) /* select handles operator */ static int sequencer_select_handles_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - Editing *ed= seq_give_editing(scene, 0); + Scene *scene = CTX_data_scene(C); + Editing *ed = seq_give_editing(scene, 0); Sequence *seq; - int sel_side= RNA_enum_get(op->ptr, "side"); + int sel_side = RNA_enum_get(op->ptr, "side"); - for (seq= ed->seqbasep->first; seq; seq=seq->next) { + for (seq = ed->seqbasep->first; seq; seq = seq->next) { if (seq->flag & SELECT) { - switch(sel_side) { - case SEQ_SIDE_LEFT: - seq->flag &= ~SEQ_RIGHTSEL; - seq->flag |= SEQ_LEFTSEL; - break; - case SEQ_SIDE_RIGHT: - seq->flag &= ~SEQ_LEFTSEL; - seq->flag |= SEQ_RIGHTSEL; - break; - case SEQ_SIDE_BOTH: - seq->flag |= SEQ_LEFTSEL+SEQ_RIGHTSEL; - break; + switch (sel_side) { + case SEQ_SIDE_LEFT: + seq->flag &= ~SEQ_RIGHTSEL; + seq->flag |= SEQ_LEFTSEL; + break; + case SEQ_SIDE_RIGHT: + seq->flag &= ~SEQ_LEFTSEL; + seq->flag |= SEQ_RIGHTSEL; + break; + case SEQ_SIDE_BOTH: + seq->flag |= SEQ_LEFTSEL + SEQ_RIGHTSEL; + break; } } } - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene); + WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene); return OPERATOR_FINISHED; } @@ -794,7 +798,7 @@ void SEQUENCER_OT_select_handles(wmOperatorType *ot) ot->poll = sequencer_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_enum(ot->srna, "side", prop_side_types, SEQ_SIDE_BOTH, "Side", "The side of the handle that is selected"); @@ -803,18 +807,18 @@ void SEQUENCER_OT_select_handles(wmOperatorType *ot) /* select side operator */ static int sequencer_select_active_side_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - Editing *ed= seq_give_editing(scene, 0); - Sequence *seq_act= seq_active_get(scene); + Scene *scene = CTX_data_scene(C); + Editing *ed = seq_give_editing(scene, 0); + Sequence *seq_act = seq_active_get(scene); - if (ed==NULL || seq_act==NULL) + if (ed == NULL || seq_act == NULL) return OPERATOR_CANCELLED; seq_act->flag |= SELECT; select_active_side(ed->seqbasep, RNA_enum_get(op->ptr, "side"), seq_act->machine, seq_act->startdisp); - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene); + WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene); return OPERATOR_FINISHED; } @@ -831,7 +835,7 @@ void SEQUENCER_OT_select_active_side(wmOperatorType *ot) ot->poll = sequencer_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_enum(ot->srna, "side", prop_side_types, SEQ_SIDE_BOTH, "Side", "The side of the handle that is selected"); @@ -841,18 +845,18 @@ void SEQUENCER_OT_select_active_side(wmOperatorType *ot) /* borderselect operator */ static int sequencer_borderselect_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - Editing *ed= seq_give_editing(scene, FALSE); - View2D *v2d= UI_view2d_fromcontext(C); + Scene *scene = CTX_data_scene(C); + Editing *ed = seq_give_editing(scene, FALSE); + View2D *v2d = UI_view2d_fromcontext(C); Sequence *seq; rcti rect; rctf rectf, rq; - short selecting = (RNA_int_get(op->ptr, "gesture_mode")==GESTURE_MODAL_SELECT); + short selecting = (RNA_int_get(op->ptr, "gesture_mode") == GESTURE_MODAL_SELECT); int extend = RNA_boolean_get(op->ptr, "extend"); int mval[2]; - if (ed==NULL) + if (ed == NULL) return OPERATOR_CANCELLED; rect.xmin = RNA_int_get(op->ptr, "xmin"); @@ -860,19 +864,19 @@ static int sequencer_borderselect_exec(bContext *C, wmOperator *op) rect.xmax = RNA_int_get(op->ptr, "xmax"); rect.ymax = RNA_int_get(op->ptr, "ymax"); - mval[0]= rect.xmin; - mval[1]= rect.ymin; + mval[0] = rect.xmin; + mval[1] = rect.ymin; UI_view2d_region_to_view(v2d, mval[0], mval[1], &rectf.xmin, &rectf.ymin); - mval[0]= rect.xmax; - mval[1]= rect.ymax; + mval[0] = rect.xmax; + mval[1] = rect.ymax; UI_view2d_region_to_view(v2d, mval[0], mval[1], &rectf.xmax, &rectf.ymax); - for (seq= ed->seqbasep->first; seq; seq= seq->next) { + for (seq = ed->seqbasep->first; seq; seq = seq->next) { seq_rectf(seq, &rq); if (BLI_isect_rctf(&rq, &rectf, NULL)) { - if (selecting) seq->flag |= SELECT; - else seq->flag &= ~SEQ_ALLSEL; + if (selecting) seq->flag |= SELECT; + else seq->flag &= ~SEQ_ALLSEL; recurs_sel_seq(seq); } else if (!extend) { @@ -881,7 +885,7 @@ static int sequencer_borderselect_exec(bContext *C, wmOperator *op) } } - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene); + WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene); return OPERATOR_FINISHED; } @@ -904,7 +908,7 @@ void SEQUENCER_OT_select_border(wmOperatorType *ot) ot->poll = ED_operator_sequencer_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* rna */ WM_operator_properties_gesture_border(ot, TRUE); @@ -916,11 +920,11 @@ static EnumPropertyItem sequencer_prop_select_grouped_types[] = { {1, "TYPE", 0, "Type", "Shared strip type"}, {2, "TYPE_BASIC", 0, "Global Type", "All strips of same basic type (Graphical or Sound)"}, {3, "TYPE_EFFECT", 0, "Effect Type", - "Shared strip effect type (if active strip is not an effect one, select all non-effect strips)"}, + "Shared strip effect type (if active strip is not an effect one, select all non-effect strips)"}, {4, "DATA", 0, "Data", "Shared data (scene, image, sound, etc.)"}, {5, "EFFECT", 0, "Effect", "Shared effects"}, {6, "EFFECT_LINK", 0, "Effect/Linked", - "Other strips affected by the active one (sharing some time, and below or effect-assigned)"}, + "Other strips affected by the active one (sharing some time, and below or effect-assigned)"}, {7, "OVERLAP", 0, "Overlap", "Overlapping time"}, {0, NULL, 0, NULL, NULL} }; @@ -929,7 +933,7 @@ static EnumPropertyItem sequencer_prop_select_grouped_types[] = { #define SEQ_IS_EFFECT(_seq) (_seq->type & SEQ_EFFECT) -#define SEQ_USE_DATA(_seq) (_seq->type == SEQ_SCENE || SEQ_HAS_PATH(_seq)) +#define SEQ_USE_DATA(_seq) (ELEM(_seq->type, SEQ_SCENE, SEQ_MOVIECLIP) || SEQ_HAS_PATH(_seq)) static short select_grouped_type(Editing *ed, Sequence *actseq) { @@ -985,7 +989,6 @@ static short select_grouped_data(Editing *ed, Sequence *actseq) { Sequence *seq; short changed = FALSE; - Scene *sce = actseq->scene; char *dir = actseq->strip ? actseq->strip->dir : NULL; if (!SEQ_USE_DATA(actseq)) @@ -1000,7 +1003,8 @@ static short select_grouped_data(Editing *ed, Sequence *actseq) } SEQ_END; } - else { + else if (actseq->type == SEQ_SCENE) { + Scene *sce = actseq->scene; SEQP_BEGIN(ed, seq) { if (seq->type == SEQ_SCENE && seq->scene == sce) { seq->flag |= SELECT; @@ -1009,6 +1013,16 @@ static short select_grouped_data(Editing *ed, Sequence *actseq) } SEQ_END; } + else if (actseq->type == SEQ_MOVIECLIP) { + MovieClip *clip = actseq->clip; + SEQP_BEGIN(ed, seq) { + if (seq->type == SEQ_MOVIECLIP && seq->clip == clip) { + seq->flag |= SELECT; + changed = TRUE; + } + } + SEQ_END; + } return changed; } @@ -1017,7 +1031,7 @@ static short select_grouped_effect(Editing *ed, Sequence *actseq) { Sequence *seq; short changed = FALSE; - short effects[SEQ_EFFECT_MAX+1]; + short effects[SEQ_EFFECT_MAX + 1]; int i; for (i = 0; i <= SEQ_EFFECT_MAX; i++) @@ -1074,7 +1088,7 @@ static short select_grouped_effect_link(Editing *ed, Sequence *actseq) } SEQ_END; - actseq->tmp= SET_INT_IN_POINTER(TRUE); + actseq->tmp = SET_INT_IN_POINTER(TRUE); for (seq_begin(ed, &iter, 1); iter.valid; seq_next(&iter)) { seq = iter.seq; @@ -1096,7 +1110,7 @@ static short select_grouped_effect_link(Editing *ed, Sequence *actseq) if (enddisp < seq->enddisp) enddisp = seq->enddisp; if (machine < seq->machine) machine = seq->machine; - seq->tmp= SET_INT_IN_POINTER(TRUE); + seq->tmp = SET_INT_IN_POINTER(TRUE); seq->flag |= SELECT; changed = TRUE; @@ -1117,6 +1131,10 @@ static short select_grouped_effect_link(Editing *ed, Sequence *actseq) return changed; } +#undef SEQ_IS_SOUND +#undef SEQ_IS_EFFECT +#undef SEQ_USE_DATA + static int sequencer_select_grouped_exec(bContext *C, wmOperator *op) { Scene *scene = CTX_data_scene(C); @@ -1140,16 +1158,16 @@ static int sequencer_select_grouped_exec(bContext *C, wmOperator *op) SEQ_END; } - if (type==1) changed |= select_grouped_type(ed, actseq); - else if (type==2) changed |= select_grouped_type_basic(ed, actseq); - else if (type==3) changed |= select_grouped_type_effect(ed, actseq); - else if (type==4) changed |= select_grouped_data(ed, actseq); - else if (type==5) changed |= select_grouped_effect(ed, actseq); - else if (type==6) changed |= select_grouped_effect_link(ed, actseq); - else if (type==7) changed |= select_grouped_time_overlap(ed, actseq); + if (type == 1) changed |= select_grouped_type(ed, actseq); + else if (type == 2) changed |= select_grouped_type_basic(ed, actseq); + else if (type == 3) changed |= select_grouped_type_effect(ed, actseq); + else if (type == 4) changed |= select_grouped_data(ed, actseq); + else if (type == 5) changed |= select_grouped_effect(ed, actseq); + else if (type == 6) changed |= select_grouped_effect_link(ed, actseq); + else if (type == 7) changed |= select_grouped_time_overlap(ed, actseq); if (changed) { - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene); + WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene); return OPERATOR_FINISHED; } @@ -1169,7 +1187,7 @@ void SEQUENCER_OT_select_grouped(wmOperatorType *ot) ot->poll = sequencer_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "extend", FALSE, "Extend", "Extend selection instead of deselecting everything first"); |