summaryrefslogtreecommitdiff
path: root/noncore/settings/netsystemtime/predicttabwidget.cpp
Side-by-side diff
Diffstat (limited to 'noncore/settings/netsystemtime/predicttabwidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/netsystemtime/predicttabwidget.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/noncore/settings/netsystemtime/predicttabwidget.cpp b/noncore/settings/netsystemtime/predicttabwidget.cpp
index a9fe418..c706add 100644
--- a/noncore/settings/netsystemtime/predicttabwidget.cpp
+++ b/noncore/settings/netsystemtime/predicttabwidget.cpp
@@ -1,168 +1,166 @@
/*
                This file is part of the OPIE Project
=.
             .=l. Copyright (c) 2002 OPIE team <opie@handhelds.org?>
           .>+-=
 _;:,     .>    :=|. This file is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This file is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
..}^=.=       =       ; Public License for more details.
++=   -.     .`     .:
 :     =  ...= . :.=- You should have received a copy of the GNU
 -.   .:....=;==+<; General Public License along with this file;
  -_. . .   )=.  = see the file COPYING. If not, write to the
    --        :-=` Free Software Foundation, Inc.,
59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "predicttabwidget.h"
#include <qpe/config.h>
#include <qpe/timeconversion.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qpushbutton.h>
#include <qscrollview.h>
#include <qtable.h>
#include <stdlib.h>
PredictTabWidget::PredictTabWidget( QWidget *parent )
: QWidget( parent, 0x0, 0 )
{
/*
QVBoxLayout *tmpvb = new QVBoxLayout( this );
QScrollView *sv = new QScrollView( this );
tmpvb->addWidget( sv, 0, 0 );
sv->setResizePolicy( QScrollView::AutoOneFit );
sv->setFrameStyle( QFrame::NoFrame );
QWidget *container = new QWidget( sv->viewport() );
sv->addChild( container );
*/
QGridLayout *layout = new QGridLayout( this );
layout->setMargin( 2 );
layout->setSpacing( 4 );
// Predicted time drift
layout->addWidget( new QLabel( tr( "Predicted time drift" ), this ), 0, 0 );
lblDrift = new QLabel( tr( "n/a" ), this );
layout->addWidget( lblDrift, 0, 1 );
// Estimated time difference
layout->addWidget( new QLabel( tr( "Estimated shift" ), this ), 1, 0 );
lblDiff = new QLabel( tr( "n/a" ), this );
layout->addWidget( lblDiff, 1, 1 );
// Predicted time
layout->addWidget( new QLabel( tr( "Predicted time" ), this ), 2, 0 );
lblPredicted = new QLabel( tr( "n/a" ), this );
layout->addWidget( lblPredicted, 2, 1 );
// Prediction table
tblLookups = new QTable( 2, 3, this );
QFont font( tblLookups->font() );
font.setPointSize( 7 );
tblLookups->setFont( font );
tblLookups->horizontalHeader()->setLabel( 0, tr( "Shift [s/h]" ) );
tblLookups->horizontalHeader()->setLabel( 1, tr( "Last [h]" ) );
tblLookups->horizontalHeader()->setLabel( 2, tr( "Offset [s]" ) );
- tblLookups->setColumnWidth( 0, 78 );
- tblLookups->setColumnWidth( 1, 50 );
- tblLookups->setColumnWidth( 2, 50 );
+
tblLookups->setMinimumHeight( 50 );
tblLookups->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Maximum ) );
layout->addMultiCellWidget( tblLookups, 3, 3, 0, 1 );
// Predict time button
QPushButton *pb = new QPushButton( tr( "Predict time" ), this );
connect( pb, SIGNAL(clicked()), this, SLOT(slotPredictTime()) );
layout->addWidget( pb, 4, 0 );
// Set predicted time button
pb = new QPushButton( tr( "Set predicted time" ), this );
connect( pb, SIGNAL(clicked()), this, SLOT(slotSetPredictedTime()) );
layout->addWidget( pb, 4, 1 );
// Initialize values
Config config( "ntp" );
config.setGroup( "lookups" );
int lookupCount = config.readNumEntry( "count", 0 );
float last, shift, shiftPerSec;
tblLookups->setNumRows( lookupCount );
int cw = tblLookups->width() / 4;
cw = 50;
tblLookups->sortColumn( 0, FALSE, TRUE );
_shiftPerSec = 0;
QString grpname;
for ( int i=0; i < lookupCount; i++ )
{
grpname = "lookup_";
grpname.append( QString::number( i ) );
config.setGroup( grpname );
last = config.readEntry( "secsSinceLast", 0 ).toFloat();
shift = QString( config.readEntry( "timeShift", 0 ) ).toFloat();
shiftPerSec = shift / last;
_shiftPerSec += shiftPerSec;
tblLookups->setText( i, 0, QString::number( shiftPerSec * 60 * 60 ) );
tblLookups->setText( i, 2, QString::number( shift ) );
tblLookups->setText( i, 1, QString::number( last / ( 60 * 60 ) ) );
}
if(lookupCount)
_shiftPerSec /= lookupCount;
QString drift = QString::number( _shiftPerSec * 60 * 60);
drift.append( tr( " s/h" ) );
lblDrift->setText( drift );
Config lconfig( "locale" );
lconfig.setGroup( "Location" );
tz = lconfig.readEntry( "Timezone", "America/New_York" );
}
PredictTabWidget::~PredictTabWidget()
{
}
void PredictTabWidget::setShiftPerSec( int i )
{
_shiftPerSec += i;
}
void PredictTabWidget::slotTZChanged( const QString &newtz )
{
tz = newtz;
}
void PredictTabWidget::slotPredictTime()
{
Config config( "ntp" );
config.setGroup( "lookups" );
int lastTime = config.readNumEntry( "time", 0 );
config.writeEntry( "lastNtp", TRUE );
setenv( "TZ", tz, 1 );
int now = TimeConversion::toUTC( QDateTime::currentDateTime() );
int corr = int( ( now - lastTime ) * _shiftPerSec );
QString diff = QString::number( corr );
diff.append( tr( " seconds" ) );
lblDiff->setText( diff );
predictedTime = QDateTime::currentDateTime().addSecs( corr );
lblPredicted->setText( predictedTime.toString() );
}
void PredictTabWidget::slotSetPredictedTime()
{
slotPredictTime();
emit setTime( predictedTime );
}