| 601 | } |
| 602 | |
| 603 | void RemoveFromList() |
| 604 | { |
| 605 | if(!mDelegate || !mProject || mEffectState == nullptr) |
| 606 | return; |
| 607 | |
| 608 | auto& ui = RealtimeEffectStateUI::Get(*mEffectState); |
| 609 | // Don't need autosave for the effect that is being removed |
| 610 | ui.Hide(); |
| 611 | |
| 612 | //After AudioIO::RemoveState call this will be destroyed |
| 613 | auto effectName = GetEffectName(*mEffectState); |
| 614 | |
| 615 | AudioIO::Get()->RemoveState(*mProject, mDelegate->GetChannelGroup(), std::move(mEffectState)); |
| 616 | ProjectHistory::Get(*mProject).PushState( |
| 617 | /*! i18n-hint: undo history record |
| 618 | first parameter - realtime effect name |
| 619 | second parameter - track name |
| 620 | */ |
| 621 | XO("Removed %s from %s").Format(effectName, mDelegate->GetSourceName()), |
| 622 | /*! i18n-hint: undo history record |
| 623 | first parameter - realtime effect name */ |
| 624 | XO("Remove %s").Format(effectName) |
| 625 | ); |
| 626 | } |
| 627 | |
| 628 | void OnOptionsClicked(wxCommandEvent& event) |
| 629 | { |
nothing calls this directly
no test coverage detected