Bug2109 residual: apply fix also in case of import of MIDI...

... Muting the new track, in case any solo track already existed.
This commit is contained in:
Paul Licameli 2020-11-10 16:10:27 -05:00
parent 003d1c23a3
commit 791dbea1af
2 changed files with 11 additions and 9 deletions

View File

@ -975,7 +975,6 @@ ProjectFileManager::AddImportedTracks(const FilePath &fileName,
auto &history = ProjectHistory::Get( project );
auto &projectFileIO = ProjectFileIO::Get( project );
auto &tracks = TrackList::Get( project );
const auto& playableTracks = tracks.Any<PlayableTrack>();
std::vector< std::shared_ptr< Track > > results;
@ -988,16 +987,11 @@ ProjectFileManager::AddImportedTracks(const FilePath &fileName,
wxString trackNameBase = fn.GetName();
int i = -1;
// Next for- and if-statements fix the bug 2109.
// Fix the bug 2109.
// In case the project had soloed tracks before importing,
// all newly imported tracks are muted.
bool projectHasSolo{ false };
for (const auto& track : playableTracks)
{
if (track->GetSolo())
projectHasSolo = true;
}
const bool projectHasSolo =
!(tracks.Any<PlayableTrack>() + &PlayableTrack::GetSolo).empty();
if (projectHasSolo)
{
for (auto& track : newTracks)

View File

@ -44,6 +44,14 @@ bool DoImportMIDI( AudacityProject &project, const FilePath &fileName )
auto pTrack = tracks.Add( newTrack );
pTrack->SetSelected(true);
// Fix the bug 2109.
// In case the project had soloed tracks before importing,
// the newly imported track is muted.
const bool projectHasSolo =
!(tracks.Any<PlayableTrack>() + &PlayableTrack::GetSolo).empty();
if (projectHasSolo)
pTrack->SetMute(true);
ProjectHistory::Get( project )
.PushState(
XO("Imported MIDI from '%s'").Format( fileName ),