1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-19 09:30:06 +02:00

Use a static unique_ptr for the global clipboard

This commit is contained in:
Paul Licameli 2016-03-13 10:56:40 -04:00
parent c5a70126eb
commit 7d1ea7b82e
3 changed files with 7 additions and 11 deletions

View File

@ -3999,7 +3999,7 @@ void AudacityProject::OnPaste()
double t1 = mViewInfo.selectedRegion.t1();
TrackListIterator iter(mTracks);
TrackListIterator clipIter(msClipboard);
TrackListIterator clipIter(msClipboard.get());
Track *n = iter.First();
Track *c = clipIter.First();
@ -4139,7 +4139,7 @@ void AudacityProject::OnPaste()
// selected tracks.
if ( n && !c )
{
TrackListOfKindIterator clipWaveIter(Track::Wave, msClipboard);
TrackListOfKindIterator clipWaveIter(Track::Wave, msClipboard.get());
c = clipWaveIter.Last();
while (n) {
@ -4246,7 +4246,7 @@ bool AudacityProject::HandlePasteNothingSelected()
return false;
else
{
TrackListIterator iterClip(msClipboard);
TrackListIterator iterClip(msClipboard.get());
Track* pClip = iterClip.First();
if (!pClip)
return true; // nothing to paste

View File

@ -164,7 +164,7 @@ scroll information. It also has some status flags.
#include "../images/AudacityLogoAlpha.xpm"
TrackList *AudacityProject::msClipboard = new TrackList();
std::unique_ptr<TrackList> AudacityProject::msClipboard{ safenew TrackList() };
double AudacityProject::msClipT0 = 0.0;
double AudacityProject::msClipT1 = 0.0;
AudacityProject *AudacityProject::msClipProject = NULL;
@ -4166,17 +4166,13 @@ void AudacityProject::UpdateMixerBoard()
//static
TrackList *AudacityProject::GetClipboardTracks()
{
return msClipboard;
return msClipboard.get();
}
//static
void AudacityProject::DeleteClipboard()
{
if (msClipboard) {
msClipboard->Clear();
delete msClipboard;
msClipboard = NULL;
}
msClipboard.reset();
}
//static

View File

@ -549,7 +549,7 @@ public:
TrackList *mLastSavedTracks;
// Clipboard (static because it is shared by all projects)
static TrackList *msClipboard;
static std::unique_ptr<TrackList> msClipboard;
static AudacityProject *msClipProject;
static double msClipT0;
static double msClipT1;