mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-02 17:09:26 +02:00
Remove GetLink() in AudacityProject::AddImportedTracks...
... Be careful when you call IsLeader()! It's correct only after the tracks belong to the project's TrackList.
This commit is contained in:
parent
a7ca6db7c3
commit
51e0ae0447
@ -4232,23 +4232,35 @@ AudacityProject::AddImportedTracks(const wxString &fileName,
|
|||||||
bool initiallyEmpty = mTracks->empty();
|
bool initiallyEmpty = mTracks->empty();
|
||||||
double newRate = 0;
|
double newRate = 0;
|
||||||
wxString trackNameBase = fileName.AfterLast(wxFILE_SEP_PATH).BeforeLast('.');
|
wxString trackNameBase = fileName.AfterLast(wxFILE_SEP_PATH).BeforeLast('.');
|
||||||
bool isLinked = false;
|
|
||||||
int i = -1;
|
int i = -1;
|
||||||
for (auto &uNewTrack : newTracks) {
|
|
||||||
++i;
|
|
||||||
|
|
||||||
|
// Must add all tracks first (before using Track::IsLeader)
|
||||||
|
for (auto &uNewTrack : newTracks) {
|
||||||
auto newTrack = mTracks->Add(std::move(uNewTrack));
|
auto newTrack = mTracks->Add(std::move(uNewTrack));
|
||||||
results.push_back(Track::Pointer(newTrack));
|
results.push_back(Track::Pointer(newTrack));
|
||||||
|
}
|
||||||
|
newTracks.clear();
|
||||||
|
|
||||||
|
// Now name them
|
||||||
|
|
||||||
|
// Add numbers to track names only if there is more than one (mono or stereo)
|
||||||
|
// track (not necessarily, more than one channel)
|
||||||
|
const bool useSuffix =
|
||||||
|
make_iterator_range( results.begin() + 1, results.end() )
|
||||||
|
.any_of( []( decltype(*results.begin()) &pTrack )
|
||||||
|
{ return pTrack->IsLeader(); } );
|
||||||
|
|
||||||
|
for (const auto &newTrack : results) {
|
||||||
|
if ( newTrack->IsLeader() )
|
||||||
|
// Count groups only
|
||||||
|
++i;
|
||||||
|
|
||||||
newTrack->SetSelected(true);
|
newTrack->SetSelected(true);
|
||||||
//we need to check link status based on the first channel only.
|
|
||||||
if(0==i)
|
if ( useSuffix )
|
||||||
isLinked = newTrack->GetLinked();
|
|
||||||
if (numTracks > 2 || (numTracks > 1 && !isLinked) ) {
|
|
||||||
newTrack->SetName(trackNameBase + wxString::Format(wxT(" %d" ), i + 1));
|
newTrack->SetName(trackNameBase + wxString::Format(wxT(" %d" ), i + 1));
|
||||||
}
|
else
|
||||||
else {
|
|
||||||
newTrack->SetName(trackNameBase);
|
newTrack->SetName(trackNameBase);
|
||||||
}
|
|
||||||
|
|
||||||
newTrack->TypeSwitch( [&](WaveTrack *wt) {
|
newTrack->TypeSwitch( [&](WaveTrack *wt) {
|
||||||
if (newRate == 0)
|
if (newRate == 0)
|
||||||
@ -4299,8 +4311,6 @@ AudacityProject::AddImportedTracks(const wxString &fileName,
|
|||||||
// Moved this call to higher levels to prevent flicker redrawing everything on each file.
|
// Moved this call to higher levels to prevent flicker redrawing everything on each file.
|
||||||
// HandleResize();
|
// HandleResize();
|
||||||
|
|
||||||
newTracks.clear();
|
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user