-rw-r--r-- | noncore/settings/netsystemtime/ntp.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/noncore/settings/netsystemtime/ntp.cpp b/noncore/settings/netsystemtime/ntp.cpp index 551cedc..06d944d 100644 --- a/noncore/settings/netsystemtime/ntp.cpp +++ b/noncore/settings/netsystemtime/ntp.cpp @@ -39,145 +39,149 @@ Ntp::Ntp( QWidget* parent, const char* name, WFlags fl ) ntpSrvs.setGroup(QString::number(i)); ComboNtpSrv->insertItem( ntpSrvs.readEntry("name") ); } if ( srvCount==0 ) ComboNtpSrv->insertItem(tr("time.fu-berlin.de")); Config cfg("ntp",Config::User); cfg.setGroup("settings"); SpinBoxMinLookupDelay->setValue( cfg.readNumEntry("minLookupDiff",720) ); SpinBoxNtpDelay->setValue( cfg.readNumEntry("ntpRefreshFreq",1440) ); ComboNtpSrv->setCurrentItem( cfg.readNumEntry("ntpServer", 0) ); //make tab order TabWidgetMain->removePage( tabMain ); TabWidgetMain->removePage( tabManualSetTime ); TabWidgetMain->removePage( TabSettings ); TabWidgetMain->removePage( tabPredict ); TabWidgetMain->removePage( tabNtp ); TabWidgetMain->insertTab( tabMain, tr( "Main" ) ); TabWidgetMain->insertTab( TabSettings, tr( "Settings" ) ); TabWidgetMain->insertTab( tabPredict, tr( "Predict" ) ); TabWidgetMain->insertTab( tabNtp, tr( "NTP" ) ); NtpBaseLayout->addWidget( TabWidgetMain, 0, 0 ); bool advMode = cfg.readBoolEntry("advancedFeatures", false ); showAdvancedFeatures(advMode); CheckBoxAdvSettings->setChecked( advMode ); connect( CheckBoxAdvSettings, SIGNAL( toggled( bool ) ), SLOT( showAdvancedFeatures( bool ) ) ); makeChannel(); ntpTimer = new QTimer(this); ntpProcess = new OProcess( ); connect( SpinBoxNtpDelay, SIGNAL( valueChanged(int) ), SLOT(slotNtpDelayChanged(int)) ); ntpSock = new QSocket( this ); connect( ntpSock, SIGNAL( error(int) ),SLOT(slotCheckNtp(int)) ); slotProbeNtpServer(); connect ( ntpProcess, SIGNAL(receivedStdout(OProcess*,char*,int)), this, SLOT(getNtpOutput(OProcess*,char*,int))); connect ( ntpProcess, SIGNAL(processExited(OProcess*)), this, SLOT(ntpFinished(OProcess*))); connect(runNtp, SIGNAL(clicked()), this, SLOT(slotButtonRunNtp())); connect(PushButtonPredict, SIGNAL(clicked()), this, SLOT(preditctTime())); connect(PushButtonSetPredTime, SIGNAL(clicked()), this, SLOT(setPredictTime())); slotCheckNtp(-1); readLookups(); } Ntp::~Ntp() { delete ntpProcess; } void Ntp::saveConfig(){ int srvCount = ComboNtpSrv->count(); bool serversChanged = true; + int curSrv = ComboNtpSrv->currentItem(); QString edit = ComboNtpSrv->currentText(); for (int i = 0; i < srvCount; i++){ if ( edit == ComboNtpSrv->text(i)) serversChanged = false; } if (serversChanged){ - Config ntpSrvs("/etc/ntpservers",Config::File); + Config ntpSrvs(QPEApplication::qpeDir()+"etc/ntpservers",Config::File); ntpSrvs.setGroup("servers"); - ntpSrvs.writeEntry("count", srvCount); - for (int i = 0; i < srvCount; i++){ + ntpSrvs.writeEntry("count", ++srvCount); + ntpSrvs.setGroup("0"); + ntpSrvs.writeEntry( "name", edit ); + curSrv = 0; + for (int i = 1; i < srvCount; i++){ qDebug("ntpSrvs[%i/%i]=%s",i,srvCount,ComboNtpSrv->text(i).latin1()); ntpSrvs.setGroup(QString::number(i)); - ntpSrvs.writeEntry( "name", ComboNtpSrv->text(i) ); + ntpSrvs.writeEntry( "name", ComboNtpSrv->text(i-1) ); } } Config cfg("ntp",Config::User); cfg.setGroup("settings"); - cfg.writeEntry("ntpServer", ComboNtpSrv->currentItem()); + cfg.writeEntry("ntpServer", curSrv ); cfg.writeEntry( "minLookupDiff", SpinBoxMinLookupDelay->value() ); cfg.writeEntry( "ntpRefreshFreq", SpinBoxNtpDelay->value() ); cfg.writeEntry( "advancedFeatures", CheckBoxAdvSettings->isChecked() ); } bool Ntp::ntpDelayElapsed() { Config cfg("ntp",Config::User); cfg.setGroup("lookups"); _lookupDiff = TimeConversion::toUTC(QDateTime::currentDateTime()) - cfg.readNumEntry("time",0); if (_lookupDiff < 0) return true; int i =_lookupDiff - (SpinBoxNtpDelay->value()*60); return i > -60; } QString Ntp::getNtpServer() { return ComboNtpSrv->currentText(); } void Ntp::slotButtonRunNtp() { _interactive = true; slotRunNtp(); } void Ntp::slotTimerRunNtp() { _interactive = false; slotRunNtp(); } void Ntp::slotRunNtp() { if ( !ntpDelayElapsed() && CheckBoxAdvSettings->isChecked() ) { 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 lookup.")+ "<br>"+tr("Rerun NTP?"), QMessageBox::Ok,QMessageBox::Cancel) ) { case QMessageBox::Ok: break; case QMessageBox::Cancel: return; default: return; } } TextLabelStartTime->setText(QDateTime::currentDateTime().toString()); ntpOutPut( tr("Running:")+"\nntpdate "+getNtpServer() ); ntpProcess->clearArguments(); *ntpProcess << "ntpdate" << getNtpServer(); bool ret = ntpProcess->start(OProcess::NotifyOnExit,OProcess::AllOutput); if ( !ret ) { QMessageBox::critical(this, tr("ntp error"), tr("Error while getting time form network!")); qDebug("Error while executing ntpdate"); ntpOutPut( tr("Error while executing ntpdate")); } } void Ntp::getNtpOutput(OProcess *proc, char *buffer, int buflen) @@ -371,65 +375,65 @@ void Ntp::receive(const QCString &msg, const QByteArray &arg) } if ( msg == "setPredictedTime(QString)" ) { setPredictTime(); }else{ qDebug("Ntp::receive: Huh what do ya want"); } } void Ntp::setDocument(const QString &fileName) { qDebug("Ntp::setDocument( %s )",fileName.latin1()); } void Ntp::showAdvancedFeatures(bool advMode) { if (advMode) { TabWidgetMain->addTab( tabPredict, tr( "Predict" ) ); TabWidgetMain->addTab( tabNtp, tr( "NTP" ) ); TextLabel1_2_2->show(); TextLabel2_3->show(); TextLabel3_3_2->show(); TextLabel1_2->show(); SpinBoxMinLookupDelay->show(); TextLabel2->show(); TextLabel3_3->show(); SpinBoxNtpDelay->show(); Line1->show(); }else{ TabWidgetMain->removePage( tabPredict ); TabWidgetMain->removePage( tabNtp ); TextLabel1_2_2->hide(); TextLabel2_3->hide(); TextLabel3_3_2->hide(); TextLabel1_2->hide(); SpinBoxMinLookupDelay->hide(); TextLabel2->hide(); TextLabel3_3->hide(); SpinBoxNtpDelay->hide(); Line1->hide(); }; TabWidgetMain->show(); } void Ntp::accept( ){ qDebug("saving"); //SetTimeDate commitTime(); writeSettings(); updateSystem(); // Ntp saveConfig(); qApp->quit(); } void Ntp::reject( ){ qDebug("_oldTimeZone %s",_oldTimeZone.latin1()); if (!_oldTimeZone.isEmpty()){ qDebug("reverting timezone"); tzChange(_oldTimeZone); commitTime(); } -}
\ No newline at end of file +} |