X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Fclockdialog.cpp;h=c348de2d7ccf6cbeea013bb2637c302500bd813f;hb=a9bbf8d37a2f94a720897fe4f0ab06a016779c69;hp=18d5b9334da54ef508810d0b1ade68d97b827469;hpb=f139a89c01dfc6580ecd1a5399e146ce45f865a4;p=r2c2.git diff --git a/source/engineer/clockdialog.cpp b/source/engineer/clockdialog.cpp index 18d5b93..c348de2 100644 --- a/source/engineer/clockdialog.cpp +++ b/source/engineer/clockdialog.cpp @@ -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; @@ -18,6 +19,7 @@ ClockDialog::ClockDialog(Engineer &engineer): GLtk::Button *button = dynamic_cast(get_item(widgets, "btn_rate")); button->signal_clicked.connect(sigc::mem_fun(this, &ClockDialog::set_rate)); ent_rate = dynamic_cast(get_item(widgets, "ent_rate")); + ent_rate->set_text(lexical_cast(clock.get_rate())); button = dynamic_cast(get_item(widgets, "btn_stop")); button->signal_clicked.connect(sigc::mem_fun(this, &ClockDialog::stop_clicked)); @@ -33,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; @@ -75,3 +79,11 @@ void ClockDialog::set_time() { } } + +bool ClockDialog::save_state(DataFile::Statement &st) const +{ + st.keyword = "clockdialog"; + save_position(st.sub); + + return true; +}