X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrackchain.cpp;h=bb4e77b6321a93998b3f1232f1f49ec00c2befde;hb=5116fff210cdc3f0fbdae13046cc60450aad5e8f;hp=3d9d66a915e78bc5ecf7b50da83ac7bf9a340922;hpb=7fac28fcb5afb17eff7c459474e4cf884a02719c;p=r2c2.git diff --git a/source/libr2c2/trackchain.cpp b/source/libr2c2/trackchain.cpp index 3d9d66a..bb4e77b 100644 --- a/source/libr2c2/trackchain.cpp +++ b/source/libr2c2/trackchain.cpp @@ -23,6 +23,7 @@ void TrackChain::add_track(Track &track) tracks.insert(&track); update_ends(track); on_track_added(track); + signal_track_added.emit(track); } void TrackChain::add_tracks(const TrackSet &trks) @@ -38,10 +39,12 @@ void TrackChain::add_tracks(const TrackSet &trks) for(TrackSet::iterator i=pending.begin(); i!=pending.end(); ++i) if((valid=check_validity(**i))==VALID) { - tracks.insert(*i); - update_ends(**i); - on_track_added(**i); + Track *t = *i; pending.erase(i); + tracks.insert(t); + update_ends(*t); + on_track_added(*t); + signal_track_added.emit(*t); break; } @@ -127,9 +130,12 @@ bool TrackChain::has_track(Track &t) const void TrackChain::object_removed(Object &obj) { if(Track *track = dynamic_cast(&obj)) + { tracks.erase(track); /* TODO If the track was in the middle of the chain, keep only the longest fragment */ + signal_track_removed.emit(*track); + } } } // namespace R2C2