From 190e2cf3c91f8bd5b1a6f69d00e84a108c743898 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 12 Jun 2006 00:41:00 +0000 Subject: Metadata working based on Store signals (node positions restored) git-svn-id: http://svn.drobilla.net/lad/grauph@29 a436a847-0d15-0410-975c-d299462d15a1 --- src/progs/gtk/NodeController.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'src/progs/gtk/NodeController.cpp') diff --git a/src/progs/gtk/NodeController.cpp b/src/progs/gtk/NodeController.cpp index 63994c00..7965c35a 100644 --- a/src/progs/gtk/NodeController.cpp +++ b/src/progs/gtk/NodeController.cpp @@ -50,12 +50,11 @@ NodeController::NodeController(CountedPtr model) model->set_controller(this); // Create port controllers - cerr << "FIXME: NodeController()" << endl; - /* - for (list::const_iterator i = node_model()->ports().begin(); + for (PortModelList::const_iterator i = node_model()->ports().begin(); i != node_model()->ports().end(); ++i) { - assert((*i)->controller() == NULL); + assert(!(*i)->controller()); assert((*i)->parent() == model.get()); + // FIXME: leak PortController* const pc = new PortController(*i); assert((*i)->controller() == pc); // PortController() does this } @@ -83,13 +82,12 @@ NodeController::NodeController(CountedPtr model) m_controls_menuitem->property_sensitive() = false; - if (node_model()->plugin()->type() == PluginModel::Internal + if (node_model()->plugin() && node_model()->plugin()->type() == PluginModel::Internal && node_model()->plugin()->plug_label() == "midi_control_in") { Gtk::Menu::MenuList& items = m_menu.items(); items.push_back(Gtk::Menu_Helpers::MenuElem("Learn", sigc::mem_fun(this, &NodeController::on_menu_learn))); } - */ model->new_port_sig.connect(sigc::mem_fun(this, &NodeController::add_port)); } @@ -227,11 +225,12 @@ NodeController::metadata_update(const string& key, const string& value) void NodeController::add_port(CountedPtr pm) { - assert(pm->parent() == NULL); + assert(pm->parent() == node_model().get()); + assert(node_model()->get_port(pm->name()) == pm); cout << "[NodeController] Adding port " << pm->path() << endl; - node_model()->add_port(pm); + // FIXME: leak PortController* pc = new PortController(pm); assert(pm->controller() == pc); //pc->add_to_store(); -- cgit v1.2.1