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,22 +5532,29 @@ void AudacityProject::OnImportMIDI()
gPrefs->Write(wxT("/DefaultOpenPath"), path);
gPrefs->Flush();
NoteTrack *newTrack = new NoteTrack(mDirManager);
if (::ImportMIDI(fileName, newTrack)) {
SelectNone();
mTracks->Add(newTrack);
newTrack->SetSelected(true);
PushState(wxString::Format(_("Imported MIDI from '%s'"),
fileName.c_str()), _("Import MIDI"));
RedrawProject();
mTrackPanel->EnsureVisible(newTrack);
}
DoImportMIDI(fileName);
}
}
void AudacityProject::DoImportMIDI(const wxString &fileName)
{
NoteTrack *newTrack = new NoteTrack(mDirManager);
if (::ImportMIDI(fileName, newTrack)) {
SelectNone();
mTracks->Add(newTrack);
newTrack->SetSelected(true);
PushState(wxString::Format(_("Imported MIDI from '%s'"),
fileName.c_str()), _("Import MIDI"));
RedrawProject();
mTrackPanel->EnsureVisible(newTrack);
}
else
delete newTrack;
}
#endif // USE_MIDI
void AudacityProject::OnImportRaw()

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