diff --git a/gtk2_ardour/vca_master_strip.cc b/gtk2_ardour/vca_master_strip.cc index f23350e0b6..faeba8dac8 100644 --- a/gtk2_ardour/vca_master_strip.cc +++ b/gtk2_ardour/vca_master_strip.cc @@ -36,7 +36,6 @@ #include "floating_text_entry.h" #include "gui_thread.h" #include "mixer_ui.h" -#include "public_editor.h" #include "ui_config.h" #include "utils.h" #include "vca_master_strip.h" @@ -469,7 +468,7 @@ VCAMasterStrip::build_context_menu () items.push_back (SeparatorElem()); items.push_back (MenuElem (_("Drop All Slaves"), sigc::mem_fun (*this, &VCAMasterStrip::drop_all_slaves))); items.push_back (SeparatorElem()); - items.push_back (MenuElem (_("Remove"), sigc::mem_fun(PublicEditor::instance(), &PublicEditor::remove_tracks))); + items.push_back (MenuElem (_("Remove"), sigc::mem_fun (*this, &VCAMasterStrip::remove))); } void @@ -494,6 +493,42 @@ VCAMasterStrip::spill_change (boost::shared_ptr vca) } } +void +VCAMasterStrip::remove () +{ + if (!_session) { + return; + } + + ArdourMessageDialog checker (_("Do you really want to remove this VCA?"), + true, + Gtk::MESSAGE_QUESTION, + Gtk::BUTTONS_NONE); + + string title = string_compose (_("Remove %1"), "VCA"); + checker.set_title (title); + + checker.set_secondary_text(_("This action cannot be undone.")); + + checker.add_button (_("No, do nothing."), RESPONSE_CANCEL); + checker.add_button (_("Yes, remove it."), RESPONSE_ACCEPT); + checker.set_default_response (RESPONSE_CANCEL); + + checker.set_name (X_("RemoveVcaDialog")); + checker.set_wmclass (X_("ardour_vca_remove"), PROGRAM_NAME); + checker.set_position (Gtk::WIN_POS_MOUSE); + + switch (checker.run()) { + case RESPONSE_ACCEPT: + break; + default: + return; + } + checker.hide(); + + _session->vca_manager().remove_vca (_vca); +} + void VCAMasterStrip::assign_all_selected () {