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:
@@ -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()
|
||||
|
@@ -317,6 +317,7 @@ void OnRescanDevices();
|
||||
void OnImport();
|
||||
void OnImportLabels();
|
||||
void OnImportMIDI();
|
||||
void DoImportMIDI(const wxString &fileName);
|
||||
void OnImportRaw();
|
||||
|
||||
void OnEditMetadata();
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user