X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Froute.cpp;h=6cd58413d61ee562231b70e00c2ef44f3ec0e510;hb=707a611dae600333f3a9bd6421176f242fe49907;hp=cdbcf1dc4c8cc778f4183277dae9c6b65616f572;hpb=f409cd39a687900724d987c9db629cbff0dd49be;p=r2c2.git diff --git a/source/libmarklin/route.cpp b/source/libmarklin/route.cpp index cdbcf1d..6cd5841 100644 --- a/source/libmarklin/route.cpp +++ b/source/libmarklin/route.cpp @@ -119,17 +119,16 @@ list dijkstra(const Track &from, unsigned ep, const Pred &goal) return result; } -unsigned count = 0; - template Route *create_route(const Track &from, unsigned ep, const Pred &goal) { list tracks = dijkstra(from, ep, goal); - Route *route = new Route(from.get_layout(), format("-%d-", ++count)); + Route *route = new Route(from.get_layout()); for(list::iterator i=tracks.begin(); i!=tracks.end(); ++i) route->add_track(**i); + route->set_name("Pathfinder"); route->set_temporary(true); return route; @@ -140,9 +139,8 @@ Route *create_route(const Track &from, unsigned ep, const Pred &goal) namespace Marklin { -Route::Route(Layout &l, const string &n): +Route::Route(Layout &l): layout(l), - name(n), temporary(false) { layout.add_route(*this); @@ -154,6 +152,12 @@ Route::~Route() layout.remove_route(*this); } +void Route::set_name(const string &n) +{ + name = n; + signal_name_changed.emit(name); +} + void Route::set_temporary(bool t) { temporary = t; @@ -302,6 +306,7 @@ void Route::update_turnouts() void Route::save(list &st) const { + st.push_back((DataFile::Statement("name"), name)); for(map::const_iterator i=turnouts.begin(); i!=turnouts.end(); ++i) st.push_back((DataFile::Statement("turnout"), i->first, i->second)); } @@ -377,6 +382,7 @@ Route *Route::find(const Track &from, unsigned ep, const Route &to) Route::Loader::Loader(Route &r): DataFile::BasicLoader(r) { + add("name", &Route::name); add("turnout", &Loader::turnout); }