btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::add_selection_to_zone));
Layout &rlayout = designer.get_layout();
- rlayout.signal_zone_added.connect(sigc::mem_fun(this, &Zonebar::zone_added));
- rlayout.signal_zone_removed.connect(sigc::hide(sigc::mem_fun(this, &Zonebar::update_groups)));
+ rlayout.signal_track_chain_added.connect(sigc::mem_fun(this, &Zonebar::track_chain_added));
+ rlayout.signal_track_chain_removed.connect(sigc::hide(sigc::mem_fun(this, &Zonebar::update_groups)));
- const Layout::ZoneSet &zones = rlayout.get_zones();
- for(Layout::ZoneSet::const_iterator i=zones.begin(); i!=zones.end(); ++i)
+ const set<Zone *> &zones = rlayout.get_all<Zone>();
+ for(set<Zone *>::const_iterator i=zones.begin(); i!=zones.end(); ++i)
(*i)->signal_name_changed.connect(sigc::mem_fun(this, &Zonebar::zone_renamed));
update_groups();
}
-void Zonebar::zone_added(Zone &zone)
+void Zonebar::track_chain_added(TrackChain &chain)
{
- zone.signal_name_changed.connect(sigc::mem_fun(this, &Zonebar::zone_renamed));
- update_groups();
+ if(Zone *zone = dynamic_cast<Zone *>(&chain))
+ {
+ zone->signal_name_changed.connect(sigc::mem_fun(this, &Zonebar::zone_renamed));
+ update_groups();
+ }
}
void Zonebar::zone_renamed(const string &, const string &, unsigned)
void Zonebar::update_groups()
{
- const Layout::ZoneSet &zones = designer.get_layout().get_zones();
+ const set<Zone *> &zones = designer.get_layout().get_all<Zone>();
set<string> groups;
- for(Layout::ZoneSet::const_iterator i=zones.begin(); i!=zones.end(); ++i)
+ for(set<Zone *>::const_iterator i=zones.begin(); i!=zones.end(); ++i)
groups.insert((*i)->get_group());
Zone *cur = designer.get_current_zone();