From 1afb33e373ac7f0d0fce432f99c03dc9e10b3c38 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 9 May 2022 16:11:15 -0700 Subject: [PATCH] timebasedwidget: snap to workarea --- app/widget/timebased/timebasedwidget.cpp | 8 ++++++++ app/widget/timebased/timebasedwidget.h | 1 + 2 files changed, 9 insertions(+) diff --git a/app/widget/timebased/timebasedwidget.cpp b/app/widget/timebased/timebasedwidget.cpp index ae9ae8746..844ac3386 100644 --- a/app/widget/timebased/timebasedwidget.cpp +++ b/app/widget/timebased/timebasedwidget.cpp @@ -782,6 +782,14 @@ bool TimeBasedWidget::SnapPoint(const std::vector &start_times, ration } } + if ((snap_points & kSnapToWorkarea) && ruler()->GetTimelinePoints()) { + const rational &workarea_in = ruler()->GetTimelinePoints()->workarea()->in(); + const rational &workarea_out = ruler()->GetTimelinePoints()->workarea()->out(); + + AttemptSnap(potential_snaps, screen_pt, TimeToScene(workarea_in), start_times, workarea_in); + AttemptSnap(potential_snaps, screen_pt, TimeToScene(workarea_out), start_times, workarea_out); + } + if ((snap_points & kSnapToKeyframes) && GetSnapKeyframes()) { for (auto it=GetSnapKeyframes()->cbegin(); it!=GetSnapKeyframes()->cend(); it++) { const QVector &keys = (*it)->GetKeyframes(); diff --git a/app/widget/timebased/timebasedwidget.h b/app/widget/timebased/timebasedwidget.h index 3dce38e5a..b2c2dee75 100644 --- a/app/widget/timebased/timebasedwidget.h +++ b/app/widget/timebased/timebasedwidget.h @@ -62,6 +62,7 @@ public: kSnapToPlayhead = 0x2, kSnapToMarkers = 0x4, kSnapToKeyframes = 0x8, + kSnapToWorkarea = 0x10, kSnapAll = UINT32_MAX };