diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-06-11 08:45:37 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-06-11 09:01:47 +0300 |
commit | e916817520693302555e70931041df3d98876b51 (patch) | |
tree | a56507bd7258ec167e3adcb125b324a92fa8df72 /source/blender/editors/space_sequencer/sequencer_edit.c | |
parent | cc064acf0f43c978ad378b20ebe869f5373651a1 (diff) |
Cleanup: move sequencer view operators into sequencer_view.c
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_edit.c')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_edit.c | 386 |
1 files changed, 5 insertions, 381 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 28ded81eeae..aa2d5b2ae7d 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -50,17 +50,12 @@ #include "WM_types.h" #include "RNA_define.h" -#include "RNA_enum_types.h" /* For menu, popup, icons, etc. */ - -#include "ED_anim_api.h" #include "ED_numinput.h" #include "ED_outliner.h" #include "ED_screen.h" #include "ED_sequencer.h" -#include "ED_space_api.h" -#include "ED_transform.h" #include "UI_interface.h" #include "UI_view2d.h" @@ -2323,6 +2318,11 @@ void SEQUENCER_OT_swap_inputs(struct wmOperatorType *ot) /** \name Split Strips Operator * \{ */ +enum { + SEQ_SPLIT_SOFT, + SEQ_SPLIT_HARD, +}; + static const EnumPropertyItem prop_split_types[] = { {SEQ_SPLIT_SOFT, "SOFT", 0, "Soft", ""}, {SEQ_SPLIT_HARD, "HARD", 0, "Hard", ""}, @@ -3092,321 +3092,6 @@ void SEQUENCER_OT_meta_separate(wmOperatorType *ot) /** \} */ /* -------------------------------------------------------------------- */ -/** \name Sequencer Frame All Operator - * \{ */ - -static int sequencer_view_all_exec(bContext *C, wmOperator *op) -{ - ARegion *region = CTX_wm_region(C); - rctf box; - - const int smooth_viewtx = WM_operator_smooth_viewtx_get(op); - - boundbox_seq(CTX_data_scene(C), &box); - UI_view2d_smooth_view(C, region, &box, smooth_viewtx); - return OPERATOR_FINISHED; -} - -void SEQUENCER_OT_view_all(wmOperatorType *ot) -{ - /* Identifiers. */ - ot->name = "Frame All"; - ot->idname = "SEQUENCER_OT_view_all"; - ot->description = "View all the strips in the sequencer"; - - /* Api callbacks. */ - ot->exec = sequencer_view_all_exec; - ot->poll = ED_operator_sequencer_active; - - /* Flags. */ - ot->flag = OPTYPE_REGISTER; -} - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name Go to Current Frame Operator - * \{ */ - -static int sequencer_view_frame_exec(bContext *C, wmOperator *op) -{ - const int smooth_viewtx = WM_operator_smooth_viewtx_get(op); - ANIM_center_frame(C, smooth_viewtx); - - return OPERATOR_FINISHED; -} - -void SEQUENCER_OT_view_frame(wmOperatorType *ot) -{ - /* Identifiers. */ - ot->name = "Go to Current Frame"; - ot->idname = "SEQUENCER_OT_view_frame"; - ot->description = "Move the view to the current frame"; - - /* Api callbacks. */ - ot->exec = sequencer_view_frame_exec; - ot->poll = ED_operator_sequencer_active; - - /* Flags. */ - ot->flag = 0; -} - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name Preview Frame All Operator - * \{ */ - -static int sequencer_view_all_preview_exec(bContext *C, wmOperator *UNUSED(op)) -{ - bScreen *screen = CTX_wm_screen(C); - ScrArea *area = CTX_wm_area(C); -#if 0 - ARegion *region = CTX_wm_region(C); - SpaceSeq *sseq = area->spacedata.first; - Scene *scene = CTX_data_scene(C); -#endif - View2D *v2d = UI_view2d_fromcontext(C); - - v2d->cur = v2d->tot; - UI_view2d_curRect_validate(v2d); - UI_view2d_sync(screen, area, v2d, V2D_LOCK_COPY); - -#if 0 - /* Like zooming on an image view. */ - float zoomX, zoomY; - int width, height, imgwidth, imgheight; - - width = region->winx; - height = region->winy; - - seq_reset_imageofs(sseq); - - imgwidth = (scene->r.size * scene->r.xsch) / 100; - imgheight = (scene->r.size * scene->r.ysch) / 100; - - /* Apply aspect, doesn't need to be that accurate. */ - imgwidth = (int)(imgwidth * (scene->r.xasp / scene->r.yasp)); - - if (((imgwidth >= width) || (imgheight >= height)) && ((width > 0) && (height > 0))) { - /* Find the zoom value that will fit the image in the image space. */ - zoomX = ((float)width) / ((float)imgwidth); - zoomY = ((float)height) / ((float)imgheight); - sseq->zoom = (zoomX < zoomY) ? zoomX : zoomY; - - sseq->zoom = 1.0f / power_of_2(1 / min_ff(zoomX, zoomY)); - } - else { - sseq->zoom = 1.0f; - } -#endif - - ED_area_tag_redraw(CTX_wm_area(C)); - return OPERATOR_FINISHED; -} - -void SEQUENCER_OT_view_all_preview(wmOperatorType *ot) -{ - /* Identifiers. */ - ot->name = "Frame All"; - ot->idname = "SEQUENCER_OT_view_all_preview"; - ot->description = "Zoom preview to fit in the area"; - - /* Api callbacks. */ - ot->exec = sequencer_view_all_preview_exec; - ot->poll = ED_operator_sequencer_active; - - /* Flags. */ - ot->flag = OPTYPE_REGISTER; -} - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name Sequencer View Zoom Ratio Operator - * \{ */ - -static int sequencer_view_zoom_ratio_exec(bContext *C, wmOperator *op) -{ - RenderData *rd = &CTX_data_scene(C)->r; - View2D *v2d = UI_view2d_fromcontext(C); - - float ratio = RNA_float_get(op->ptr, "ratio"); - - float winx = (int)(rd->size * rd->xsch) / 100; - float winy = (int)(rd->size * rd->ysch) / 100; - - float facx = BLI_rcti_size_x(&v2d->mask) / winx; - float facy = BLI_rcti_size_y(&v2d->mask) / winy; - - BLI_rctf_resize(&v2d->cur, ceilf(winx * facx / ratio + 0.5f), ceilf(winy * facy / ratio + 0.5f)); - - ED_region_tag_redraw(CTX_wm_region(C)); - - return OPERATOR_FINISHED; -} - -void SEQUENCER_OT_view_zoom_ratio(wmOperatorType *ot) -{ - /* Identifiers. */ - ot->name = "Sequencer View Zoom Ratio"; - ot->idname = "SEQUENCER_OT_view_zoom_ratio"; - ot->description = "Change zoom ratio of sequencer preview"; - - /* Api callbacks. */ - ot->exec = sequencer_view_zoom_ratio_exec; - ot->poll = ED_operator_sequencer_active; - - /* Properties. */ - RNA_def_float(ot->srna, - "ratio", - 1.0f, - -FLT_MAX, - FLT_MAX, - "Ratio", - "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out", - -FLT_MAX, - FLT_MAX); -} - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name View Toggle Operator - * \{ */ - -#if 0 -static const EnumPropertyItem view_type_items[] = { - {SEQ_VIEW_SEQUENCE, "SEQUENCER", ICON_SEQ_SEQUENCER, "Sequencer", ""}, - {SEQ_VIEW_PREVIEW, "PREVIEW", ICON_SEQ_PREVIEW, "Image Preview", ""}, - {SEQ_VIEW_SEQUENCE_PREVIEW, - "SEQUENCER_PREVIEW", - ICON_SEQ_SEQUENCER, - "Sequencer and Image Preview", - ""}, - {0, NULL, 0, NULL, NULL}, -}; -#endif - -static int sequencer_view_toggle_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceSeq *sseq = (SpaceSeq *)CTX_wm_space_data(C); - - sseq->view++; - if (sseq->view > SEQ_VIEW_SEQUENCE_PREVIEW) { - sseq->view = SEQ_VIEW_SEQUENCE; - } - - ED_area_tag_refresh(CTX_wm_area(C)); - - return OPERATOR_FINISHED; -} - -void SEQUENCER_OT_view_toggle(wmOperatorType *ot) -{ - /* Identifiers. */ - ot->name = "View Toggle"; - ot->idname = "SEQUENCER_OT_view_toggle"; - ot->description = "Toggle between sequencer views (sequence, preview, both)"; - - /* Api callbacks. */ - ot->exec = sequencer_view_toggle_exec; - ot->poll = ED_operator_sequencer_active; - - /* Flags. */ - ot->flag = OPTYPE_REGISTER; -} - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name Frame Selected Operator - * \{ */ - -static int sequencer_view_selected_exec(bContext *C, wmOperator *op) -{ - Scene *scene = CTX_data_scene(C); - View2D *v2d = UI_view2d_fromcontext(C); - ARegion *region = CTX_wm_region(C); - Editing *ed = BKE_sequencer_editing_get(scene, false); - Sequence *last_seq = BKE_sequencer_active_get(scene); - Sequence *seq; - rctf cur_new = v2d->cur; - - int xmin = MAXFRAME * 2; - int xmax = -MAXFRAME * 2; - int ymin = MAXSEQ + 1; - int ymax = 0; - int orig_height; - int ymid; - int ymargin = 1; - int xmargin = FPS; - - if (ed == NULL) { - return OPERATOR_CANCELLED; - } - - for (seq = ed->seqbasep->first; seq; seq = seq->next) { - if ((seq->flag & SELECT) || (seq == last_seq)) { - xmin = min_ii(xmin, seq->startdisp); - xmax = max_ii(xmax, seq->enddisp); - - ymin = min_ii(ymin, seq->machine); - ymax = max_ii(ymax, seq->machine); - } - } - - if (ymax != 0) { - const int smooth_viewtx = WM_operator_smooth_viewtx_get(op); - - xmax += xmargin; - xmin -= xmargin; - ymax += ymargin; - ymin -= ymargin; - - orig_height = BLI_rctf_size_y(&cur_new); - - cur_new.xmin = xmin; - cur_new.xmax = xmax; - - cur_new.ymin = ymin; - cur_new.ymax = ymax; - - /* Only zoom out vertically. */ - if (orig_height > BLI_rctf_size_y(&cur_new)) { - ymid = BLI_rctf_cent_y(&cur_new); - - cur_new.ymin = ymid - (orig_height / 2); - cur_new.ymax = ymid + (orig_height / 2); - } - - UI_view2d_smooth_view(C, region, &cur_new, smooth_viewtx); - - return OPERATOR_FINISHED; - } - else { - return OPERATOR_CANCELLED; - } -} - -void SEQUENCER_OT_view_selected(wmOperatorType *ot) -{ - /* Identifiers. */ - ot->name = "Frame Selected"; - ot->idname = "SEQUENCER_OT_view_selected"; - ot->description = "Zoom the sequencer on the selected strips"; - - /* Api callbacks. */ - ot->exec = sequencer_view_selected_exec; - ot->poll = ED_operator_sequencer_active; - - /* Flags. */ - ot->flag = OPTYPE_REGISTER; -} - -/** \} */ - -/* -------------------------------------------------------------------- */ /** \name Jump to Strip Operator * \{ */ @@ -3857,67 +3542,6 @@ void SEQUENCER_OT_swap_data(wmOperatorType *ot) /** \} */ /* -------------------------------------------------------------------- */ -/** \name Border Offset View Operator - * \{ */ - -static int view_ghost_border_exec(bContext *C, wmOperator *op) -{ - Scene *scene = CTX_data_scene(C); - View2D *v2d = UI_view2d_fromcontext(C); - - rctf rect; - - /* Convert coordinates of rect to 'tot' rect coordinates. */ - WM_operator_properties_border_to_rctf(op, &rect); - UI_view2d_region_to_view_rctf(v2d, &rect, &rect); - - rect.xmin /= fabsf(BLI_rctf_size_x(&v2d->tot)); - rect.ymin /= fabsf(BLI_rctf_size_y(&v2d->tot)); - - rect.xmax /= fabsf(BLI_rctf_size_x(&v2d->tot)); - rect.ymax /= fabsf(BLI_rctf_size_y(&v2d->tot)); - - rect.xmin += 0.5f; - rect.xmax += 0.5f; - rect.ymin += 0.5f; - rect.ymax += 0.5f; - - CLAMP(rect.xmin, 0.0f, 1.0f); - CLAMP(rect.ymin, 0.0f, 1.0f); - CLAMP(rect.xmax, 0.0f, 1.0f); - CLAMP(rect.ymax, 0.0f, 1.0f); - - scene->ed->over_border = rect; - - WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene); - - return OPERATOR_FINISHED; -} - -void SEQUENCER_OT_view_ghost_border(wmOperatorType *ot) -{ - /* Identifiers. */ - ot->name = "Border Offset View"; - ot->idname = "SEQUENCER_OT_view_ghost_border"; - ot->description = "Set the boundaries of the border used for offset-view"; - - /* Api callbacks. */ - 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->cancel = WM_gesture_box_cancel; - - /* Flags. */ - ot->flag = 0; - - /* Properties. */ - WM_operator_properties_gesture_box(ot); -} - -/** \} */ - -/* -------------------------------------------------------------------- */ /** \name Rebuild Proxy and Timecode Indices Operator * \{ */ |