diff options
author | Siddhartha Jejurkar <f20180617@goa.bits-pilani.ac.in> | 2021-12-17 16:01:32 +0300 |
---|---|---|
committer | Siddhartha Jejurkar <f20180617@goa.bits-pilani.ac.in> | 2021-12-17 16:01:32 +0300 |
commit | dbc41b30f88b96f7d8c6e995b17f5930eb55cc77 (patch) | |
tree | c6c495328443ea3621e5df2ef483b0e0dd504496 /source/blender/editors/space_sequencer/sequencer_edit.c | |
parent | 99a2af76d10e05a18987be5d554ada197b1ca086 (diff) | |
parent | 7c9e4099854a4fc8eab4db97173c1aacd25f9e08 (diff) |
Merge branch 'master' into soc-2021-uv-edge-select-supportsoc-2021-uv-edge-select-support
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_edit.c')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_edit.c | 53 |
1 files changed, 32 insertions, 21 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 899c2f6b4f4..e9f37fa6838 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -127,7 +127,6 @@ bool ED_space_sequencer_maskedit_poll(bContext *C) return false; } -/* Are we displaying the seq output (not channels or histogram). */ bool ED_space_sequencer_check_show_imbuf(SpaceSeq *sseq) { return (sseq->mainb == SEQ_DRAW_IMG_IMBUF) && @@ -152,12 +151,6 @@ static bool sequencer_fcurves_targets_color_strip(const FCurve *fcurve) return true; } -/* - * Check if there is animation shown during playback. - * - * - Colors of color strips are displayed on the strip itself. - * - Backdrop is drawn. - */ bool ED_space_sequencer_has_playback_animation(const struct SpaceSeq *sseq, const struct Scene *scene) { @@ -187,7 +180,6 @@ bool ED_space_sequencer_has_playback_animation(const struct SpaceSeq *sseq, /** \name Shared Poll Functions * \{ */ -/* Operator functions. */ bool sequencer_edit_poll(bContext *C) { return (SEQ_editing_get(CTX_data_scene(C)) != NULL); @@ -210,7 +202,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 +223,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); @@ -1708,23 +1720,22 @@ static int sequencer_delete_exec(bContext *C, wmOperator *UNUSED(op)) Scene *scene = CTX_data_scene(C); ListBase *seqbasep = SEQ_active_seqbase_get(SEQ_editing_get(scene)); + if (sequencer_view_has_preview_poll(C) && !sequencer_view_preview_only_poll(C)) { + return OPERATOR_CANCELLED; + } + SEQ_prefetch_stop(scene); - const bool is_preview = sequencer_view_preview_poll(C); - if (is_preview) { - SEQ_query_rendered_strips_to_tag(seqbasep, scene->r.cfra, 0); - } + SeqCollection *selected_strips = selected_strips_from_context(C); + Sequence *seq; - LISTBASE_FOREACH (Sequence *, seq, seqbasep) { - if (is_preview && (seq->tmp_tag == false)) { - continue; - } - if (seq->flag & SELECT) { - SEQ_edit_flag_for_removal(scene, seqbasep, seq); - } + SEQ_ITERATOR_FOREACH (seq, selected_strips) { + SEQ_edit_flag_for_removal(scene, seqbasep, seq); } SEQ_edit_remove_flagged_sequences(scene, seqbasep); + SEQ_collection_free(selected_strips); + DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS); DEG_relations_tag_update(bmain); WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene); @@ -3438,7 +3449,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; |