Commit: 799f974668004b3d2b7873f51951eb22b5fcf2f3
Author: Antony Riakiotakis
Date:   Tue Sep 2 19:23:56 2014 +0200
Branches: terrible_consequencer
https://developer.blender.org/rB799f974668004b3d2b7873f51951eb22b5fcf2f3

Gooseberry feature request, allow select left-right strips operator to
select all strips independently of channel of the active strip.

===================================================================

M       release/scripts/startup/bl_ui/space_sequencer.py
M       source/blender/editors/space_sequencer/sequencer_select.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_sequencer.py 
b/release/scripts/startup/bl_ui/space_sequencer.py
index 532047d..eefc1af 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -209,6 +209,13 @@ class SEQUENCER_MT_select(Menu):
 
         layout.operator("sequencer.select_active_side", text="Strips to the 
Left").side = 'LEFT'
         layout.operator("sequencer.select_active_side", text="Strips to the 
Right").side = 'RIGHT'
+        op = layout.operator("sequencer.select_active_side", text="All strips 
to the Left")
+        op.side = 'LEFT'
+        op.all = True
+        op = layout.operator("sequencer.select_active_side", text="All strips 
to the Right")
+        op.side = 'RIGHT'
+        op.all = True
+        
         layout.separator()
         layout.operator("sequencer.select_handles", text="Surrounding 
Handles").side = 'BOTH'
         layout.operator("sequencer.select_handles", text="Left Handle").side = 
'LEFT'
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c 
b/source/blender/editors/space_sequencer/sequencer_select.c
index 8e49d56..efc097e 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -80,12 +80,12 @@ static void select_surrounding_handles(Scene *scene, 
Sequence *test) /* XXX BRIN
 }
 
 /* used for mouse selection and for SEQUENCER_OT_select_active_side() */
-static void select_active_side(ListBase *seqbase, int sel_side, int channel, 
int frame)
+static void select_active_side(ListBase *seqbase, int sel_side, int channel, 
int frame, bool use_same_channel)
 {
        Sequence *seq;
 
        for (seq = seqbase->first; seq; seq = seq->next) {
-               if (channel == seq->machine) {
+               if (!use_same_channel || channel == seq->machine) {
                        switch (sel_side) {
                                case SEQ_SIDE_LEFT:
                                        if (frame > (seq->startdisp)) {
@@ -452,7 +452,7 @@ static int sequencer_select_invoke(bContext *C, wmOperator 
*op, const wmEvent *e
                                                                if (extend == 
0) ED_sequencer_deselect_all(scene);
                                                                seq->flag |= 
SELECT;
 
-                                                               
select_active_side(ed->seqbasep, SEQ_SIDE_LEFT, seq->machine, seq->startdisp);
+                                                               
select_active_side(ed->seqbasep, SEQ_SIDE_LEFT, seq->machine, seq->startdisp, 
true);
                                                        }
                                                        else {
                                                                if (extend == 
0) ED_sequencer_deselect_all(scene);
@@ -469,7 +469,7 @@ static int sequencer_select_invoke(bContext *C, wmOperator 
*op, const wmEvent *e
                                                                if (extend == 
0) ED_sequencer_deselect_all(scene);
                                                                seq->flag |= 
SELECT;
 
-                                                               
select_active_side(ed->seqbasep, SEQ_SIDE_RIGHT, seq->machine, seq->startdisp);
+                                                               
select_active_side(ed->seqbasep, SEQ_SIDE_RIGHT, seq->machine, seq->startdisp, 
true);
                                                        }
                                                        else {
                                                                if (extend == 
0) ED_sequencer_deselect_all(scene);
@@ -485,7 +485,7 @@ static int sequencer_select_invoke(bContext *C, wmOperator 
*op, const wmEvent *e
                                }
                                else {
                                        if (extend == 0) 
ED_sequencer_deselect_all(scene);
-                                       select_active_side(ed->seqbasep, 
sel_side, seq->machine, seq->startdisp);
+                                       select_active_side(ed->seqbasep, 
sel_side, seq->machine, seq->startdisp, true);
                                }
                        }
                        recurs_sel_seq(seq);
@@ -806,7 +806,7 @@ static int sequencer_select_active_side_exec(bContext *C, 
wmOperator *op)
 
        seq_act->flag |= SELECT;
 
-       select_active_side(ed->seqbasep, RNA_enum_get(op->ptr, "side"), 
seq_act->machine, seq_act->startdisp);
+       select_active_side(ed->seqbasep, RNA_enum_get(op->ptr, "side"), 
seq_act->machine, seq_act->startdisp, false);
 
        WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene);
 
@@ -829,6 +829,7 @@ void SEQUENCER_OT_select_active_side(wmOperatorType *ot)
 
        /* properties */
        RNA_def_enum(ot->srna, "side", prop_side_types, SEQ_SIDE_BOTH, "Side", 
"The side of the handle that is selected");
+       RNA_def_boolean(ot->srna, "all", false, "All", "Select in other 
channels as well");
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to