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

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

Reply via email to