X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fengineer%2Fuserinterface.cpp;h=aec54ad041331ef79ab44f0ba8090c74b9fa2db3;hb=d6213fa0f35a06182a7d3e88959c67ff019713b6;hp=95f064a9ce080181490fc1393258395e2c10db75;hpb=c0e076401ee76fd9a5a96ff919a8e7b4d058c51b;p=r2c2.git diff --git a/source/engineer/userinterface.cpp b/source/engineer/userinterface.cpp index 95f064a..aec54ad 100644 --- a/source/engineer/userinterface.cpp +++ b/source/engineer/userinterface.cpp @@ -40,7 +40,7 @@ UserInterface::UserInterface(Engineer &e, Graphics::Window &window, Input::Keybo UserInterface::~UserInterface() { while(!dyn_dialogs.empty()) - delete dyn_dialogs.front(); + delete *dyn_dialogs.begin(); delete root_arrangement; } @@ -52,19 +52,18 @@ void UserInterface::set_status(const string &text) void UserInterface::add_dynamic_dialog(DynamicDialog &dd) { - dyn_dialogs.push_back(&dd); + dyn_dialogs.insert(&dd); } void UserInterface::remove_dynamic_dialog(DynamicDialog &dd) { - dyn_dialogs.erase(remove(dyn_dialogs.begin(), dyn_dialogs.end(), &dd), dyn_dialogs.end()); + dyn_dialogs.erase(&dd); } void UserInterface::show_train(Train &train) { TrainDialog *dlg = new TrainDialog(engineer, train); root.add(*dlg); - dlg->autosize(); } void UserInterface::show_zone(Zone &zone) @@ -99,7 +98,7 @@ void UserInterface::tick() status_timeout = Time::TimeStamp(); } - for(list::iterator i=dyn_dialogs.begin(); i!=dyn_dialogs.end(); ++i) + for(set::iterator i=dyn_dialogs.begin(); i!=dyn_dialogs.end(); ++i) (*i)->update(); }