X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fzonebar.cpp;h=09f8f0ceab9f19919b7dfc0b53b8165fe5c0cbfe;hb=d2dfed1a38c5e8487532e9055fad464cf54efd83;hp=9f9fd0dd66690ae6ed37893df4d6dc1e893cfc78;hpb=ce29d0ccf89840c9581314301de0ea2b5b261c43;p=r2c2.git diff --git a/source/designer/zonebar.cpp b/source/designer/zonebar.cpp index 9f9fd0d..09f8f0c 100644 --- a/source/designer/zonebar.cpp +++ b/source/designer/zonebar.cpp @@ -40,20 +40,23 @@ Zonebar::Zonebar(Designer &d): 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 &zones = rlayout.get_all(); + for(set::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(&chain)) + { + zone->signal_name_changed.connect(sigc::mem_fun(this, &Zonebar::zone_renamed)); + update_groups(); + } } void Zonebar::zone_renamed(const string &, const string &, unsigned) @@ -114,9 +117,9 @@ void Zonebar::delete_zone_clicked() void Zonebar::update_groups() { - const Layout::ZoneSet &zones = designer.get_layout().get_zones(); + const set &zones = designer.get_layout().get_all(); set groups; - for(Layout::ZoneSet::const_iterator i=zones.begin(); i!=zones.end(); ++i) + for(set::const_iterator i=zones.begin(); i!=zones.end(); ++i) groups.insert((*i)->get_group()); Zone *cur = designer.get_current_zone();