1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 15:49:41 +02:00

Reordered SnapManager ctor arguments, added AudacityProject &

This commit is contained in:
Paul Licameli 2020-09-09 07:43:57 -04:00
parent 6510b859f3
commit 6337e1ccf4
5 changed files with 26 additions and 20 deletions

View File

@ -1900,7 +1900,8 @@ void AdornedRulerPanel::HandleSnapping()
if (handle) {
auto &pSnapManager = handle->mSnapManager;
if (! pSnapManager)
pSnapManager = std::make_unique<SnapManager>(mTracks, mViewInfo);
pSnapManager =
std::make_unique<SnapManager>(*mProject, *mTracks, *mViewInfo);
auto results = pSnapManager->Snap(NULL, mQuickPlayPos, false);
mQuickPlayPos = results.outTime;

View File

@ -39,22 +39,23 @@ TrackClip::~TrackClip()
}
SnapManager::SnapManager(const TrackList *tracks,
const ZoomInfo *zoomInfo,
const TrackClipArray *clipExclusions,
const TrackArray *trackExclusions,
SnapManager::SnapManager(const AudacityProject &project,
const TrackList &tracks,
const ZoomInfo &zoomInfo,
bool noTimeSnap,
int pixelTolerance)
int pixelTolerance,
const TrackClipArray *clipExclusions,
const TrackArray *trackExclusions)
: mConverter(NumericConverter::TIME)
{
mTracks = tracks;
mZoomInfo = zoomInfo;
mTracks = &tracks;
mZoomInfo = &zoomInfo;
mClipExclusions = clipExclusions;
mTrackExclusions = trackExclusions;
mPixelTolerance = pixelTolerance;
mNoTimeSnap = noTimeSnap;
mProject = tracks->GetOwner();
mProject = &project;
wxASSERT(mProject);
mSnapTo = 0;

View File

@ -77,12 +77,13 @@ struct SnapResults {
class SnapManager
{
public:
SnapManager(const TrackList *tracks,
const ZoomInfo *zoomInfo,
const TrackClipArray *clipExclusions = NULL,
const TrackArray *trackExclusions = NULL,
SnapManager(const AudacityProject &project,
const TrackList &tracks,
const ZoomInfo &zoomInfo,
bool noTimeSnap = false,
int pixelTolerance = kPixelTolerance);
int pixelTolerance = kPixelTolerance,
const TrackClipArray *clipExclusions = NULL,
const TrackArray *trackExclusions = NULL);
~SnapManager();
// The track may be NULL.

View File

@ -432,7 +432,8 @@ SelectHandle::SelectHandle
const TrackList &trackList,
const TrackPanelMouseState &st, const ViewInfo &viewInfo )
: mpView{ pTrackView }
, mSnapManager{ std::make_shared<SnapManager>(&trackList, &viewInfo) }
, mSnapManager{ std::make_shared<SnapManager>(
*trackList.GetOwner(), trackList, viewInfo) }
{
const wxMouseState &state = st.state;
mRect = st.rect;

View File

@ -414,11 +414,13 @@ UIHandle::Result TimeShiftHandle::Click
mSlideUpDownOnly = event.CmdDown() && !multiToolModeActive;
mRect = rect;
mClipMoveState.mMouseClickX = event.m_x;
mSnapManager = std::make_shared<SnapManager>(&trackList,
&viewInfo,
&mClipMoveState.capturedClipArray,
&mClipMoveState.trackExclusions,
true); // don't snap to time
mSnapManager =
std::make_shared<SnapManager>(*trackList.GetOwner(), trackList,
viewInfo,
true, // don't snap to time
kPixelTolerance,
&mClipMoveState.capturedClipArray,
&mClipMoveState.trackExclusions);
mClipMoveState.snapLeft = -1;
mClipMoveState.snapRight = -1;
mSnapPreferRightEdge =