From 97faa683045e44563d25befe463e76f42c7d1a9b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 24 Sep 2007 04:52:21 +0000 Subject: Avoid thread creation and glade stuff on module/port creation (defer until menu requested). git-svn-id: http://svn.drobilla.net/lad/ingen@776 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/gui/NodeModule.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/libs/gui/NodeModule.cpp') diff --git a/src/libs/gui/NodeModule.cpp b/src/libs/gui/NodeModule.cpp index c80952b5..b59e1e23 100644 --- a/src/libs/gui/NodeModule.cpp +++ b/src/libs/gui/NodeModule.cpp @@ -42,19 +42,12 @@ NodeModule::NodeModule(boost::shared_ptr canvas, SharedPtr xml = GladeFactory::new_glade_reference(); - xml->get_widget_derived("object_menu", _menu); - _menu->init(node); - set_menu(_menu); node->signal_new_port.connect(sigc::bind(sigc::mem_fun(this, &NodeModule::add_port), true)); node->signal_removed_port.connect(sigc::mem_fun(this, &NodeModule::remove_port)); node->signal_metadata.connect(sigc::mem_fun(this, &NodeModule::set_metadata)); node->signal_polyphonic.connect(sigc::mem_fun(this, &NodeModule::set_stacked_border)); node->signal_renamed.connect(sigc::mem_fun(this, &NodeModule::rename)); - - _menu->signal_embed_gui.connect(sigc::mem_fun(this, &NodeModule::embed_gui)); set_stacked_border(node->polyphonic()); } @@ -71,6 +64,18 @@ NodeModule::~NodeModule() } +void +NodeModule::create_menu() +{ + Glib::RefPtr xml = GladeFactory::new_glade_reference(); + xml->get_widget_derived("object_menu", _menu); + _menu->init(_node); + _menu->signal_embed_gui.connect(sigc::mem_fun(this, &NodeModule::embed_gui)); + + set_menu(_menu); +} + + boost::shared_ptr NodeModule::create(boost::shared_ptr canvas, SharedPtr node) { -- cgit v1.2.1