Allow to un/link panner directly from the panner #8024

When editing a sends, this allows to unlink send panner via
the panner's context menu.

NB. After 6.0-rc string freeze the context menu needs an update.
So far the text from the Processor Box context menu is reused.
This commit is contained in:
Robin Gareus 2020-04-25 16:23:11 +02:00
parent e16ac09e54
commit 7751841b78
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
2 changed files with 21 additions and 0 deletions

View file

@ -414,6 +414,17 @@ PannerUI::build_pan_menu ()
items.push_back (MenuElem (_("Edit..."), sigc::mem_fun (*this, &PannerUI::pan_edit)));
}
if (_send_mode) {
items.push_back (SeparatorElem());
// XXX change string after string-freeze XXX -> "Link to route panner"
items.push_back (CheckMenuElem (_("Link panner controls"), sigc::mem_fun(*this, &PannerUI::pan_bypass_toggle)));
send_link_menu_item = static_cast<Gtk::CheckMenuItem*> (&items.back());
send_link_menu_item->set_active (_panshell->is_linked_to_route ());
send_link_menu_item->signal_toggled().connect (sigc::mem_fun(*this, &PannerUI::pan_link_toggle));
} else {
send_link_menu_item = NULL;
}
if (_panner_list.size() > 1 && !_panshell->bypassed()) {
RadioMenuItem::Group group;
items.push_back (SeparatorElem());
@ -437,6 +448,14 @@ PannerUI::pan_bypass_toggle ()
}
}
void
PannerUI::pan_link_toggle ()
{
if (send_link_menu_item && (_panshell->is_linked_to_route() != send_link_menu_item->get_active())) {
_panshell->set_linked_to_route (!_panshell->is_linked_to_route());
}
}
void
PannerUI::pan_edit ()
{

View file

@ -135,9 +135,11 @@ private:
Gtk::Menu* pan_menu;
Gtk::CheckMenuItem* bypass_menu_item;
Gtk::CheckMenuItem* send_link_menu_item;
void build_pan_menu ();
void pan_reset ();
void pan_bypass_toggle ();
void pan_link_toggle ();
void pan_edit ();
void pan_set_custom_type (std::string type);