]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/clockdialog.cpp
Don't crash if a train has no router
[r2c2.git] / source / engineer / clockdialog.cpp
index c156013861e0e817dfc6e8eda5e84f50544bb864..c348de2d7ccf6cbeea013bb2637c302500bd813f 100644 (file)
@@ -10,6 +10,7 @@ using namespace Msp;
 using namespace R2C2;
 
 ClockDialog::ClockDialog(Engineer &engineer):
+       DynamicDialog(engineer.get_user_interface()),
        clock(engineer.get_layout().get_clock())
 {
        Loader::WidgetMap widgets;
@@ -34,10 +35,12 @@ ClockDialog::ClockDialog(Engineer &engineer):
        stack.arrange(*get_item(widgets, "placeholder"));
        add(*(new ClockWidget(clock)));
 
-       clock.signal_minute.connect(sigc::mem_fun(this, &ClockDialog::minute_changed));
+       clock.signal_minute.connect(sigc::mem_fun(this, &ClockDialog::update_time));
+       clock.signal_discontinuity.connect(sigc::mem_fun(this, &ClockDialog::update_time));
+       update_time();
 }
 
-void ClockDialog::minute_changed()
+void ClockDialog::update_time()
 {
        Time::TimeDelta time = clock.get_current_time();
        unsigned hour = time/Time::hour;
@@ -76,3 +79,11 @@ void ClockDialog::set_time()
        {
        }
 }
+
+bool ClockDialog::save_state(DataFile::Statement &st) const
+{
+       st.keyword = "clockdialog";
+       save_position(st.sub);
+
+       return true;
+}