Merge branch 'blender-v3.0-release'

This commit is contained in:
Richard Antalik 2021-11-30 11:17:04 +01:00
commit e1cb2a226c
8 changed files with 66 additions and 38 deletions

View File

@ -41,7 +41,7 @@ def _space_view_types(st):
view_type = st.view_type
return (
view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'},
view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'},
view_type == 'PREVIEW',
)
@ -196,10 +196,6 @@ class SEQUENCER_HT_header(Header):
row = layout.row(align=True)
row.prop(sequencer_tool_settings, "overlap_mode", text="")
if st.view_type == 'SEQUENCER_PREVIEW':
row = layout.row(align=True)
row.prop(sequencer_tool_settings, "pivot_point", text="", icon_only=True)
if st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'}:
row = layout.row(align=True)
row.prop(tool_settings, "use_snap_sequencer", text="")
@ -248,7 +244,8 @@ class SEQUENCER_MT_editor_menus(Menu):
layout.menu("SEQUENCER_MT_strip")
layout.menu("SEQUENCER_MT_image")
if st.view_type in {'SEQUENCER', 'PREVIEW'}:
layout.menu("SEQUENCER_MT_image")
class SEQUENCER_PT_gizmo_display(Panel):
@ -576,10 +573,6 @@ class SEQUENCER_MT_select(Menu):
st = context.space_data
has_sequencer, has_preview = _space_view_types(st)
# FIXME: this doesn't work for both preview + window region.
if has_preview:
layout.operator_context = 'INVOKE_REGION_PREVIEW'
layout.operator("sequencer.select_all", text="All").action = 'SELECT'
layout.operator("sequencer.select_all", text="None").action = 'DESELECT'
layout.operator("sequencer.select_all", text="Invert").action = 'INVERT'
@ -821,7 +814,6 @@ class SEQUENCER_MT_strip_transform(Menu):
else:
layout.operator_context = 'INVOKE_REGION_WIN'
# FIXME: mixed preview/sequencer views.
if has_preview:
layout.operator("transform.translate", text="Move")
layout.operator("transform.rotate", text="Rotate")
@ -917,12 +909,6 @@ class SEQUENCER_MT_strip(Menu):
st = context.space_data
has_sequencer, has_preview = _space_view_types(st)
# FIXME: this doesn't work for both preview + window region.
if has_preview:
layout.operator_context = 'INVOKE_REGION_PREVIEW'
else:
layout.operator_context = 'INVOKE_REGION_WIN'
layout.menu("SEQUENCER_MT_strip_transform")
layout.separator()

View File

