- if(index==drp_routes->get_n_items()-1)
- {
- Layout &layout = *designer.get_layout();
- Route *route = new Route(layout, format("Route %d", layout.get_routes().size()+1));
- designer.get_layout()->add_route(*route);
- designer.edit_route(*route);
-
- const map<string, Route *> &routes = designer.get_layout()->get_routes();
- int selected = -1;
- unsigned n = 0;
- 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 map<string, Route *> &routes = designer.get_layout()->get_routes();
- map<string, Route *>::const_iterator i = routes.begin();
- advance(i, index);
- designer.edit_route(*i->second);
- }