-rw-r--r-- | noncore/settings/netsystemtime/ntp.cpp | 60 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/ntpbase.ui | 327 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/settime.cpp | 12 |
3 files changed, 266 insertions, 133 deletions
diff --git a/noncore/settings/netsystemtime/ntp.cpp b/noncore/settings/netsystemtime/ntp.cpp index b2f192a..52fc6be 100644 --- a/noncore/settings/netsystemtime/ntp.cpp +++ b/noncore/settings/netsystemtime/ntp.cpp @@ -7,4 +7,5 @@ #include <qlineedit.h> #include <qspinbox.h> +#include <qmessagebox.h> #include <qmultilineedit.h> #include <opie/oprocess.h> @@ -27,6 +28,6 @@ Ntp::Ntp( QWidget* parent, const char* name, WFlags fl ) // _maxOffset = cfg.readNumEntry("maxOffset",5); // _minLookupDiff = cfg.readNumEntry("minLookupDiff",10); - SpinBoxMinDelay->setValue( cfg.readNumEntry("minLookupDiff",10) ); - SpinBoxMinDelay->setMinValue( 7 ); + SpinBoxMinLookupDelay->setValue( cfg.readNumEntry("minLookupDiff",60) ); + SpinBoxNtpDelay->setValue( cfg.readNumEntry("ntpRefreshFreq",60) ); LineEditNtpSrv->setText( cfg.readEntry("ntpServer", tr("time.fu-berlin.de")) ); ntpProcess = new OProcess( ); @@ -53,5 +54,6 @@ Ntp::~Ntp() cfg.setGroup("settings"); cfg.writeEntry("ntpServer", LineEditNtpSrv->text()); - cfg.writeEntry( "minLookupDiff", SpinBoxMinDelay->value() ); + cfg.writeEntry( "minLookupDiff", SpinBoxMinLookupDelay->value() ); + cfg.writeEntry( "ntpRefreshFreq", SpinBoxNtpDelay->value() ); } @@ -59,4 +61,22 @@ Ntp::~Ntp() void Ntp::slotRunNtp() { + Config cfg("ntp",Config::User); + cfg.setGroup("lookups"); + int lookupDiff = TimeConversion::toUTC(QDateTime::currentDateTime()) - cfg.readNumEntry("time",0); + + if ( lookupDiff < SpinBoxNtpDelay->value()*60 ) + { + switch ( + QMessageBox::warning(this, tr("Run ntp?"), + tr("You asked for a delay of ")+SpinBoxNtpDelay->text()+tr(" minutes, but only ")+ + QString::number(lookupDiff%60)+tr(" minutes elapsed since last loopup.")+ + "<br>"+tr("Rerun ntp?"), + QMessageBox::Ok,QMessageBox::Cancel) + ) { + case QMessageBox::Ok: break; + case QMessageBox::Cancel: return; + default: return; + } + } TextLabelStartTime->setText(QDateTime::currentDateTime().toString()); ntpProcess->clearArguments(); @@ -96,5 +116,6 @@ void Ntp::ntpFinished(OProcess*) int secsSinceLast = time - lastLookup; TextLabelNewTime->setText(QDateTime::currentDateTime().toString()); - if ( lastLookup > 0 && secsSinceLast > 60*24* SpinBoxMinDelay->value()) + TextLabelTimeShift->setText(QString::number(timeShift)+tr(" seconds")); + if ( lastLookup > 0 && secsSinceLast > 60* SpinBoxMinLookupDelay->value()) { lookupCount++; @@ -109,26 +130,4 @@ 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); -// 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() @@ -144,5 +143,4 @@ float Ntp::getTimeShift() qDebug("%s", _ntpOutput.latin1()); qDebug("diff = >%s<",diff.latin1()); - TextLabelTimeShift->setText(diff); return diff.toFloat(); } @@ -165,4 +163,6 @@ void Ntp::readLookups() TableLookups->setColumnWidth( 1, cw ); TableLookups->setColumnWidth( 2, cw ); + TableLookups->sortColumn(0, false, true ); + // TableLookups->setSorting( true ); for (int i=0; i < lookupCount; i++) { @@ -179,5 +179,5 @@ void Ntp::readLookups() } _shiftPerSec /= lookupCount+1; - TextLabelShift->setText(QString::number(_shiftPerSec)); + TextLabelShift->setText(QString::number(_shiftPerSec)+tr(" seconds")); } @@ -193,5 +193,5 @@ void Ntp::preditctTime() predictedTime = QDateTime::currentDateTime().addSecs(corr); TextLabelPredTime->setText(predictedTime.toString()); - TextLabelMainPredTime->setText(predictedTime.toString()); + TextLabelMainPredTime->setText(tr("Predicted time:")+"<br><b>"+predictedTime.toString()+"</b>"); } @@ -211,5 +211,5 @@ void Ntp::slotCheckNtp(int i) }else{ preditctTime(); - ButtonSetTime->setText( tr("Predict time") ); + ButtonSetTime->setText( tr("Set predicted time") ); connect( ButtonSetTime, SIGNAL(clicked()), SLOT(setPredictTime()) ); }; diff --git a/noncore/settings/netsystemtime/ntpbase.ui b/noncore/settings/netsystemtime/ntpbase.ui index e444065..8d32849 100644 --- a/noncore/settings/netsystemtime/ntpbase.ui +++ b/noncore/settings/netsystemtime/ntpbase.ui @@ -12,6 +12,6 @@ <x>0</x> <y>0</y> - <width>276</width> - <height>337</height> + <width>330</width> + <height>419</height> </rect> </property> @@ -33,5 +33,5 @@ <property stdset="1"> <name>spacing</name> - <number>1</number> + <number>2</number> </property> <widget row="0" column="0" > @@ -60,9 +60,9 @@ <property stdset="1"> <name>margin</name> - <number>3</number> + <number>2</number> </property> <property stdset="1"> <name>spacing</name> - <number>3</number> + <number>2</number> </property> <widget row="0" column="0" > @@ -96,9 +96,9 @@ <property stdset="1"> <name>margin</name> - <number>3</number> + <number>1</number> </property> <property stdset="1"> <name>spacing</name> - <number>3</number> + <number>2</number> </property> <widget row="1" column="0" > @@ -130,12 +130,15 @@ <name>layoutMargin</name> </property> + <property> + <name>layoutSpacing</name> + </property> <grid> <property stdset="1"> <name>margin</name> - <number>11</number> + <number>2</number> </property> <property stdset="1"> <name>spacing</name> - <number>6</number> + <number>2</number> </property> <widget row="0" column="0" > @@ -254,7 +257,17 @@ </property> <property stdset="1"> + <name>font</name> + <font> + <pointsize>7</pointsize> + </font> + </property> + <property stdset="1"> <name>wordWrap</name> <enum>WidgetWidth</enum> </property> + <property stdset="1"> + <name>text</name> + <string></string> + </property> </widget> </grid> @@ -383,9 +396,9 @@ <property stdset="1"> <name>margin</name> - <number>3</number> + <number>2</number> </property> <property stdset="1"> <name>spacing</name> - <number>3</number> + <number>2</number> </property> <widget row="0" column="0" > @@ -403,12 +416,18 @@ <enum>Raised</enum> </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> <grid> <property stdset="1"> <name>margin</name> - <number>11</number> + <number>3</number> </property> <property stdset="1"> <name>spacing</name> - <number>6</number> + <number>11</number> </property> <widget row="0" column="0" > @@ -427,105 +446,215 @@ <number>6</number> </property> - <spacer row="2" column="0" > + <widget row="0" column="0" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel7_2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Use</string> + </property> + </widget> + <widget row="0" column="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel2_2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>as</string> + </property> + </widget> + <widget row="1" column="0" rowspan="1" colspan="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel1_3</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>NTP server to get the time from the network.</string> + </property> + <property stdset="1"> + <name>alignment</name> + <set>WordBreak|AlignVCenter|AlignLeft</set> + </property> <property> + <name>wordwrap</name> + </property> + </widget> + <widget row="0" column="1" > + <class>QLineEdit</class> + <property stdset="1"> <name>name</name> - <cstring>Spacer2</cstring> + <cstring>LineEditNtpSrv</cstring> </property> + </widget> + </grid> + </widget> + <spacer row="3" column="0" > + <property> + <name>name</name> + <cstring>Spacer2</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Vertical</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget row="2" column="0" > + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout7</cstring> + </property> + <grid> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget row="0" column="0" > + <class>QLabel</class> <property stdset="1"> - <name>orientation</name> - <enum>Vertical</enum> + <name>name</name> + <cstring>TextLabel1_2</cstring> </property> <property stdset="1"> - <name>sizeType</name> - <enum>Expanding</enum> + <name>text</name> + <string>Insure a delay of</string> + </property> + </widget> + <widget row="0" column="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>minutes until</string> + </property> + </widget> + <widget row="1" column="0" rowspan="1" colspan="3" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel3_3</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>a new NTP lookup will be used to predict the time.</string> + </property> + <property stdset="1"> + <name>alignment</name> + <set>WordBreak|AlignVCenter|AlignLeft</set> </property> <property> - <name>sizeHint</name> - <size> - <width>20</width> - <height>20</height> - </size> + <name>wordwrap</name> </property> - </spacer> - <widget row="1" column="0" > - <class>QLayoutWidget</class> + </widget> + <widget row="0" column="1" > + <class>QSpinBox</class> <property stdset="1"> <name>name</name> - <cstring>Layout6</cstring> - </property> - <hbox> - <property stdset="1"> - <name>margin</name> - <number>0</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> - <widget> - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>TextLabel7_2</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>NTP Server:</string> - </property> - </widget> - <widget> - <class>QLineEdit</class> - <property stdset="1"> - <name>name</name> - <cstring>LineEditNtpSrv</cstring> - </property> - </widget> - </hbox> + <cstring>SpinBoxMinLookupDelay</cstring> + </property> + <property stdset="1"> + <name>maxValue</name> + <number>9999999</number> + </property> + <property stdset="1"> + <name>minValue</name> + <number>42</number> + </property> </widget> + </grid> + </widget> + <widget row="1" column="0" > + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout7_2</cstring> + </property> + <grid> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> <widget row="0" column="0" > - <class>QLayoutWidget</class> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel1_2_2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Wait for</string> + </property> + </widget> + <widget row="0" column="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel2_3</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>minutes until</string> + </property> + </widget> + <widget row="1" column="0" rowspan="1" colspan="3" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel3_3_2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>NTP syncronises the clock with the network</string> + </property> + <property stdset="1"> + <name>alignment</name> + <set>WordBreak|AlignVCenter|AlignLeft</set> + </property> + <property> + <name>wordwrap</name> + </property> + </widget> + <widget row="0" column="1" > + <class>QSpinBox</class> <property stdset="1"> <name>name</name> - <cstring>Layout5</cstring> - </property> - <hbox> - <property stdset="1"> - <name>margin</name> - <number>0</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> - <widget> - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>TextLabel1_2</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Min. delay:</string> - </property> - </widget> - <widget> - <class>QSpinBox</class> - <property stdset="1"> - <name>name</name> - <cstring>SpinBoxMinDelay</cstring> - </property> - </widget> - <widget> - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>TextLabel2</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>minutes</string> - </property> - </widget> - </hbox> + <cstring>SpinBoxNtpDelay</cstring> + </property> + <property stdset="1"> + <name>maxValue</name> + <number>9999999</number> + </property> + <property stdset="1"> + <name>minValue</name> + <number>0</number> + </property> </widget> </grid> diff --git a/noncore/settings/netsystemtime/settime.cpp b/noncore/settings/netsystemtime/settime.cpp index b456012..2398c08 100644 --- a/noncore/settings/netsystemtime/settime.cpp +++ b/noncore/settings/netsystemtime/settime.cpp @@ -262,4 +262,8 @@ void SetDateTime::setTime(QDateTime dt) ::settimeofday( &myTv, 0 ); 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; } @@ -268,8 +272,4 @@ void SetDateTime::updateSystem(int i) qDebug("SetDateTime::updateSystem(int %i)",i); writeSettings(); - // 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; // set the timezone for everyone else... @@ -292,4 +292,8 @@ void SetDateTime::updateSystem(int i) QCopEnvelope enableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" ); enableScreenSaver << -1 << -1 << -1; + // 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; } |