[Bf-blender-cvs] [16dc208] master: Expose "select all strips to left/right" in the select menu.

Antony Riakiotakis noreply at git.blender.org
Wed Sep 3 11:19:01 CEST 2014


Commit: 16dc208ef640b07a64a44ed33d4703460b9be9ba
Author: Antony Riakiotakis
Date:   Wed Sep 3 11:18:30 2014 +0200
Branches: master
https://developer.blender.org/rB16dc208ef640b07a64a44ed33d4703460b9be9ba

Expose "select all strips to left/right" in the select menu.

Shortcut is ctrl click but might not be discoverable, as we found out
the hard way on gooseberry.

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

M	release/scripts/startup/bl_ui/space_sequencer.py
M	source/blender/editors/space_sequencer/sequencer_intern.h
M	source/blender/editors/space_sequencer/sequencer_ops.c
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..17e37f1 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", text="All strips to the Left")
+        op.left_right = 'LEFT'
+        op.linked_time = True
+        op = layout.operator("sequencer.select", text="All strips to the Right")
+        op.left_right = 'RIGHT'
+        op.linked_time = 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_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h
index 60fc300..df266b0 100644
--- a/source/blender/editors/space_sequencer/sequencer_intern.h
+++ b/source/blender/editors/space_sequencer/sequencer_intern.h
@@ -165,6 +165,13 @@ enum {
 	SEQ_UNSELECTED
 };
 
+enum {
+	SEQ_SELECT_LR_NONE = 0,
+	SEQ_SELECT_LR_MOUSE,
+	SEQ_SELECT_LR_LEFT,
+	SEQ_SELECT_LR_RIGHT	
+};
+
 /* defines used internally */
 #define SCE_MARKERS 0 // XXX - dummy
 
diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c
index e69a02a..c5e47c3 100644
--- a/source/blender/editors/space_sequencer/sequencer_ops.c
+++ b/source/blender/editors/space_sequencer/sequencer_ops.c
@@ -237,12 +237,12 @@ void sequencer_keymap(wmKeyConfig *keyconf)
 	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
 	RNA_boolean_set(kmi->ptr, "extend", false);
 	RNA_boolean_set(kmi->ptr, "linked_handle", false);
-	RNA_boolean_set(kmi->ptr, "left_right", false);
+	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
 	RNA_boolean_set(kmi->ptr, "linked_time", false);
 	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 	RNA_boolean_set(kmi->ptr, "extend", true);
 	RNA_boolean_set(kmi->ptr, "linked_handle", false);
-	RNA_boolean_set(kmi->ptr, "left_right", false);
+	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
 	RNA_boolean_set(kmi->ptr, "linked_time", false);
 
 
@@ -275,27 +275,27 @@ void sequencer_keymap(wmKeyConfig *keyconf)
 	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
 	RNA_boolean_set(kmi->ptr, "extend", false);
 	RNA_boolean_set(kmi->ptr, "linked_handle", true);
-	RNA_boolean_set(kmi->ptr, "left_right", false);
+	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
 	RNA_boolean_set(kmi->ptr, "linked_time", false);
 
 	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 	RNA_boolean_set(kmi->ptr, "extend", true);
 	RNA_boolean_set(kmi->ptr, "linked_handle", true);
-	RNA_boolean_set(kmi->ptr, "left_right", false);
+	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
 	RNA_boolean_set(kmi->ptr, "linked_time", false);
 
 	/* match action editor */
 	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 	RNA_boolean_set(kmi->ptr, "extend", false);
 	RNA_boolean_set(kmi->ptr, "linked_handle", false);
-	RNA_boolean_set(kmi->ptr, "left_right", true);     /* grr, these conflict - only use left_right if not over an active seq */
+	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_MOUSE);     /* grr, these conflict - only use left_right if not over an active seq */
 	RNA_boolean_set(kmi->ptr, "linked_time", true);
 	/* adjusted since 2.4 */
 
 	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 	RNA_boolean_set(kmi->ptr, "extend", true);
 	RNA_boolean_set(kmi->ptr, "linked_handle", false);
-	RNA_boolean_set(kmi->ptr, "left_right", false);
+	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
 	RNA_boolean_set(kmi->ptr, "linked_time", true);
 
 	WM_keymap_add_item(keymap, "SEQUENCER_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index 8e49d56..83a0de6 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -314,7 +314,7 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, const wmEvent *e
 	const bool extend = RNA_boolean_get(op->ptr, "extend");
 	const bool linked_handle = RNA_boolean_get(op->ptr, "linked_handle");
 	const bool linked_time = RNA_boolean_get(op->ptr, "linked_time");
-	bool left_right = RNA_boolean_get(op->ptr, "left_right");
+	int left_right = RNA_enum_get(op->ptr, "left_right");
 	
 	Sequence *seq, *neighbor, *act_orig;
 	int hand, sel_side;
@@ -328,8 +328,8 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, const wmEvent *e
 	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;
+	if (seq && linked_time && (left_right == SEQ_SELECT_LR_MOUSE))
+		left_right = SEQ_SELECT_LR_NONE;
 
 
 	if (marker) {
@@ -348,12 +348,24 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, const wmEvent *e
 		}
 		
 	}
-	else if (left_right) {
+	else if (left_right != SEQ_SELECT_LR_NONE) {
 		/* use different logic for this */
 		float x;
 		ED_sequencer_deselect_all(scene);
-		x = UI_view2d_region_to_view_x(v2d, event->mval[0]);
-
+		
+		switch (left_right) {
+			case SEQ_SELECT_LR_MOUSE:
+				x = UI_view2d_region_to_view_x(v2d, event->mval[0]);
+				break;
+				
+			case SEQ_SELECT_LR_LEFT:
+				x = CFRA - 1;
+				break;
+			case SEQ_SELECT_LR_RIGHT:
+				x = CFRA + 1;
+				break;
+		}
+		
 		SEQP_BEGIN (ed, seq)
 		{
 			if (x < CFRA) {
@@ -522,6 +534,14 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, const wmEvent *e
 
 void SEQUENCER_OT_select(wmOperatorType *ot)
 {
+	static EnumPropertyItem sequencer_select_left_right_types[] = {
+		{SEQ_SELECT_LR_NONE, "NONE", 0, "None", "Don't do left-right selection"},
+		{SEQ_SELECT_LR_MOUSE, "MOUSE", 0, "Mouse", "Use mouse position for selction"},
+		{SEQ_SELECT_LR_LEFT, "LEFT", 0, "Left", "Select left"},
+		{SEQ_SELECT_LR_RIGHT, "RIGHT", 0, "Select Right"},
+		{0, NULL, 0, NULL, NULL}
+	};
+	
 	/* identifiers */
 	ot->name = "Activate/Select";
 	ot->idname = "SEQUENCER_OT_select";
@@ -538,7 +558,7 @@ void SEQUENCER_OT_select(wmOperatorType *ot)
 	RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend the selection");
 	RNA_def_boolean(ot->srna, "linked_handle", 0, "Linked Handle", "Select handles next to the active strip");
 	/* for animation this is an enum but atm having an enum isn't useful for us */
-	RNA_def_boolean(ot->srna, "left_right", 0, "Left/Right", "Select based on the current frame side the cursor is on");
+	RNA_def_enum(ot->srna, "left_right", sequencer_select_left_right_types, 0, "Left/Right", "Select based on the current frame side the cursor is on");
 	RNA_def_boolean(ot->srna, "linked_time", 0, "Linked Time", "Select other strips at the same time");
 }




More information about the Bf-blender-cvs mailing list