diff options
author | Doug McLain <doug@nostar.net> | 2005-12-24 13:00:17 +0000 |
---|---|---|
committer | Doug McLain <doug@nostar.net> | 2005-12-24 13:00:17 +0000 |
commit | d7cd04b719f0e2d8e13efc2ea94e938acda3533b (patch) | |
tree | ca53677d6aa4bfb17aee7fa5ef2ec125ed1b4067 /gtk2_ardour/io_selector.cc | |
parent | 143cb330b6c0d9301488badd35db4ce6f3e10b0a (diff) |
Some fixes to ioselector. Remaining fixes coming soon
git-svn-id: svn://localhost/trunk/ardour2@207 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/io_selector.cc')
-rw-r--r-- | gtk2_ardour/io_selector.cc | 51 |
1 files changed, 24 insertions, 27 deletions
diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc index 405394454e..9080f8e5dc 100644 --- a/gtk2_ardour/io_selector.cc +++ b/gtk2_ardour/io_selector.cc @@ -284,15 +284,7 @@ IOSelector::rescan () /* get relevant current JACK ports */ - ports = session.engine().get_ports ("", JACK_DEFAULT_AUDIO_TYPE, for_input?JackPortIsOutput:JackPortIsInput); - - if (ports == 0) { - return; - } - - /* get relevant current JACK ports */ - - ports = session.engine().get_ports ("", JACK_DEFAULT_AUDIO_TYPE, for_input?JackPortIsOutput:JackPortIsInput); + ports = session.engine().get_ports ("", JACK_DEFAULT_AUDIO_TYPE, for_input ? JackPortIsOutput : JackPortIsInput); if (ports == 0) { return; @@ -312,7 +304,7 @@ IOSelector::rescan () pos = str.find (':'); - newpair.first = str.substr (0, pos); + newpair.first = str.substr (0, pos); portname = str.substr (pos+1); result = portmap.insert (newpair); @@ -402,7 +394,7 @@ IOSelector::display_ports () for (uint32_t n = 0; n < limit; ++n) { TreeView* tview; - ScrolledWindow *scroller; + //ScrolledWindow *scroller; string really_short_name; if (for_input) { @@ -430,15 +422,16 @@ IOSelector::display_ports () tview->set_headers_visible (true); tview->set_name ("IOSelectorPortList"); - scroller = manage (new ScrolledWindow); + port_box.pack_start (*tview); + //scroller = manage (new ScrolledWindow); - scroller->add (*tview); - scroller->set_policy (POLICY_NEVER, POLICY_AUTOMATIC); + //scroller->add (*tview); + //scroller->set_policy (POLICY_NEVER, POLICY_NEVER); port_displays.insert (port_displays.end(), tview); - port_box.pack_start (*scroller); + //port_box.pack_start (*scroller); - scroller->set_size_request (-1, 75); + //scroller->set_size_request (-1, 75); /* now fill the clist with the current connections */ @@ -449,6 +442,7 @@ IOSelector::display_ports () for (uint32_t c = 0; connections[c]; ++c) { TreeModel::Row row = *(port_model->append()); row[port_display_columns.displayed_name] = connections[c]; + row[port_display_columns.full_name] = connections[c]; } } @@ -478,11 +472,11 @@ IOSelector::display_ports () TreeViewColumn* col = tview->get_column (0); col->set_clickable (true); - + //col->set_widget(0); /* handle button events on the column header and within the treeview itself */ //col->get_widget()->signal_button_release_event().connect (bind (mem_fun(*this, &IOSelector::port_column_button_release), tview)); - tview->signal_button_release_event().connect (bind (mem_fun(*this, &IOSelector::connection_button_release), tview)); + tview->signal_button_release_event().connect (bind (mem_fun(*this, &IOSelector::connection_button_release), tview)); } port_box.show_all (); @@ -629,7 +623,7 @@ IOSelector::connection_button_release (GdkEventButton *ev, TreeView *treeview) between the named port and the port represented by the treeview. */ - TreeIter iter; + Gtk::TreeModel::iterator iter; TreeModel::Path path; TreeViewColumn* column; int cellx; @@ -640,20 +634,22 @@ IOSelector::connection_button_release (GdkEventButton *ev, TreeView *treeview) if (ev->button != 1) { return false; } - + if (!(Keyboard::is_delete_event (ev))) { - return false; + //return false; } if (!treeview->get_path_at_pos ((int)ev->x, (int)ev->y, path, column, cellx, celly)) { return false; } - - if ((iter = treeview->get_model()->get_iter (path))) { + cerr << "path = " << path.to_string() << endl; + + if ((iter = treeview->get_model()->get_iter (path.to_string()))) { /* path is valid */ - ustring connected_port_name = (*iter)[port_display_columns.full_name]; + cerr << "selected row displayed_name: " << (*iter)[port_display_columns.displayed_name] << endl; + cerr << "selected row string was " << connected_port_name << endl; Port *port = reinterpret_cast<Port *> (treeview->get_data (_("port"))); if (for_input) { @@ -668,13 +664,14 @@ IOSelector::connection_button_release (GdkEventButton *ev, TreeView *treeview) return true; } -gint -IOSelector::port_column_button_release (GdkEventButton *event, TreeView* treeview) +int +IOSelector::port_column_button_release (GdkEventButton* event, TreeView* treeview) { /* this handles button release on the button at the top of a single-column treeview (representing a port) */ - + cerr << "IOSelector::port_column_button_release() called" << endl; + if (Keyboard::is_delete_event (event)) { Port* port; { |