Update of /cvsroot/audacity/audacity-src/src
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv11993
Modified Files:
Project.cpp
Log Message:
Fix for deleting/removing tracks from tracklist
Index: Project.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Project.cpp,v
retrieving revision 1.403
retrieving revision 1.404
diff -u -d -r1.403 -r1.404
--- Project.cpp 23 Mar 2009 18:27:07 -0000 1.403
+++ Project.cpp 23 Mar 2009 23:16:58 -0000 1.404
@@ -2824,44 +2824,35 @@
Track* pSavedTrack;
Track* pTrack;
WaveTrack* pWaveTrack;
- TrackListIterator iter(mTracks);
+ TrackListOfKindIterator iter(Track::Wave, mTracks);
unsigned int numWaveTracks = 0;
TrackList* pSavedTrackList = new TrackList();
for (pTrack = iter.First(); pTrack != NULL; pTrack = iter.Next())
{
- if (pTrack->GetKind() == Track::Wave)
- {
- numWaveTracks++;
- pWaveTrack = (WaveTrack*)pTrack;
- pSavedTrack = mTrackFactory->DuplicateWaveTrack(*pWaveTrack);
- }
- else
- pSavedTrack = pTrack; // No need to copy.
+ numWaveTracks++;
+ pWaveTrack = (WaveTrack*)pTrack;
+ pSavedTrack = mTrackFactory->DuplicateWaveTrack(*pWaveTrack);
pSavedTrackList->Add(pSavedTrack);
}
- TrackListIterator savedTrackIter(pSavedTrackList);
+
if (numWaveTracks == 0)
{
// Nothing to save compressed => success. Delete the copies and go.
- for (pSavedTrack = savedTrackIter.First(); pSavedTrack != NULL;
pSavedTrack = savedTrackIter.Next())
- if (pSavedTrack->GetKind() == Track::Wave)
- delete pSavedTrack;
delete pSavedTrackList;
return true;
}
// Okay, now some bold state-faking to default values.
for (pTrack = iter.First(); pTrack != NULL; pTrack = iter.Next())
- if (pTrack->GetKind() == Track::Wave)
- {
- pWaveTrack = (WaveTrack*)pTrack;
- pWaveTrack->SetSelected(false);
- pWaveTrack->SetMute(false);
- pWaveTrack->SetSolo(false);
+ {
+ pWaveTrack = (WaveTrack*)pTrack;
+ pWaveTrack->SetSelected(false);
+ pWaveTrack->SetMute(false);
+ pWaveTrack->SetSolo(false);
- pWaveTrack->SetGain(1.0);
- pWaveTrack->SetPan(0.0);
- }
+ pWaveTrack->SetGain(1.0);
+ pWaveTrack->SetPan(0.0);
+ }
wxString strDataDirPathName = strProjectPathName + wxT("_data");
if (!wxFileName::DirExists(strDataDirPathName) &&
@@ -2901,25 +2892,21 @@
}
// Restore the saved track states and clean up.
+ TrackListIterator savedTrackIter(pSavedTrackList);
for (pTrack = iter.First(), pSavedTrack = savedTrackIter.First();
((pTrack != NULL) && (pSavedTrack != NULL));
pTrack = iter.Next(), pSavedTrack = savedTrackIter.Next())
{
- if (pTrack->GetKind() == Track::Wave)
- {
- wxASSERT(pSavedTrack->GetKind() == Track::Wave);
- pWaveTrack = (WaveTrack*)pTrack;
- pWaveTrack->SetSelected(pSavedTrack->GetSelected());
- pWaveTrack->SetMute(pSavedTrack->GetMute());
- pWaveTrack->SetSolo(pSavedTrack->GetSolo());
+ pWaveTrack = (WaveTrack*)pTrack;
+ pWaveTrack->SetSelected(pSavedTrack->GetSelected());
+ pWaveTrack->SetMute(pSavedTrack->GetMute());
+ pWaveTrack->SetSolo(pSavedTrack->GetSolo());
- pWaveTrack->SetGain(((WaveTrack*)pSavedTrack)->GetGain());
- pWaveTrack->SetPan(((WaveTrack*)pSavedTrack)->GetPan());
- }
+ pWaveTrack->SetGain(((WaveTrack*)pSavedTrack)->GetGain());
+ pWaveTrack->SetPan(((WaveTrack*)pSavedTrack)->GetPan());
}
- for (pSavedTrack = savedTrackIter.First(); pSavedTrack != NULL;
pSavedTrack = savedTrackIter.Next())
- if (pSavedTrack->GetKind() == Track::Wave)
- delete pSavedTrack;
+
+ pSavedTrackList->Clear(true);
delete pSavedTrackList;
return bSuccess;
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Audacity-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/audacity-cvs