X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fdesigner.cpp;h=b0971c25271be9d65390ff08ca5841614e7c84b6;hb=651698847d5293cfb15b6fb23a394701388c0151;hp=9e99a1d99d4b20c7e91ebf9e6db49bb5d4232db4;hpb=dcfa1e9503b7e97b61396d7458f0b2e5896779cd;p=r2c2.git diff --git a/source/designer/designer.cpp b/source/designer/designer.cpp index 9e99a1d..b0971c2 100644 --- a/source/designer/designer.cpp +++ b/source/designer/designer.cpp @@ -25,6 +25,7 @@ Distributed under the GPL #include #include #include +#include "libmarklin/route.h" #include "libmarklin/tracktype.h" #include "designer.h" #include "input.h" @@ -165,7 +166,7 @@ void Designer::new_track() void Designer::set_turnout_id() { Track *track = selection.get_track(); - if(selection.size()==1 && track->get_type().get_n_paths()>1) + if(selection.size()==1 && track->get_type().is_turnout()) { InputDialog *input = new InputDialog(*this, "Turnout ID", lexical_cast(track->get_turnout_id())); input->signal_accept.connect(sigc::mem_fun(this, &Designer::turnout_id_accept)); @@ -179,7 +180,7 @@ void Designer::set_sensor_id() int id = -1; for(set::const_iterator i=tracks.begin(); i!=tracks.end(); ++i) { - if((*i)->get_type().get_n_paths()==1) + if(!(*i)->get_type().is_turnout()) ok = true; if(static_cast((*i)->get_sensor_id())!=id) { @@ -354,9 +355,8 @@ void Designer::button_press(int x, int y, unsigned btn, unsigned mod) Track3D *ctrack = pick_track(x, y); if(ctrack) { - Track *track = ctrack->get_track().copy(); + Track *track = new Track(*layout, ctrack->get_track().get_type()); track->set_position(ground); - layout->add_track(*track); selection.clear(); selection.add_track(track);