1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-23 09:20:16 +01:00

Reimplement Track::Pointer using std::enable_shared_from_this...

... now the Track need not be owned yet by a TrackList
This commit is contained in:
Paul Licameli
2018-11-18 20:50:24 -05:00
parent 3dba70120c
commit 6f89c48873
19 changed files with 74 additions and 73 deletions

View File

@@ -62,7 +62,8 @@ std::shared_ptr<Track> TrackPanelAx::GetFocus()
focusedTrack = FindTrack(mNumFocusedTrack);
}
if (!focusedTrack) {
focusedTrack = Track::Pointer( *mTrackPanel->GetTracks()->Any().first );
focusedTrack =
(*mTrackPanel->GetTracks()->Any().first)->SharedPointer();
// only call SetFocus if the focus has changed to avoid
// unnecessary focus events
if (focusedTrack)
@@ -97,7 +98,7 @@ std::shared_ptr<Track> TrackPanelAx::SetFocus( std::shared_ptr<Track> track )
#endif
if( !track )
track = Track::Pointer( *mTrackPanel->GetTracks()->Any().begin() );
track = (*mTrackPanel->GetTracks()->Any().begin())->SharedPointer();
mFocusedTrack = track;
mNumFocusedTrack = TrackNum(track);
@@ -175,7 +176,7 @@ std::shared_ptr<Track> TrackPanelAx::FindTrack( int num )
{
ndx++;
if( ndx == num )
return Track::Pointer( t );
return t->SharedPointer();
}
return {};