summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/netsystemtime/mainwindow.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/noncore/settings/netsystemtime/mainwindow.cpp b/noncore/settings/netsystemtime/mainwindow.cpp
index ab71463..85a46b7 100644
--- a/noncore/settings/netsystemtime/mainwindow.cpp
+++ b/noncore/settings/netsystemtime/mainwindow.cpp
@@ -125,96 +125,98 @@ void MainWindow::accept()
{
QCopEnvelope disableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" );
disableScreenSaver << 0 << 0 << 0;
}
// Update the systemtime
timeTab->saveSettings( TRUE );
// Save format options
formatTab->saveSettings( TRUE );
// Save settings options
settingsTab->saveSettings();
// 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;
// Turn back on the screensaver
QCopEnvelope enableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" );
enableScreenSaver << -1 << -1 << -1;
// Exit app
qApp->quit();
}
void MainWindow::reject()
{
// Reset time settings
timeTab->saveSettings( FALSE );
// Send notifications but do not save settings
formatTab->saveSettings( FALSE );
// Exit app
qApp->quit();
}
void MainWindow::runNTP()
{
if ( !ntpDelayElapsed() && ntpInteractive )
{
QString msg = tr( "You asked for a delay of " );
msg.append( QString::number( ntpDelay ) );
msg.append( tr( " minutes, but only " ) );
msg.append( QString::number( _lookupDiff / 60 ) );
msg.append( tr(" minutes elapsed since last lookup.<br>Continue?") );
+ QString msg = tr( "You asked for a delay of %1 minutes, but only %2 minutes elapsed since last lookup.<br>Continue?" ).arg( QString::number( ntpDelay ) ).arg( QString::number( _lookupDiff / 60 ) );
+
switch (
QMessageBox::warning( this, tr( "Continue?" ), msg, QMessageBox::Yes, QMessageBox::No )
)
{
case QMessageBox::Yes: break;
case QMessageBox::No: return;
default: return;
}
}
QString srv = settingsTab->ntpServer();
// Send information to time server tab if enabled
if ( ntpTabEnabled )
{
ntpTab->setStartTime( QDateTime::currentDateTime().toString() );
QString output = tr( "Running:\nntpdate " );
output.append( srv );
ntpTab->addNtpOutput( output );
}
if ( !ntpProcess )
{
ntpProcess = new OProcess();
connect( ntpProcess, SIGNAL(receivedStdout(OProcess*,char*,int)),
this, SLOT(slotNtpOutput(OProcess*,char*,int)) );
connect( ntpProcess, SIGNAL(processExited(OProcess*)),
this, SLOT(slotNtpFinished(OProcess*)) );
}
else
ntpProcess->clearArguments();
*ntpProcess << "ntpdate" << srv;
bool ret = ntpProcess->start( OProcess::NotifyOnExit, OProcess::AllOutput );
if ( !ret )
{
QMessageBox::critical( this, tr( "Error" ), tr( "Error while getting time from network." ) );
if ( ntpTabEnabled )
ntpTab->addNtpOutput( tr( "Error while executing ntpdate" ) );
}
}
bool MainWindow::ntpDelayElapsed()
{
// Determine if time elapsed is greater than time delay
Config config( "ntp" );
config.setGroup( "lookups" );
@@ -296,98 +298,97 @@ void MainWindow::slotNtpOutput( OProcess *, char *buffer, int buflen )
if ( ntpTabEnabled )
ntpTab->addNtpOutput( output );
}
void MainWindow::slotNtpFinished( OProcess *p )
{
QString output;
QDateTime dt = QDateTime::currentDateTime();
// Verify run was successful
if ( p->exitStatus() != 0 || !p->normalExit() )
{
if ( isVisible() && ntpInteractive )
{
output = tr( "Error while getting time from\n server: " );
output.append( settingsTab->ntpServer() );
QMessageBox::critical(this, tr( "Error" ), output );
}
// slotCheckNtp(-1);
return;
}
// Set controls on time tab to new time value
timeTab->setDateTime( dt );
// Write out lookup information
Config config( "ntp" );
config.setGroup( "lookups" );
int lastLookup = config.readNumEntry( "time", 0 );
int lookupCount = config.readNumEntry( "count", 0 );
bool lastNtp = config.readBoolEntry( "lastNtp", FALSE );
int time = TimeConversion::toUTC( QDateTime::currentDateTime() );
config.writeEntry( "time", time );
// Calculate new time/time shift
QString _offset = "offset";
QString _sec = "sec";
QRegExp _reOffset = QRegExp( _offset );
QRegExp _reEndOffset = QRegExp( _sec );
int posOffset = _reOffset.match( ntpOutput );
int posEndOffset = _reEndOffset.match( ntpOutput, posOffset );
posOffset += _offset.length() + 1;
QString diff = ntpOutput.mid( posOffset, posEndOffset - posOffset - 1 );
float timeShift = diff.toFloat();
if ( timeShift == 0.0 )
return;
int secsSinceLast = time - lastLookup;
- output = QString::number( timeShift );
- output.append( tr( " seconds" ) );
+ output = tr( "%1 seconds").arg(QString::number( timeShift ));
// Display information on time server tab
if ( ntpTabEnabled )
{
ntpTab->setTimeShift( output );
ntpTab->setNewTime( dt.toString() );
}
if ( lastNtp && lastLookup > 0 && secsSinceLast > 60 * ntpDelay )
{
QString grpname = QString( "lookup_" ).append( QString::number( lookupCount ) );
config.setGroup( grpname );
lookupCount++;
predictTab->setShiftPerSec( timeShift / secsSinceLast );
config.writeEntry( "secsSinceLast", secsSinceLast );
config.writeEntry( "timeShift", QString::number( timeShift ) );
config.setGroup( "lookups" );
config.writeEntry( "count", lookupCount );
config.writeEntry( "lastNtp", TRUE );
}
}
void MainWindow::slotNTPDelayChanged( int delay )
{
ntpTimer->changeInterval( delay * 1000 * 60 );
ntpDelay = delay;
}
void MainWindow::slotCheckNtp( int i )
{
if ( i == 0 )
{
if ( ntpDelayElapsed() )
{
runNTP();
disconnect( ntpTimer, SIGNAL(timeout()), this, SLOT(slotProbeNTPServer()) );
connect( ntpTimer, SIGNAL(timeout()), SLOT(slotTimerGetNTPTime()) );
}
else
{
disconnect(ntpTimer, SIGNAL(timeout()), this, SLOT(slotTimerGetNTPTime()) );
connect(ntpTimer, SIGNAL(timeout()), SLOT(slotProbeNTPServer()) );
}
}
else
{
predictTab->slotPredictTime();
if ( i > 0 )