author | tille <tille> | 2002-07-04 13:52:07 (UTC) |
---|---|---|
committer | tille <tille> | 2002-07-04 13:52:07 (UTC) |
commit | a53847b7d27938551bb4f1c8891e7bacc93143ee (patch) (side-by-side diff) | |
tree | 5910685b0156b089af8a117d261ea02d05a44b95 | |
parent | 61b99edb481444aea41fa47853a5d60c78bfaa3c (diff) | |
download | opie-a53847b7d27938551bb4f1c8891e7bacc93143ee.zip opie-a53847b7d27938551bb4f1c8891e7bacc93143ee.tar.gz opie-a53847b7d27938551bb4f1c8891e7bacc93143ee.tar.bz2 |
aply ntp on set not on quit -- hopefully
-rw-r--r-- | noncore/settings/netsystemtime/ntp.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/noncore/settings/netsystemtime/ntp.cpp b/noncore/settings/netsystemtime/ntp.cpp index 40b5531..0b13b6d 100644 --- a/noncore/settings/netsystemtime/ntp.cpp +++ b/noncore/settings/netsystemtime/ntp.cpp @@ -4,32 +4,33 @@ #include <qtimer.h> #include <qtable.h> #include <qlabel.h> #include <qsocket.h> #include <qlineedit.h> #include <qspinbox.h> #include <qmessagebox.h> #include <qmultilineedit.h> #include <opie/oprocess.h> #include <qpe/qpeapplication.h> #include <qpe/config.h> #include <qpe/global.h> #include <qpe/timeconversion.h> #include <qpe/tzselect.h> #include <qpe/timestring.h> #include <qpe/qpedialog.h> +#include <qpe/datebookdb.h> #include <sys/time.h> #include <time.h> #include <stdlib.h> Ntp::Ntp( QWidget* parent, const char* name, WFlags fl ) : SetDateTime( parent, name, fl ) { Config ntpSrvs(QPEApplication::qpeDir()+"etc/ntpservers",Config::File); ntpSrvs.setGroup("servers"); int srvCount = ntpSrvs.readNumEntry("count", 0 ); for (int i = 0; i < srvCount; i++) { ntpSrvs.setGroup(QString::number(i)); ComboNtpSrv->insertItem( ntpSrvs.readEntry("name") ); } @@ -131,32 +132,39 @@ void Ntp::getNtpOutput(OProcess *proc, char *buffer, int buflen) if (lineStr!=lineStrOld) { ntpOutPut(lineStr); _ntpOutput += lineStr; } lineStrOld = lineStr; } void Ntp::ntpFinished(OProcess *p) { qDebug("p->exitStatus() %i",p->exitStatus()); if (p->exitStatus()!=0 || !p->normalExit()) { slotProbeNtpServer(); return; } + + Global::writeHWClock(); + // since time has changed quickly load in the datebookdb + // to allow the alarm server to get a better grip on itself + // (example re-trigger alarms for when we travel back in time) + DateBookDB db; + Config cfg("ntp",Config::User); cfg.setGroup("lookups"); int lastLookup = cfg.readNumEntry("time",0); int lookupCount = cfg.readNumEntry("count",0); bool lastNtp = cfg.readBoolEntry("lastNtp",false); int time = TimeConversion::toUTC( QDateTime::currentDateTime() ); cfg.writeEntry("time", time); float timeShift = getTimeShift(); if (timeShift == 0.0) return; int secsSinceLast = time - lastLookup; TextLabelNewTime->setText(QDateTime::currentDateTime().toString()); TextLabelTimeShift->setText(QString::number(timeShift)+tr(" seconds")); if ( lastNtp && lastLookup > 0 && secsSinceLast > 60* SpinBoxMinLookupDelay->value()) { cfg.setGroup("lookup_"+QString::number(lookupCount)); |