[Bf-blender-cvs] [799f974] terrible_consequencer: Gooseberry feature request, allow select left-right strips operator to select all strips independently of channel of the active strip.

Antony Riakiotakis noreply at git.blender.org
Tue Sep 2 19:24:07 CEST 2014


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");
 }




More information about the Bf-blender-cvs mailing list