#include "ardour/session.h"
#include "ardour/route_group.h"
#include "ardour/route.h"
+
+#include "gui_thread.h"
#include "route_group_dialog.h"
#include "group_tabs.h"
#include "keyboard.h"
using namespace std;
using namespace Gtk;
using namespace ARDOUR;
+using Gtkmm2ext::Keyboard;
GroupTabs::GroupTabs (Editor* e)
: EditorComponent (e),
}
void
-GroupTabs::connect_to_session (Session* s)
+GroupTabs::set_session (Session* s)
{
- EditorComponent::connect_to_session (s);
+ EditorComponent::set_session (s);
- _session_connections.push_back (_session->RouteGroupChanged.connect (mem_fun (*this, &GroupTabs::set_dirty)));
+ if (_session) {
+ _session->RouteGroupChanged.connect (_session_connections, invalidator (*this), boost::bind (&GroupTabs::set_dirty, this), gui_context());
+ }
}
RouteGroup* g = new_route_group ();
if (g) {
for (RouteList::iterator i = routes.begin(); i != routes.end(); ++i) {
- (*i)->set_route_group (g, this);
+ g->add (*i);
}
}
} else {
if (find (routes.begin(), routes.end(), *i) == routes.end()) {
/* this route is not on the list of those that should be in _dragging's group */
if ((*i)->route_group() == _dragging->group) {
- (*i)->drop_route_group (this);
+ _dragging->group->remove (*i);
}
} else {
- (*i)->set_route_group (_dragging->group, this);
+ _dragging->group->add (*i);
}
}
}