[Bf-blender-cvs] [95e3356a276] master: VSE: Add select under playhead, and shortcuts for left, right, under.
Peter Fog
noreply at git.blender.org
Mon Jun 1 05:46:59 CEST 2020
Commit: 95e3356a2760fc90c161f2e1e21d3dd25734ce40
Author: Peter Fog
Date: Mon Jun 1 04:14:54 2020 +0200
Branches: master
https://developer.blender.org/rB95e3356a2760fc90c161f2e1e21d3dd25734ce40
VSE: Add select under playhead, and shortcuts for left, right, under.
Add `UNDER` option for `left_right` property of `sequencer.select` operator.
Add Equal as shortcut for select under playhead, and move Insert Gaps to backspace + ctrl.
Add extend shortcut for left, right under options.
The function is added to Select > Playhead menu.
Reviewed By: ISS
Differential Revision: https://developer.blender.org/D7679
===================================================================
M release/scripts/presets/keyconfig/keymap_data/blender_default.py
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_select.c
===================================================================
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 2559a2f1df5..3a95b3e4e0e 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -2463,7 +2463,7 @@ def km_sequencer(params):
{"properties": [("all", False)]}),
("sequencer.gap_remove", {"type": 'BACK_SPACE', "value": 'PRESS', "shift": True},
{"properties": [("all", True)]}),
- ("sequencer.gap_insert", {"type": 'EQUAL', "value": 'PRESS', "shift": True}, None),
+ ("sequencer.gap_insert", {"type": 'BACK_SPACE', "value": 'PRESS', "ctrl": True}, None),
("sequencer.snap", {"type": 'S', "value": 'PRESS', "shift": True}, None),
("sequencer.swap_inputs", {"type": 'S', "value": 'PRESS', "alt": True}, None),
*(
@@ -2521,6 +2521,15 @@ def km_sequencer(params):
{"properties": [("left_right", 'LEFT'), ("linked_time", True)]}),
("sequencer.select", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
{"properties": [("left_right", 'RIGHT'), ("linked_time", True)]}),
+ ("sequencer.select", {"type": 'EQUAL', "value": 'PRESS'},
+ {"properties": [("left_right", 'UNDER'), ("linked_time", True)]}),
+ ("sequencer.select", {"type": 'LEFT_BRACKET', "value": 'PRESS', "shift": True},
+ {"properties": [("left_right", 'LEFT'), ("linked_time", True), ("extend", True)]}),
+ ("sequencer.select", {"type": 'RIGHT_BRACKET', "value": 'PRESS', "shift": True},
+ {"properties": [("left_right", 'RIGHT'), ("linked_time", True), ("extend", True)]}),
+ ("sequencer.select", {"type": 'EQUAL', "value": 'PRESS', "shift": True},
+ {"properties": [("left_right", 'UNDER'), ("linked_time", True), ("extend", True)]}),
+
*_template_items_context_menu("SEQUENCER_MT_context_menu", params.context_menu_event),
])
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index 41c220f7ee4..d30f75c06ff 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -382,6 +382,9 @@ class SEQUENCER_MT_select_playhead(Menu):
def draw(self, _context):
layout = self.layout
+ props = layout.operator("sequencer.select", text="Under")
+ props.left_right = 'UNDER'
+ props.linked_time = True
props = layout.operator("sequencer.select", text="Left")
props.left_right = 'LEFT'
props.linked_time = True
diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h
index 708682cd04f..5f525bf913c 100644
--- a/source/blender/editors/space_sequencer/sequencer_intern.h
+++ b/source/blender/editors/space_sequencer/sequencer_intern.h
@@ -191,6 +191,7 @@ enum {
SEQ_SELECT_LR_MOUSE,
SEQ_SELECT_LR_LEFT,
SEQ_SELECT_LR_RIGHT,
+ SEQ_SELECT_LR_UNDER_PLAYHEAD,
};
/* Defines used internally. */
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index c5472ed88e5..bf5d788464c 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -412,6 +412,7 @@ static int sequencer_select_exec(bContext *C, wmOperator *op)
ret_value = OPERATOR_FINISHED;
}
+ /* Select left, right or under playhead. */
else if (left_right != SEQ_SELECT_LR_NONE) {
/* Use different logic for this. */
float x;
@@ -421,19 +422,33 @@ static int sequencer_select_exec(bContext *C, wmOperator *op)
switch (left_right) {
case SEQ_SELECT_LR_MOUSE:
+ /* 10px margin around playhead to select under playhead with mouse. */
+ float margin = BLI_rctf_size_x(&v2d->cur) / BLI_rcti_size_x(&v2d->mask) * 10;
x = UI_view2d_region_to_view_x(v2d, mval[0]);
+ if (x >= CFRA - margin && x <= CFRA + margin) {
+ x = CFRA;
+ }
break;
case SEQ_SELECT_LR_LEFT:
x = CFRA - 1.0f;
break;
case SEQ_SELECT_LR_RIGHT:
+ x = CFRA + 1.0f;
+ break;
+ case SEQ_SELECT_LR_UNDER_PLAYHEAD:
default:
x = CFRA;
break;
}
SEQP_BEGIN (ed, seq) {
- if (((x < CFRA) && (seq->enddisp <= CFRA)) || ((x >= CFRA) && (seq->startdisp >= CFRA))) {
+ /* Select under playhead. */
+ if ((x == CFRA) && (seq->startdisp <= CFRA) && (seq->enddisp >= CFRA)) {
+ seq->flag = SELECT;
+ recurs_sel_seq(seq);
+ }
+ /* Select left or right. */
+ else if ((x < CFRA && seq->enddisp <= CFRA) || (x > CFRA && seq->startdisp >= CFRA)) {
seq->flag |= SELECT;
recurs_sel_seq(seq);
}
@@ -627,8 +642,9 @@ void SEQUENCER_OT_select(wmOperatorType *ot)
static const 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 selection"},
- {SEQ_SELECT_LR_LEFT, "LEFT", 0, "Left", "Select left"},
- {SEQ_SELECT_LR_RIGHT, "RIGHT", 0, "Right", "Select right"},
+ {SEQ_SELECT_LR_LEFT, "LEFT", 0, "Left", "Select to the left of the playhead"},
+ {SEQ_SELECT_LR_RIGHT, "RIGHT", 0, "Right", "Select to the right of the playhead"},
+ {SEQ_SELECT_LR_UNDER_PLAYHEAD, "UNDER", 0, "Under", "Select under the playhead"},
{0, NULL, 0, NULL, NULL},
};
PropertyRNA *prop;
More information about the Bf-blender-cvs
mailing list