summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/netsystemtime/ntp.cpp55
-rw-r--r--noncore/settings/netsystemtime/ntp.h4
2 files changed, 40 insertions, 19 deletions
diff --git a/noncore/settings/netsystemtime/ntp.cpp b/noncore/settings/netsystemtime/ntp.cpp
index 6e74e32..c7e3b52 100644
--- a/noncore/settings/netsystemtime/ntp.cpp
+++ b/noncore/settings/netsystemtime/ntp.cpp
@@ -9,145 +9,166 @@
9#include <qspinbox.h> 9#include <qspinbox.h>
10#include <qcheckbox.h> 10#include <qcheckbox.h>
11#include <qtabwidget.h> 11#include <qtabwidget.h>
12#include <qlayout.h> 12#include <qlayout.h>
13#include <qmessagebox.h> 13#include <qmessagebox.h>
14#include <qmultilineedit.h> 14#include <qmultilineedit.h>
15#include <opie/oprocess.h> 15#include <opie/oprocess.h>
16#include <qpe/qpeapplication.h> 16#include <qpe/qpeapplication.h>
17#include <qpe/config.h> 17#include <qpe/config.h>
18#include <qpe/global.h> 18#include <qpe/global.h>
19#include <qpe/timeconversion.h> 19#include <qpe/timeconversion.h>
20#include <qpe/tzselect.h> 20#include <qpe/tzselect.h>
21#include <qpe/timestring.h> 21#include <qpe/timestring.h>
22#include <qpe/qpedialog.h> 22#include <qpe/qpedialog.h>
23#include <qpe/datebookdb.h> 23#include <qpe/datebookdb.h>
24#include <qpe/qcopenvelope_qws.h> 24#include <qpe/qcopenvelope_qws.h>
25#include <sys/time.h> 25#include <sys/time.h>
26#include <time.h> 26#include <time.h>
27#include <stdlib.h> 27#include <stdlib.h>
28 28
29 29
30Ntp::Ntp( QWidget* parent, const char* name, WFlags fl ) 30Ntp::Ntp( QWidget* parent, const char* name, WFlags fl )
31 : SetDateTime( parent, name, fl ) 31 : SetDateTime( parent, name, fl )
32{ 32{
33 _interactive = false;
33 Config ntpSrvs(QPEApplication::qpeDir()+"etc/ntpservers",Config::File); 34 Config ntpSrvs(QPEApplication::qpeDir()+"etc/ntpservers",Config::File);
34 ntpSrvs.setGroup("servers"); 35 ntpSrvs.setGroup("servers");
35 int srvCount = ntpSrvs.readNumEntry("count", 0 ); 36 int srvCount = ntpSrvs.readNumEntry("count", 0 );
36 for (int i = 0; i < srvCount; i++) 37 for (int i = 0; i < srvCount; i++)
37 { 38 {
38 ntpSrvs.setGroup(QString::number(i)); 39 ntpSrvs.setGroup(QString::number(i));
39 ComboNtpSrv->insertItem( ntpSrvs.readEntry("name") ); 40 ComboNtpSrv->insertItem( ntpSrvs.readEntry("name") );
40 } 41 }
41 if ( srvCount==0 ) ComboNtpSrv->insertItem(tr("time.fu-berlin.de")); 42 if ( srvCount==0 ) ComboNtpSrv->insertItem(tr("time.fu-berlin.de"));
42 43
43 Config cfg("ntp",Config::User); 44 Config cfg("ntp",Config::User);
44 cfg.setGroup("settings"); 45 cfg.setGroup("settings");
45 SpinBoxMinLookupDelay->setValue( cfg.readNumEntry("minLookupDiff",720) ); 46 SpinBoxMinLookupDelay->setValue( cfg.readNumEntry("minLookupDiff",720) );
46 SpinBoxNtpDelay->setValue( cfg.readNumEntry("ntpRefreshFreq",1440) ); 47 SpinBoxNtpDelay->setValue( cfg.readNumEntry("ntpRefreshFreq",1440) );
47 ComboNtpSrv->setCurrentItem( cfg.readNumEntry("ntpServer", 0) ); 48 ComboNtpSrv->setCurrentItem( cfg.readNumEntry("ntpServer", 0) );
48 49
49 //make tab order 50 //make tab order
50 51
51 TabWidgetMain->removePage( tabMain ); 52 TabWidgetMain->removePage( tabMain );
52 TabWidgetMain->removePage( tabManualSetTime ); 53 TabWidgetMain->removePage( tabManualSetTime );
53 TabWidgetMain->removePage( TabSettings ); 54 TabWidgetMain->removePage( TabSettings );
54 TabWidgetMain->removePage( tabPredict ); 55 TabWidgetMain->removePage( tabPredict );
55 TabWidgetMain->removePage( tabNtp ); 56 TabWidgetMain->removePage( tabNtp );
56 57
57 TabWidgetMain->insertTab( tabMain, tr( "Main" ) ); 58 TabWidgetMain->insertTab( tabMain, tr( "Main" ) );
58 TabWidgetMain->insertTab( tabManualSetTime, tr( "Manual" ) ); 59 TabWidgetMain->insertTab( tabManualSetTime, tr( "Manual" ) );
59 TabWidgetMain->insertTab( TabSettings, tr( "Settings" ) ); 60 TabWidgetMain->insertTab( TabSettings, tr( "Settings" ) );
60 TabWidgetMain->insertTab( tabPredict, tr( "Predict" ) ); 61 TabWidgetMain->insertTab( tabPredict, tr( "Predict" ) );
61 TabWidgetMain->insertTab( tabNtp, tr( "NTP" ) ); 62 TabWidgetMain->insertTab( tabNtp, tr( "NTP" ) );
62 NtpBaseLayout->addWidget( TabWidgetMain, 0, 0 ); 63 NtpBaseLayout->addWidget( TabWidgetMain, 0, 0 );
63 64
64 65
65 66
66 bool advMode = cfg.readBoolEntry("advancedFeatures", false ); 67 bool advMode = cfg.readBoolEntry("advancedFeatures", false );
67 showAdvancedFeatures(advMode); 68 showAdvancedFeatures(advMode);
68 CheckBoxAdvSettings->setChecked( advMode ); 69 CheckBoxAdvSettings->setChecked( advMode );
69 connect( CheckBoxAdvSettings, SIGNAL( toggled( bool ) ), 70 connect( CheckBoxAdvSettings, SIGNAL( toggled( bool ) ),
70 SLOT( showAdvancedFeatures( bool ) ) ); 71 SLOT( showAdvancedFeatures( bool ) ) );
71 72
72 makeChannel(); 73 makeChannel();
73 74
74 ntpTimer = new QTimer(this); 75 ntpTimer = new QTimer(this);
75 76
76 ntpProcess = new OProcess( ); 77 ntpProcess = new OProcess( );
77 connect( SpinBoxNtpDelay, SIGNAL( valueChanged(int) ), 78 connect( SpinBoxNtpDelay, SIGNAL( valueChanged(int) ),
78 SLOT(slotNtpDelayChanged(int)) ); 79 SLOT(slotNtpDelayChanged(int)) );
79 80
80 ntpSock = new QSocket( this ); 81 ntpSock = new QSocket( this );
81 connect( ntpSock, SIGNAL( error(int) ), 82 connect( ntpSock, SIGNAL( error(int) ),SLOT(slotCheckNtp(int)) );
82 SLOT(slotCheckNtp(int)) );
83 slotProbeNtpServer(); 83 slotProbeNtpServer();
84 84
85 connect ( ntpProcess, SIGNAL(receivedStdout(OProcess*,char*,int)), 85 connect ( ntpProcess, SIGNAL(receivedStdout(OProcess*,char*,int)),
86 this, SLOT(getNtpOutput(OProcess*,char*,int))); 86 this, SLOT(getNtpOutput(OProcess*,char*,int)));
87 connect ( ntpProcess, SIGNAL(processExited(OProcess*)), 87 connect ( ntpProcess, SIGNAL(processExited(OProcess*)),
88 this, SLOT(ntpFinished(OProcess*))); 88 this, SLOT(ntpFinished(OProcess*)));
89 connect(runNtp, SIGNAL(clicked()), this, SLOT(slotRunNtp())); 89 connect(runNtp, SIGNAL(clicked()), this, SLOT(slotButtonRunNtp()));
90 connect(PushButtonPredict, SIGNAL(clicked()), this, SLOT(preditctTime())); 90 connect(PushButtonPredict, SIGNAL(clicked()), this, SLOT(preditctTime()));
91 connect(PushButtonSetPredTime, SIGNAL(clicked()), this, SLOT(setPredictTime())); 91 connect(PushButtonSetPredTime, SIGNAL(clicked()), this, SLOT(setPredictTime()));
92 slotCheckNtp(-1); 92 slotCheckNtp(-1);
93 readLookups(); 93 readLookups();
94} 94}
95 95
96Ntp::~Ntp() 96Ntp::~Ntp()
97{ 97{
98 delete ntpProcess; 98 delete ntpProcess;
99 Config ntpSrvs("/etc/ntpservers",Config::File);
100 ntpSrvs.setGroup("servers");
101 int srvCount = ComboNtpSrv->count(); 99 int srvCount = ComboNtpSrv->count();
102 ntpSrvs.writeEntry("count", srvCount); 100 bool serversChanged = true;
101 QString edit = ComboNtpSrv->currentText();
103 for (int i = 0; i < srvCount; i++){ 102 for (int i = 0; i < srvCount; i++){
104 ntpSrvs.setGroup(QString::number(i)); 103 if ( edit == ComboNtpSrv->text(i)) serversChanged = false;
105 ntpSrvs.writeEntry( "name", ComboNtpSrv->text(i) ); 104 }
105 if (serversChanged){
106 Config ntpSrvs("/etc/ntpservers",Config::File);
107 ntpSrvs.setGroup("servers");
108 ntpSrvs.writeEntry("count", srvCount);
109 for (int i = 0; i < srvCount; i++){
110 qDebug("ntpSrvs[%i/%i]=%s",i,srvCount,ComboNtpSrv->text(i).latin1());
111 ntpSrvs.setGroup(QString::number(i));
112 ntpSrvs.writeEntry( "name", ComboNtpSrv->text(i) );
113 }
106 } 114 }
107 Config cfg("ntp",Config::User); 115 Config cfg("ntp",Config::User);
108 cfg.setGroup("settings"); 116 cfg.setGroup("settings");
109 cfg.writeEntry("ntpServer", ComboNtpSrv->currentItem()); 117 cfg.writeEntry("ntpServer", ComboNtpSrv->currentItem());
110 cfg.writeEntry( "minLookupDiff", SpinBoxMinLookupDelay->value() ); 118 cfg.writeEntry( "minLookupDiff", SpinBoxMinLookupDelay->value() );
111 cfg.writeEntry( "ntpRefreshFreq", SpinBoxNtpDelay->value() ); 119 cfg.writeEntry( "ntpRefreshFreq", SpinBoxNtpDelay->value() );
112 cfg.writeEntry( "advancedFeatures", CheckBoxAdvSettings->isChecked() ); 120 cfg.writeEntry( "advancedFeatures", CheckBoxAdvSettings->isChecked() );
113} 121}
114 122
115bool Ntp::ntpDelayElapsed() 123bool Ntp::ntpDelayElapsed()
116{ 124{
117 Config cfg("ntp",Config::User); 125 Config cfg("ntp",Config::User);
118 cfg.setGroup("lookups"); 126 cfg.setGroup("lookups");
119 _lookupDiff = TimeConversion::toUTC(QDateTime::currentDateTime()) - cfg.readNumEntry("time",0); 127 _lookupDiff = TimeConversion::toUTC(QDateTime::currentDateTime()) - cfg.readNumEntry("time",0);
120 if (_lookupDiff < 0) return true; 128 if (_lookupDiff < 0) return true;
121 int i =_lookupDiff - (SpinBoxNtpDelay->value()*60); 129 int i =_lookupDiff - (SpinBoxNtpDelay->value()*60);
122 return i > -60; 130 return i > -60;
123} 131}
124 132
125QString Ntp::getNtpServer() 133QString Ntp::getNtpServer()
126{ 134{
127 return ComboNtpSrv->currentText(); 135 return ComboNtpSrv->currentText();
128} 136}
129 137
138void Ntp::slotButtonRunNtp()
139{
140 _interactive = true;
141 slotRunNtp();
142}
143
144void Ntp::slotTimerRunNtp()
145{
146 _interactive = false;
147 slotRunNtp();
148}
149
150
130void Ntp::slotRunNtp() 151void Ntp::slotRunNtp()
131{ 152{
132 if ( !ntpDelayElapsed() && CheckBoxAdvSettings->isChecked() ) 153 if ( !ntpDelayElapsed() && CheckBoxAdvSettings->isChecked() )
133 { 154 {
134 switch ( 155 switch (
135 QMessageBox::warning(this, tr("Run NTP?"), 156 QMessageBox::warning(this, tr("Run NTP?"),
136 tr("You asked for a delay of ")+SpinBoxNtpDelay->text()+tr(" minutes, but only ")+ 157 tr("You asked for a delay of ")+SpinBoxNtpDelay->text()+tr(" minutes, but only ")+
137 QString::number(_lookupDiff/60)+tr(" minutes elapsed since last lookup.")+ 158 QString::number(_lookupDiff/60)+tr(" minutes elapsed since last lookup.")+
138 "<br>"+tr("Rerun NTP?"), 159 "<br>"+tr("Rerun NTP?"),
139 QMessageBox::Ok,QMessageBox::Cancel) 160 QMessageBox::Ok,QMessageBox::Cancel)
140 ) { 161 ) {
141 case QMessageBox::Ok: break; 162 case QMessageBox::Ok: break;
142 case QMessageBox::Cancel: return; 163 case QMessageBox::Cancel: return;
143 default: return; 164 default: return;
144 } 165 }
145 } 166 }
146 TextLabelStartTime->setText(QDateTime::currentDateTime().toString()); 167 TextLabelStartTime->setText(QDateTime::currentDateTime().toString());
147 ntpOutPut( tr("Running:")+"\nntpdate "+getNtpServer() ); 168 ntpOutPut( tr("Running:")+"\nntpdate "+getNtpServer() );
148 169
149 ntpProcess->clearArguments(); 170 ntpProcess->clearArguments();
150 *ntpProcess << "ntpdate" << getNtpServer(); 171 *ntpProcess << "ntpdate" << getNtpServer();
151 bool ret = ntpProcess->start(OProcess::NotifyOnExit,OProcess::AllOutput); 172 bool ret = ntpProcess->start(OProcess::NotifyOnExit,OProcess::AllOutput);
152 if ( !ret ) { 173 if ( !ret ) {
153 QMessageBox::critical(this, tr("ntp error"), 174 QMessageBox::critical(this, tr("ntp error"),
@@ -155,56 +176,53 @@ void Ntp::slotRunNtp()
155 qDebug("Error while executing ntpdate"); 176 qDebug("Error while executing ntpdate");
156 ntpOutPut( tr("Error while executing ntpdate")); 177 ntpOutPut( tr("Error while executing ntpdate"));
157 } 178 }
158} 179}
159 180
160void Ntp::getNtpOutput(OProcess *proc, char *buffer, int buflen) 181void Ntp::getNtpOutput(OProcess *proc, char *buffer, int buflen)
161{ 182{
162 if (! proc ) qDebug("Ntp::getNtpOutput OProcess is null"); 183 if (! proc ) qDebug("Ntp::getNtpOutput OProcess is null");
163 QString lineStr, lineStrOld; 184 QString lineStr, lineStrOld;
164 lineStr = buffer; 185 lineStr = buffer;
165 lineStr=lineStr.left(buflen); 186 lineStr=lineStr.left(buflen);
166 if (lineStr!=lineStrOld) 187 if (lineStr!=lineStrOld)
167 { 188 {
168 ntpOutPut(lineStr); 189 ntpOutPut(lineStr);
169 _ntpOutput += lineStr; 190 _ntpOutput += lineStr;
170 } 191 }
171 lineStrOld = lineStr; 192 lineStrOld = lineStr;
172} 193}
173 194
174void Ntp::ntpFinished(OProcess *p) 195void Ntp::ntpFinished(OProcess *p)
175{ 196{
176 qDebug("p->exitStatus() %i",p->exitStatus()); 197 qDebug("p->exitStatus() %i",p->exitStatus());
177 if (p->exitStatus()!=0 || !p->normalExit()) 198 if (p->exitStatus()!=0 || !p->normalExit())
178 { 199 {
179 if ( isVisible() ) { 200 if ( isVisible() && _interactive ){
180 QMessageBox::critical(this, tr("ntp error"), 201 QMessageBox::critical(this, tr("ntp error"),tr("Error while getting time form\n server")+getNtpServer()+"\n"+_ntpOutput );
181 tr("Error while getting time form\n server")+ 202 TabWidgetMain->showPage( tabManualSetTime );
182 getNtpServer()+"\n"+
183 _ntpOutput );
184 TabWidgetMain->showPage( tabManualSetTime );
185 } 203 }
186 204
187 return; 205 return;
188 } 206 }
189 207
190 Global::writeHWClock(); 208 Global::writeHWClock();
191 // since time has changed quickly load in the datebookdb 209 // since time has changed quickly load in the datebookdb
192 // to allow the alarm server to get a better grip on itself 210 // to allow the alarm server to get a better grip on itself
193 // (example re-trigger alarms for when we travel back in time) 211 // (example re-trigger alarms for when we travel back in time)
194 DateBookDB db; 212 DateBookDB db;
195 213
196 // QCopEnvelope timeApplet( "QPE/TaskBar", "reloadApplets()" ); 214 // QCopEnvelope timeApplet( "QPE/TaskBar", "reloadApplets()" );
197 // timeApplet << ""; 215 // timeApplet << "";
198 216
199 Config cfg("ntp",Config::User); 217 Config cfg("ntp",Config::User);
200 cfg.setGroup("lookups"); 218 cfg.setGroup("lookups");
201 int lastLookup = cfg.readNumEntry("time",0); 219 int lastLookup = cfg.readNumEntry("time",0);
202 int lookupCount = cfg.readNumEntry("count",0); 220 int lookupCount = cfg.readNumEntry("count",0);
203 bool lastNtp = cfg.readBoolEntry("lastNtp",false); 221 bool lastNtp = cfg.readBoolEntry("lastNtp",false);
204 int time = TimeConversion::toUTC( QDateTime::currentDateTime() ); 222 int time = TimeConversion::toUTC( QDateTime::currentDateTime() );
205 cfg.writeEntry("time", time); 223 cfg.writeEntry("time", time);
206 224
207 float timeShift = getTimeShift(); 225 float timeShift = getTimeShift();
208 if (timeShift == 0.0) return; 226 if (timeShift == 0.0) return;
209 int secsSinceLast = time - lastLookup; 227 int secsSinceLast = time - lastLookup;
210 TextLabelNewTime->setText(QDateTime::currentDateTime().toString()); 228 TextLabelNewTime->setText(QDateTime::currentDateTime().toString());
@@ -282,99 +300,100 @@ void Ntp::preditctTime()
282 cfg.setGroup("lookups"); 300 cfg.setGroup("lookups");
283 int lastTime = cfg.readNumEntry("time",0); 301 int lastTime = cfg.readNumEntry("time",0);
284 cfg.writeEntry("lastNtp",true); 302 cfg.writeEntry("lastNtp",true);
285 setenv( "TZ", tz->currentZone(), 1 ); 303 setenv( "TZ", tz->currentZone(), 1 );
286 int now = TimeConversion::toUTC( QDateTime::currentDateTime() ); 304 int now = TimeConversion::toUTC( QDateTime::currentDateTime() );
287 int corr = int((now - lastTime) * _shiftPerSec); 305 int corr = int((now - lastTime) * _shiftPerSec);
288 TextLabelEstimatedShift->setText(QString::number(corr)+tr(" seconds")); 306 TextLabelEstimatedShift->setText(QString::number(corr)+tr(" seconds"));
289 predictedTime = QDateTime::currentDateTime().addSecs(corr); 307 predictedTime = QDateTime::currentDateTime().addSecs(corr);
290 TextLabelPredTime->setText(predictedTime.toString()); 308 TextLabelPredTime->setText(predictedTime.toString());
291 TextLabelMainPredTime->setText(tr("Predicted time:")+"<br><b>"+predictedTime.toString()+"</b>"); 309 TextLabelMainPredTime->setText(tr("Predicted time:")+"<br><b>"+predictedTime.toString()+"</b>");
292} 310}
293 311
294void Ntp::setPredictTime() 312void Ntp::setPredictTime()
295{ 313{
296 preditctTime(); 314 preditctTime();
297 setTime( predictedTime ); 315 setTime( predictedTime );
298} 316}
299 317
300void Ntp::slotCheckNtp(int i) 318void Ntp::slotCheckNtp(int i)
301{ 319{
302 if (i == 0) 320 if (i == 0)
303 { 321 {
304 TextLabelMainPredTime->hide(); 322 TextLabelMainPredTime->hide();
305 ButtonSetTime->setText( tr("Get time from network") ); 323 ButtonSetTime->setText( tr("Get time from network") );
306 connect( ButtonSetTime, SIGNAL(clicked()), SLOT(slotRunNtp()) ); 324 connect( ButtonSetTime, SIGNAL(clicked()), SLOT(slotButtonRunNtp()) );
307 if ( ntpDelayElapsed() ) 325 if ( ntpDelayElapsed() )
308 { 326 {
309 slotRunNtp(); 327 slotRunNtp();
310 disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotProbeNtpServer()) ); 328 disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotProbeNtpServer()) );
311 connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotRunNtp()) ); 329 connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotTimerRunNtp()) );
312 }else{ 330 }else{
313 disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotRunNtp()) ); 331 disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotTimerRunNtp()) );
314 connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) ); 332 connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) );
315 } 333 }
316 }else{ 334 }else{
317 preditctTime(); 335 preditctTime();
318 ButtonSetTime->setText( tr("Set predicted time: ")+predictedTime.toString() ); 336 ButtonSetTime->setText( tr("Set predicted time: ")+predictedTime.toString() );
319 if (i>0)ntpOutPut(tr("Could not connect to server ")+getNtpServer()); 337 if (i>0)ntpOutPut(tr("Could not connect to server ")+getNtpServer());
320 connect( ButtonSetTime, SIGNAL(clicked()), SLOT(setPredictTime()) ); 338 connect( ButtonSetTime, SIGNAL(clicked()), SLOT(setPredictTime()) );
321 connect( ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) ); 339 connect( ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) );
322 } 340 }
323} 341}
324 342
325void Ntp::slotProbeNtpServer() 343void Ntp::slotProbeNtpServer()
326{ 344{
327 ntpSock->connectToHost( getNtpServer() ,123); 345 ntpSock->connectToHost( getNtpServer() ,123);
328} 346}
329 347
330void Ntp::slotNtpDelayChanged(int delay) 348void Ntp::slotNtpDelayChanged(int delay)
331{ 349{
332 ntpTimer->changeInterval( delay*1000*60 ); 350 ntpTimer->changeInterval( delay*1000*60 );
333} 351}
334 352
335void Ntp::ntpOutPut(QString out) 353void Ntp::ntpOutPut(QString out)
336{ 354{
337 355
338 MultiLineEditntpOutPut->append(out); 356 MultiLineEditntpOutPut->append(out);
339 MultiLineEditntpOutPut->setCursorPosition(MultiLineEditntpOutPut->numLines() + 1,0,FALSE); 357 MultiLineEditntpOutPut->setCursorPosition(MultiLineEditntpOutPut->numLines() + 1,0,FALSE);
340} 358}
341 359
342 360
343void Ntp::makeChannel() 361void Ntp::makeChannel()
344 { 362 {
345 channel = new QCopChannel( "QPE/Application/netsystemtime", this ); 363 channel = new QCopChannel( "QPE/Application/netsystemtime", this );
346 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), 364 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
347 this, SLOT(receive(const QCString&, const QByteArray&)) ); 365 this, SLOT(receive(const QCString&, const QByteArray&)) );
348} 366}
349 367
350 368
351 369
352void Ntp::receive(const QCString &msg, const QByteArray &arg) 370void Ntp::receive(const QCString &msg, const QByteArray &arg)
353{ 371{
354 qDebug("QCop(Ntp) "+msg+" "+QCString(arg)); 372 qDebug("QCop(Ntp) "+msg+" "+QCString(arg));
355 if ( msg == "ntpLookup(QString)" ) 373 if ( msg == "ntpLookup(QString)" )
356 { 374 {
375 _interactive = false;
357 slotRunNtp(); 376 slotRunNtp();
358 } 377 }
359 if ( msg == "setPredictedTime(QString)" ) 378 if ( msg == "setPredictedTime(QString)" )
360 { 379 {
361 setPredictTime(); 380 setPredictTime();
362 }else{ 381 }else{
363 qDebug("Ntp::receive: Huh what do ya want"); 382 qDebug("Ntp::receive: Huh what do ya want");
364 } 383 }
365} 384}
366 385
367void Ntp::setDocument(const QString &fileName) 386void Ntp::setDocument(const QString &fileName)
368{ 387{
369 qDebug("Ntp::setDocument( %s )",fileName.latin1()); 388 qDebug("Ntp::setDocument( %s )",fileName.latin1());
370} 389}
371 390
372void Ntp::showAdvancedFeatures(bool advMode) 391void Ntp::showAdvancedFeatures(bool advMode)
373{ 392{
374 if (advMode) { 393 if (advMode) {
375 394
376 TabWidgetMain->addTab( tabPredict, tr( "Predict" ) ); 395 TabWidgetMain->addTab( tabPredict, tr( "Predict" ) );
377 TabWidgetMain->addTab( tabNtp, tr( "NTP" ) ); 396 TabWidgetMain->addTab( tabNtp, tr( "NTP" ) );
378 TextLabel1_2_2->show(); 397 TextLabel1_2_2->show();
379 TextLabel2_3->show(); 398 TextLabel2_3->show();
380 TextLabel3_3_2->show(); 399 TextLabel3_3_2->show();
diff --git a/noncore/settings/netsystemtime/ntp.h b/noncore/settings/netsystemtime/ntp.h
index f6694c9..15cddbd 100644
--- a/noncore/settings/netsystemtime/ntp.h
+++ b/noncore/settings/netsystemtime/ntp.h
@@ -11,43 +11,45 @@ class QCopChannel;
11 11
12class Ntp : public SetDateTime 12class Ntp : public SetDateTime
13{ 13{
14 Q_OBJECT 14 Q_OBJECT
15 15
16public: 16public:
17 Ntp( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 17 Ntp( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
18 ~Ntp(); 18 ~Ntp();
19 19
20public slots: 20public slots:
21 void setDocument (const QString &); 21 void setDocument (const QString &);
22protected: 22protected:
23 QDateTime predictedTime; 23 QDateTime predictedTime;
24 void makeChannel(); 24 void makeChannel();
25protected slots: 25protected slots:
26 void receive(const QCString &msg, const QByteArray &arg); 26 void receive(const QCString &msg, const QByteArray &arg);
27private: 27private:
28 QString _ntpOutput; 28 QString _ntpOutput;
29 float _shiftPerSec; 29 float _shiftPerSec;
30 int _lookupDiff; 30 int _lookupDiff;
31 OProcess *ntpProcess; 31 OProcess *ntpProcess;
32 QTimer *ntpTimer; 32 QTimer *ntpTimer;
33 QSocket *ntpSock; 33 QSocket *ntpSock;
34 QCopChannel *channel; 34 QCopChannel *channel;
35 35 bool _interactive;
36 float getTimeShift(); 36 float getTimeShift();
37 void readLookups(); 37 void readLookups();
38 void ntpOutPut(QString); 38 void ntpOutPut(QString);
39 bool ntpDelayElapsed(); 39 bool ntpDelayElapsed();
40 QString getNtpServer(); 40 QString getNtpServer();
41private slots: 41private slots:
42 void slotTimerRunNtp();
43 void slotButtonRunNtp();
42 void slotRunNtp(); 44 void slotRunNtp();
43 void getNtpOutput(OProcess *proc, char *buffer, int buflen); 45 void getNtpOutput(OProcess *proc, char *buffer, int buflen);
44 void ntpFinished(OProcess*); 46 void ntpFinished(OProcess*);
45 void preditctTime(); 47 void preditctTime();
46 void slotCheckNtp(int); 48 void slotCheckNtp(int);
47 void setPredictTime(); 49 void setPredictTime();
48 void showAdvancedFeatures(bool); 50 void showAdvancedFeatures(bool);
49 void slotProbeNtpServer(); 51 void slotProbeNtpServer();
50 void slotNtpDelayChanged(int); 52 void slotNtpDelayChanged(int);
51}; 53};
52 54
53#endif 55#endif