+void
+RouteProcessorSelection::add (AxisView* r, bool with_groups)
+{
+ if (!shp.session()) {
+ return;
+ }
+
+ std::list<AxisView*> avl;
+ if (with_groups) {
+ avl= add_grouped_tracks (r);
+ }
+ avl.push_back (r);
+
+ PresentationInfo::ChangeSuspender cs;
+ for (std::list<AxisView*>::const_iterator i = avl.begin (); i != avl.end (); ++i) {
+ if (axes.insert (*i).second) {
+ shp.session()->selection().add ((*i)->stripable(), boost::shared_ptr<AutomationControl>());
+ MixerStrip* ms = dynamic_cast<MixerStrip*> (*i);
+ if (ms) {
+ ms->CatchDeletion.connect (*this, invalidator (*this), boost::bind (&RouteProcessorSelection::remove, this, _1, false), gui_context());
+ }