X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Fclockdialog.cpp;h=c348de2d7ccf6cbeea013bb2637c302500bd813f;hb=3ffe8b384fabeee1c3e636b83dd0006f3f5acfe1;hp=c156013861e0e817dfc6e8eda5e84f50544bb864;hpb=b3f8467442aac111e9a316db0dda67d37ae240b8;p=r2c2.git diff --git a/source/engineer/clockdialog.cpp b/source/engineer/clockdialog.cpp index c156013..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; @@ -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; +}