-rw-r--r-- | noncore/settings/netsystemtime/ntp.cpp | 50 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/ntp.h | 4 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/settime.cpp | 20 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/settime.h | 1 |
4 files changed, 43 insertions, 32 deletions
diff --git a/noncore/settings/netsystemtime/ntp.cpp b/noncore/settings/netsystemtime/ntp.cpp index ddb1372..87b20ec 100644 --- a/noncore/settings/netsystemtime/ntp.cpp +++ b/noncore/settings/netsystemtime/ntp.cpp @@ -32,8 +32,8 @@ Ntp::Ntp( QWidget* parent, const char* name, WFlags fl ) this, SLOT(ntpFinished(OProcess*))); connect(runNtp, SIGNAL(clicked()), this, SLOT(slotRunNtp())); connect(PushButtonPredict, SIGNAL(clicked()), this, SLOT(preditctTime())); - _nextCorrection = new QTimer( this ); - connect( _nextCorrection, SIGNAL(timeout()), SLOT(correctClock()) ); +// _nextCorrection = new QTimer( this ); +// connect( _nextCorrection, SIGNAL(timeout()), SLOT(correctClock()) ); slotRunNtp(); readLookups(); } @@ -83,6 +83,8 @@ void Ntp::ntpFinished(OProcess*) int lookupCount = cfg.readNumEntry("count",-1); int time = TimeConversion::toUTC( QDateTime::currentDateTime() ); cfg.writeEntry("time", time); + cfg.setGroup("correction"); + cfg.writeEntry("time", time); float timeShift = getTimeShift(); if (timeShift == 0.0) return; @@ -101,24 +103,28 @@ void Ntp::ntpFinished(OProcess*) } } -void Ntp::correctClock() -{ - qDebug("current time: %s",QDateTime::currentDateTime().toString().latin1()); - Config cfg("ntp",Config::User); - cfg.setGroup("correction"); - int lastTime = cfg.readNumEntry("time",0); - int now = TimeConversion::toUTC( QDateTime::currentDateTime() ); - int corr = int((now - lastTime) * _shiftPerSec); - struct timeval myTv; - myTv.tv_sec = TimeConversion::toUTC( QDateTime::currentDateTime().addSecs(corr) ); - myTv.tv_usec = 0; - - if ( myTv.tv_sec != -1 ) - ::settimeofday( &myTv, 0 ); - Global::writeHWClock(); - cfg.writeEntry("time",now); - qDebug("current time: %s",QDateTime::currentDateTime().toString().latin1()); -} +//void Ntp::correctClock() +//{ +// qDebug("current time: %s",QDateTime::currentDateTime().toString().latin1()); +// Config cfg("ntp",Config::User); +// cfg.setGroup("correction"); +// int lastTime = cfg.readNumEntry("time",0); +// if ( lastTime == 0 ) +// { +// return; +// } +// int now = TimeConversion::toUTC( QDateTime::currentDateTime() ); +// int corr = int((now - lastTime) * _shiftPerSec); +// struct timeval myTv; +// myTv.tv_sec = TimeConversion::toUTC( QDateTime::currentDateTime().addSecs(corr) ); +// myTv.tv_usec = 0; +// +// if ( myTv.tv_sec != -1 ) +// ::settimeofday( &myTv, 0 ); +// Global::writeHWClock(); +// cfg.writeEntry("time",now); +// qDebug("current time: %s",QDateTime::currentDateTime().toString().latin1()); +//} float Ntp::getTimeShift() { @@ -179,5 +185,7 @@ void Ntp::preditctTime() setenv( "TZ", tz->currentZone(), 1 ); int now = TimeConversion::toUTC( QDateTime::currentDateTime() ); int corr = int((now - lastTime) * _shiftPerSec); - TextLabelPredTime->setText(QDateTime::currentDateTime().addSecs(corr).toString()); + QDateTime dt = QDateTime::currentDateTime().addSecs(corr); + setTime(dt); + TextLabelPredTime->setText(dt.toString()); } diff --git a/noncore/settings/netsystemtime/ntp.h b/noncore/settings/netsystemtime/ntp.h index fc233bf..d2e238d 100644 --- a/noncore/settings/netsystemtime/ntp.h +++ b/noncore/settings/netsystemtime/ntp.h @@ -25,7 +25,7 @@ private: QString _ntpOutput; int _maxOffset; float _shiftPerSec; - QTimer *_nextCorrection; +// QTimer *_nextCorrection; int _minLookupDiff; float getTimeShift(); @@ -34,7 +34,7 @@ private slots: void slotRunNtp(); void getNtpOutput(OProcess *proc, char *buffer, int buflen); void ntpFinished(OProcess*); - void correctClock(); +// void correctClock(); void preditctTime(); }; diff --git a/noncore/settings/netsystemtime/settime.cpp b/noncore/settings/netsystemtime/settime.cpp index dac5bd4..01268c9 100644 --- a/noncore/settings/netsystemtime/settime.cpp +++ b/noncore/settings/netsystemtime/settime.cpp @@ -208,10 +208,6 @@ void SetDateTime::accept() void SetDateTime::commitTime() { - Config cfg("ntp",Config::User); - cfg.setGroup("lookups"); - int time = TimeConversion::toUTC( QDateTime::currentDateTime() ); - cfg.writeEntry("time", time); tz->setFocus(); // really turn off the screensaver before doing anything { @@ -227,9 +223,17 @@ void SetDateTime::commitTime() // now set the time... QDateTime dt( dateButton->date(), timeButton->time() ); - if ( dt.isValid() ) { + if ( dt.isValid() ) setTime(dt); +} + +void SetDateTime::setTime(QDateTime dt) +{ + Config cfg("ntp",Config::User); + cfg.setGroup("correction"); + int t = TimeConversion::toUTC(dt); struct timeval myTv; - myTv.tv_sec = TimeConversion::toUTC( dt ); + myTv.tv_sec = t; + cfg.writeEntry("time", t ); myTv.tv_usec = 0; if ( myTv.tv_sec != -1 ) @@ -239,9 +243,7 @@ void SetDateTime::commitTime() // 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; - } else { - qWarning( "Invalid date/time" ); - } + // set the timezone for everyone else... QCopEnvelope setTimeZone( "QPE/System", "timeChange(QString)" ); setTimeZone << tz->currentZone(); diff --git a/noncore/settings/netsystemtime/settime.h b/noncore/settings/netsystemtime/settime.h index 053d17a..729bf4b 100644 --- a/noncore/settings/netsystemtime/settime.h +++ b/noncore/settings/netsystemtime/settime.h @@ -76,6 +76,7 @@ protected slots: protected: void commitTime(); + void setTime(QDateTime dt); virtual void accept(); virtual void done(int); |