update_diskstream_display ();
+ _subplugin_menu_map.clear ();
subplugin_menu.items().clear ();
_route->foreach_processor (sigc::mem_fun (*this, &RouteTimeAxisView::add_processor_to_subplugin_menu));
_route->foreach_processor (sigc::mem_fun (*this, &RouteTimeAxisView::add_existing_processor_automation_curves));
detach_menu (subplugin_menu);
+ _main_automation_menu_map.clear ();
delete automation_action_menu;
automation_action_menu = new Menu;
i->second->get_state_node()->add_property ("shown", X_("yes"));
Gtk::CheckMenuItem* menu = automation_child_menu_item (i->first);
- assert (menu);
- menu->set_active(true);
+ if (menu) {
+ menu->set_active(true);
+ }
}
}
items.push_back (CheckMenuElem (name));
mitem = dynamic_cast<CheckMenuItem*> (&items.back());
- _parameter_menu_map[*i] = mitem;
+ _subplugin_menu_map[*i] = mitem;
if (has_visible_automation.find((*i)) != has_visible_automation.end()) {
mitem->set_active(true);
(*i)->valid = false;
}
+ _subplugin_menu_map.clear ();
subplugin_menu.items().clear ();
_route->foreach_processor (sigc::mem_fun (*this, &RouteTimeAxisView::add_processor_to_subplugin_menu));
Gtk::CheckMenuItem*
RouteTimeAxisView::automation_child_menu_item (Evoral::Parameter param)
{
- ParameterMenuMap::iterator i = _parameter_menu_map.find (param);
- if (i == _parameter_menu_map.end()) {
- return 0;
+ ParameterMenuMap::iterator i = _main_automation_menu_map.find (param);
+ if (i != _main_automation_menu_map.end()) {
+ return i->second;
+ }
+
+ i = _subplugin_menu_map.find (param);
+ if (i != _subplugin_menu_map.end()) {
+ return i->second;
}
- return i->second;
+ return 0;
}