X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Fengineer.cpp;h=be4c050b9ccf1fee465b2d222aab7115354097da;hb=7839b7c3d782abb5c98a24d51cae109407068c02;hp=581a301d8f194df79574671c15e95d165e4714c0;hpb=3df8cb5c78fbb0b919bcb79677c6c788b8028482;p=r2c2.git diff --git a/source/engineer/engineer.cpp b/source/engineer/engineer.cpp index 581a301..be4c050 100644 --- a/source/engineer/engineer.cpp +++ b/source/engineer/engineer.cpp @@ -20,6 +20,7 @@ Distributed under the GPL #include #include #include +#include "libmarklin/except.h" #include "libmarklin/tracktype.h" #include "engineer.h" #include "mainpanel.h" @@ -99,7 +100,8 @@ Engineer::Engineer(int argc, char **argv): Engineer::~Engineer() { - trfc_mgr->save("engineer.state"); + if(!simulate) + trfc_mgr->save("engineer.state"); delete trfc_mgr; } @@ -352,7 +354,15 @@ void Engineer::button_press(int x, int y, unsigned btn, unsigned) if(unsigned tid=track->get_track().get_turnout_id()) { Turnout &turnout=control.get_turnout(tid); - turnout.set_route((turnout.get_route()+1)%track->get_track().get_type().get_n_routes()); + try + { + turnout.set_route((turnout.get_route()+1)%track->get_track().get_type().get_n_routes()); + main_panel->set_status_text(format("Turnout %d switched", turnout.get_address())); + } + catch(const TurnoutBusy &e) + { + main_panel->set_status_text(e.what()); + } } else if(simulate) {