]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/clockdialog.cpp
Keep UI better in sync with the clock
[r2c2.git] / source / engineer / clockdialog.cpp
index 18d5b9334da54ef508810d0b1ade68d97b827469..ba73a5ec0fbc4ea8441134fae83080e4318c2a0e 100644 (file)
@@ -18,6 +18,7 @@ ClockDialog::ClockDialog(Engineer &engineer):
        GLtk::Button *button = dynamic_cast<GLtk::Button *>(get_item(widgets, "btn_rate"));
        button->signal_clicked.connect(sigc::mem_fun(this, &ClockDialog::set_rate));
        ent_rate = dynamic_cast<GLtk::Entry *>(get_item(widgets, "ent_rate"));
+       ent_rate->set_text(lexical_cast<string>(clock.get_rate()));
 
        button = dynamic_cast<GLtk::Button *>(get_item(widgets, "btn_stop"));
        button->signal_clicked.connect(sigc::mem_fun(this, &ClockDialog::stop_clicked));
@@ -33,10 +34,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;