1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-13 22:21:11 +02:00

Bug1354: Importing MIDI via Import Audio... and list-of-files should undo...

... also fixes a possible memory leak in direct Import MIDI... along the
failure path.
This commit is contained in:
Paul Licameli
2016-03-14 11:02:09 -04:00
parent 919712e3f7
commit 4cf9e0e6d6
3 changed files with 23 additions and 20 deletions

View File

@@ -5532,6 +5532,12 @@ void AudacityProject::OnImportMIDI()
gPrefs->Write(wxT("/DefaultOpenPath"), path);
gPrefs->Flush();
DoImportMIDI(fileName);
}
}
void AudacityProject::DoImportMIDI(const wxString &fileName)
{
NoteTrack *newTrack = new NoteTrack(mDirManager);
if (::ImportMIDI(fileName, newTrack)) {
@@ -5546,7 +5552,8 @@ void AudacityProject::OnImportMIDI()
RedrawProject();
mTrackPanel->EnsureVisible(newTrack);
}
}
else
delete newTrack;
}
#endif // USE_MIDI

View File

@@ -317,6 +317,7 @@ void OnRescanDevices();
void OnImport();
void OnImportLabels();
void OnImportMIDI();
void DoImportMIDI(const wxString &fileName);
void OnImportRaw();
void OnEditMetadata();

View File

@@ -379,12 +379,7 @@ void LOFImportFileHandle::lofOpenFiles(wxString* ln)
if (targetfile.AfterLast(wxT('.')).IsSameAs(wxT("mid"), false)
|| targetfile.AfterLast(wxT('.')).IsSameAs(wxT("midi"), false))
{
NoteTrack *nTrack = new NoteTrack(mProject->GetDirManager());
if (::ImportMIDI(targetfile, nTrack))
mProject->GetTracks()->Add(nTrack);
else
delete nTrack;
mProject->DoImportMIDI(targetfile);
}
// If not a midi, open audio file