forked from bartvdbraak/blender
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.
This commit is contained in:
parent
c1ae899463
commit
16dc208ef6
@ -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'
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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,11 +348,23 @@ 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);
|
||||
|
||||
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)
|
||||
{
|
||||
@ -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");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user