mirror of
https://github.com/cookiengineer/audacity
synced 2025-09-23 15:41:09 +02:00
Commit resampling of tracks to undo history one track at a time
This commit is contained in:
parent
82dd7545c9
commit
41f1ebfb5d
@ -7167,6 +7167,7 @@ void AudacityProject::OnResample()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int ndx = 0;
|
int ndx = 0;
|
||||||
|
auto flags = UndoPush::AUTOSAVE;
|
||||||
for (Track *t = iter.First(); t; t = iter.Next())
|
for (Track *t = iter.First(); t; t = iter.Next())
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
@ -7175,12 +7176,24 @@ void AudacityProject::OnResample()
|
|||||||
|
|
||||||
ProgressDialog progress(_("Resample"), msg);
|
ProgressDialog progress(_("Resample"), msg);
|
||||||
|
|
||||||
if (t->GetSelected() && t->GetKind() == Track::Wave)
|
if (t->GetSelected() && t->GetKind() == Track::Wave) {
|
||||||
|
// The resampling of a track may be stopped by the user. This might
|
||||||
|
// leave a track with multiple clips in a partially resampled state.
|
||||||
|
// But the thrown exception will cause rollback in the application
|
||||||
|
// level handler.
|
||||||
|
|
||||||
if (!((WaveTrack*)t)->Resample(newRate, &progress))
|
if (!((WaveTrack*)t)->Resample(newRate, &progress))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// Each time a track is successfully, completely resampled,
|
||||||
|
// commit that to the undo stack. The second and later times,
|
||||||
|
// consolidate.
|
||||||
|
|
||||||
|
PushState(_("Resampled audio track(s)"), _("Resample Track"), flags);
|
||||||
|
flags = flags | UndoPush::CONSOLIDATE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PushState(_("Resampled audio track(s)"), _("Resample Track"));
|
|
||||||
RedrawProject();
|
RedrawProject();
|
||||||
|
|
||||||
// Need to reset
|
// Need to reset
|
||||||
|
Loading…
x
Reference in New Issue
Block a user