Re-use the Mixer's PluginManager (singleton)

Previously there were three plugin-manager instances (two of which
were never destroyed).

There were also 3 sets of context-menus (favorites, by tag, by author..),
all of which were re-built when plugin stati changed.

Since the Plugin-manager is a modal dialog, it can be re-used in
all contexts (route-ui, monitor-section, mixer).
This commit is contained in:
Robin Gareus 2019-05-25 00:12:55 +02:00
parent ce8740cf5e
commit 92cfed14cf
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
4 changed files with 16 additions and 9 deletions

View file

@ -41,6 +41,7 @@
#include "gui_thread.h"
#include "io_selector.h"
#include "keyboard.h"
#include "mixer_ui.h"
#include "mixer_strip.h"
#include "port_insert_ui.h"
#include "plugin_selector.h"
@ -140,7 +141,6 @@ RouteParams_UI::RouteParams_UI ()
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::BUTTON_RELEASE_MASK);
_plugin_selector = new PluginSelector (PluginManager::instance());
show_all();
}
@ -228,6 +228,11 @@ RouteParams_UI::map_frozen()
}
}
PluginSelector*
RouteParams_UI::plugin_selector() {
return Mixer_UI::instance()->plugin_selector ();
}
void
RouteParams_UI::setup_processor_boxes()
{
@ -406,7 +411,6 @@ RouteParams_UI::set_session (Session *sess)
ArdourWindow::set_session (sess);
route_display_model->clear();
_plugin_selector->set_session (_session);
if (_session) {
boost::shared_ptr<RouteList> r = _session->get_routes();