X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Froute.cpp;fp=source%2Flibr2c2%2Froute.cpp;h=685ad666404688275cfa87eda6f7a48a0e60c9b4;hb=e214fd389b9819eac0379cfb78e0f446e267b839;hp=80c61088eda68223be46299bac6621b289291d35;hpb=59bae8acd679127602cf35d22bcd37e316a5a056;p=r2c2.git diff --git a/source/libr2c2/route.cpp b/source/libr2c2/route.cpp index 80c6108..685ad66 100644 --- a/source/libr2c2/route.cpp +++ b/source/libr2c2/route.cpp @@ -147,7 +147,7 @@ Route::Route(Layout &l): temporary(false) { layout.add_route(*this); - layout.signal_track_removed.connect(sigc::mem_fun(this, &Route::track_removed)); + layout.signal_object_removed.connect(sigc::mem_fun(this, &Route::object_removed)); } Route::~Route() @@ -402,9 +402,10 @@ RouteValidityMask Route::check_validity(Track &trk) const return static_cast(result); } -void Route::track_removed(Track &t) +void Route::object_removed(Object &o) { - tracks.erase(&t); + if(Track *t = dynamic_cast(&o)) + tracks.erase(t); } Route *Route::find(const TrackIter &from, Track &to) @@ -437,7 +438,7 @@ Route::Loader::Loader(Route &r): void Route::Loader::finish() { - const set <racks = obj.layout.get_tracks(); + const set <racks = obj.layout.get_all(); for(set::const_iterator i=ltracks.begin(); i!=ltracks.end(); ++i) { unsigned tid = (*i)->get_turnout_id();