1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-02 17:09:26 +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) { if (handle) {
auto &pSnapManager = handle->mSnapManager; auto &pSnapManager = handle->mSnapManager;
if (! pSnapManager) if (! pSnapManager)
pSnapManager = std::make_unique<SnapManager>(mTracks, mViewInfo); pSnapManager =
std::make_unique<SnapManager>(*mProject, *mTracks, *mViewInfo);
auto results = pSnapManager->Snap(NULL, mQuickPlayPos, false); auto results = pSnapManager->Snap(NULL, mQuickPlayPos, false);
mQuickPlayPos = results.outTime; mQuickPlayPos = results.outTime;

View File

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

View File

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

View File

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

View File

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