@ -3153,14 +3153,7 @@ class SEQUENCER_PT_tools_active(ToolSelectPanelHelper, Panel):
],
'SEQUENCER_PREVIEW': [
*_tools_select,
_defs_sequencer_generic.cursor,
None,
_defs_sequencer_generic.translate,
_defs_sequencer_generic.rotate,
_defs_sequencer_generic.scale,
_defs_sequencer_generic.transform,
None,
_defs_sequencer_generic.sample,
*_tools_annotate,
None,
_defs_sequencer_generic.blade,

View File

@ -2097,6 +2097,10 @@ static int sequencer_draw_get_transform_preview_frame(Scene *scene)
static void seq_draw_image_origin_and_outline(const bContext *C, Sequence *seq, bool is_active_seq)
{
SpaceSeq *sseq = CTX_wm_space_seq(C);
const ARegion *region = CTX_wm_region(C);
if (region->regiontype == RGN_TYPE_PREVIEW && !sequencer_view_preview_only_poll(C)) {
return;
}
if ((seq->flag & SELECT) == 0) {
return;
}

View File

@ -210,7 +210,7 @@ bool sequencer_strip_has_path_poll(bContext *C)
(SEQ_HAS_PATH(seq)));
}
bool sequencer_view_preview_poll(bContext *C)
bool sequencer_view_has_preview_poll(bContext *C)
{
SpaceSeq *sseq = CTX_wm_space_seq(C);
if (sseq == NULL) {
@ -231,6 +231,26 @@ bool sequencer_view_preview_poll(bContext *C)
return true;
}
bool sequencer_view_preview_only_poll(const bContext *C)
{
SpaceSeq *sseq = CTX_wm_space_seq(C);
if (sseq == NULL) {
return false;
}
if (SEQ_editing_get(CTX_data_scene(C)) == NULL) {
return false;
}
if (!(ELEM(sseq->view, SEQ_VIEW_PREVIEW) && (sseq->mainb == SEQ_DRAW_IMG_IMBUF))) {
return false;
}
ARegion *region = CTX_wm_region(C);
if (!(region && region->regiontype == RGN_TYPE_PREVIEW)) {
return false;
}
return true;
}
bool sequencer_view_strips_poll(bContext *C)
{
SpaceSeq *sseq = CTX_wm_space_seq(C);
@ -1710,8 +1730,11 @@ static int sequencer_delete_exec(bContext *C, wmOperator *UNUSED(op))
SEQ_prefetch_stop(scene);
const bool is_preview = sequencer_view_preview_poll(C);
const bool is_preview = sequencer_view_has_preview_poll(C);
if (is_preview) {
if (!sequencer_view_preview_only_poll(C)) {
return OPERATOR_CANCELLED;
}
SEQ_query_rendered_strips_to_tag(seqbasep, scene->r.cfra, 0);
}
@ -3438,7 +3461,7 @@ void SEQUENCER_OT_cursor_set(wmOperatorType *ot)
/* api callbacks */
ot->exec = sequencer_set_2d_cursor_exec;
ot->invoke = sequencer_set_2d_cursor_invoke;
ot->poll = sequencer_view_preview_poll;
ot->poll = sequencer_view_has_preview_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;

View File

@ -110,7 +110,8 @@ bool sequencer_edit_poll(struct bContext *C);
/* UNUSED */
/* bool sequencer_strip_poll(struct bContext *C); */
bool sequencer_strip_has_path_poll(struct bContext *C);
bool sequencer_view_preview_poll(struct bContext *C);
bool sequencer_view_has_preview_poll(struct bContext *C);
bool sequencer_view_preview_only_poll(const struct bContext *C);
bool sequencer_view_strips_poll(struct bContext *C);
/* Externs. */

View File

@ -416,8 +416,11 @@ static int sequencer_de_select_all_exec(bContext *C, wmOperator *op)
Editing *ed = SEQ_editing_get(scene);
Sequence *seq;
const bool is_preview = sequencer_view_preview_poll(C);
const bool is_preview = sequencer_view_has_preview_poll(C);
if (is_preview) {
if (!sequencer_view_preview_only_poll(C)) {
return OPERATOR_CANCELLED;
}
SEQ_query_rendered_strips_to_tag(ed->seqbasep, scene->r.cfra, 0);
}
@ -494,8 +497,11 @@ static int sequencer_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
Editing *ed = SEQ_editing_get(scene);
Sequence *seq;
const bool is_preview = sequencer_view_preview_poll(C);
const bool is_preview = sequencer_view_has_preview_poll(C);
if (is_preview) {
if (!sequencer_view_preview_only_poll(C)) {
return OPERATOR_CANCELLED;
}
SEQ_query_rendered_strips_to_tag(ed->seqbasep, scene->r.cfra, 0);
}
@ -866,6 +872,9 @@ static int sequencer_select_exec(bContext *C, wmOperator *op)
}
if (region->regiontype == RGN_TYPE_PREVIEW) {
if (!sequencer_view_preview_only_poll(C)) {
return OPERATOR_CANCELLED;
}
const SpaceSeq *sseq = CTX_wm_space_seq(C);
if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
return OPERATOR_CANCELLED;
@ -1612,6 +1621,9 @@ static int sequencer_box_select_exec(bContext *C, wmOperator *op)
ARegion *region = CTX_wm_region(C);
if (region->regiontype == RGN_TYPE_PREVIEW) {
if (!sequencer_view_preview_only_poll(C)) {
return OPERATOR_CANCELLED;
}
seq_box_select_seq_from_preview(C, &rectf, sel_op);
sequencer_select_do_updates(C, scene);
return OPERATOR_FINISHED;
@ -1671,6 +1683,11 @@ static int sequencer_box_select_invoke(bContext *C, wmOperator *op, const wmEven
{
Scene *scene = CTX_data_scene(C);
View2D *v2d = &CTX_wm_region(C)->v2d;
ARegion *region = CTX_wm_region(C);
if (region->regiontype == RGN_TYPE_PREVIEW && !sequencer_view_preview_only_poll(C)) {
return OPERATOR_CANCELLED;
}
const bool tweak = RNA_boolean_get(op->ptr, "tweak");
@ -2003,8 +2020,11 @@ static int sequencer_select_grouped_exec(bContext *C, wmOperator *op)
ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(scene));
Sequence *actseq = SEQ_select_active_get(scene);
const bool is_preview = sequencer_view_preview_poll(C);
const bool is_preview = sequencer_view_has_preview_poll(C);
if (is_preview) {
if (!sequencer_view_preview_only_poll(C)) {
return OPERATOR_CANCELLED;
}
SEQ_query_rendered_strips_to_tag(seqbase, scene->r.cfra, 0);
if (actseq && actseq->tmp_tag == false) {
actseq = NULL;

View File

@ -405,7 +405,7 @@ void SEQUENCER_OT_view_ghost_border(wmOperatorType *ot)
ot->invoke = WM_gesture_box_invoke;
ot->exec = view_ghost_border_exec;
ot->modal = WM_gesture_box_modal;
ot->poll = sequencer_view_preview_poll;
ot->poll = sequencer_view_has_preview_poll;
ot->cancel = WM_gesture_box_cancel;
/* Flags. */

View File

@ -118,16 +118,17 @@ static void freeSeqData(TransInfo *UNUSED(t),
void createTransSeqImageData(TransInfo *t)
{
Editing *ed = SEQ_editing_get(t->scene);
const SpaceSeq *sseq = t->area->spacedata.first;
const ARegion *region = t->region;
if (ed == NULL) {
return;
}
{
const SpaceSeq *sseq = t->area->spacedata.first;
if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
return;
}
if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
return;
}
if (region->regiontype == RGN_TYPE_PREVIEW && sseq->view == SEQ_VIEW_SEQUENCE_PREVIEW) {
return;
}
ListBase *seqbase = SEQ_active_seqbase_get(ed);