]> git.tdb.fi Git - r2c2.git/blobdiff - source/designer/toolbar.cpp
Store routes in a map by name rather than a set
[r2c2.git] / source / designer / toolbar.cpp
index 12c8388acd718270641aa799e2f368827c2c6e29..fd3c11667a8a74ba1fb9b7d8574b2b7a83fc61fc 100644 (file)
@@ -68,33 +68,33 @@ void Toolbar::route_selected(unsigned index, const string &)
                designer.get_layout()->add_route(*route);
                designer.edit_route(*route);
 
-               const set<Route *> &routes = designer.get_layout()->get_routes();
+               const map<string, Route *> &routes = designer.get_layout()->get_routes();
                int selected = -1;
                unsigned n = 0;
-               for(set<Route *>::const_iterator i=routes.begin(); (selected<0 && i!=routes.end()); ++i, ++n)
-                       if(*i==route)
+               for(map<string, Route *>::const_iterator i=routes.begin(); (selected<0 && i!=routes.end()); ++i, ++n)
+                       if(i->second==route)
                                selected = n;
                drp_routes->set_selected_index(selected);
        }
        else
        {
-               const set<Route *> &routes = designer.get_layout()->get_routes();
-               set<Route *>::const_iterator i = routes.begin();
+               const map<string, Route *> &routes = designer.get_layout()->get_routes();
+               map<string, Route *>::const_iterator i = routes.begin();
                advance(i, index);
-               designer.edit_route(**i);
+               designer.edit_route(*i->second);
        }
 }
 
 void Toolbar::update_routes()
 {
        drp_routes->clear();
-       const set<Route *> &routes = designer.get_layout()->get_routes();
+       const map<string, Route *> &routes = designer.get_layout()->get_routes();
        int selected = -1;
        unsigned n = 0;
-       for(set<Route *>::const_iterator i=routes.begin(); i!=routes.end(); ++i, ++n)
+       for(map<string, Route *>::const_iterator i=routes.begin(); i!=routes.end(); ++i, ++n)
        {
-               drp_routes->append((*i)->get_name());
-               if(*i==designer.get_current_route())
+               drp_routes->append(i->second->get_name());
+               if(i->second==designer.get_current_route())
                        selected = n;
        }
        drp_routes->append("(new route)");