author | tille <tille> | 2002-07-06 13:53:48 (UTC) |
---|---|---|
committer | tille <tille> | 2002-07-06 13:53:48 (UTC) |
commit | ac76e913d1930cdf7903fed344bd7bcc1b7545c0 (patch) (side-by-side diff) | |
tree | 8c71a16a7bc80eccbe1affbc976b795be6807b62 /noncore/settings/netsystemtime | |
parent | 02b8c37db8d3fd197c8c730451bd7819e65817a1 (diff) | |
download | opie-ac76e913d1930cdf7903fed344bd7bcc1b7545c0.zip opie-ac76e913d1930cdf7903fed344bd7bcc1b7545c0.tar.gz opie-ac76e913d1930cdf7903fed344bd7bcc1b7545c0.tar.bz2 |
clockapplet uses qcop call to open settime dialog
Diffstat (limited to 'noncore/settings/netsystemtime') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/netsystemtime/main.cpp | 6 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/ntp.cpp | 32 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/ntp.h | 9 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/opie-netsystemtime.control | 2 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/opie-netsystemtime.postinst | 7 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/opie-netsystemtime.postrm | 4 |
6 files changed, 42 insertions, 18 deletions
diff --git a/noncore/settings/netsystemtime/main.cpp b/noncore/settings/netsystemtime/main.cpp index 5b01408..c6d5f9a 100644 --- a/noncore/settings/netsystemtime/main.cpp +++ b/noncore/settings/netsystemtime/main.cpp @@ -1,14 +1,16 @@ -//#include "settime.h" +#include <stdio.h> #include "ntp.h" #include <qpe/qpeapplication.h> int main( int argc, char ** argv ) { + printf("This is netsystemtime\n"); + printf("$Id$\n"); + QPEApplication a( argc, argv ); - // SetDateTime mw; Ntp mw; a.showMainWidget( &mw ); return a.exec(); } diff --git a/noncore/settings/netsystemtime/ntp.cpp b/noncore/settings/netsystemtime/ntp.cpp index 0b13b6d..2b779fa 100644 --- a/noncore/settings/netsystemtime/ntp.cpp +++ b/noncore/settings/netsystemtime/ntp.cpp @@ -1,92 +1,95 @@ #include "ntp.h" #include <qpushbutton.h> #include <qregexp.h> #include <qtimer.h> #include <qtable.h> #include <qlabel.h> #include <qsocket.h> #include <qlineedit.h> #include <qspinbox.h> #include <qmessagebox.h> #include <qmultilineedit.h> #include <opie/oprocess.h> #include <qpe/qpeapplication.h> #include <qpe/config.h> #include <qpe/global.h> #include <qpe/timeconversion.h> #include <qpe/tzselect.h> #include <qpe/timestring.h> #include <qpe/qpedialog.h> #include <qpe/datebookdb.h> +#include <qpe/qcopenvelope_qws.h> #include <sys/time.h> #include <time.h> #include <stdlib.h> Ntp::Ntp( QWidget* parent, const char* name, WFlags fl ) : SetDateTime( parent, name, fl ) { Config ntpSrvs(QPEApplication::qpeDir()+"etc/ntpservers",Config::File); ntpSrvs.setGroup("servers"); int srvCount = ntpSrvs.readNumEntry("count", 0 ); for (int i = 0; i < srvCount; i++) { 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",41) ); SpinBoxNtpDelay->setValue( cfg.readNumEntry("ntpRefreshFreq",42) ); ComboNtpSrv->setCurrentItem( cfg.readNumEntry("ntpServer", 0) ); + 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(slotRunNtp())); connect(PushButtonPredict, SIGNAL(clicked()), this, SLOT(preditctTime())); connect(PushButtonSetPredTime, SIGNAL(clicked()), this, SLOT(setPredictTime())); slotCheckNtp(-1); readLookups(); } Ntp::~Ntp() { delete ntpProcess; Config ntpSrvs("/etc/ntpservers",Config::File); ntpSrvs.setGroup("servers"); int srvCount = ComboNtpSrv->count(); ntpSrvs.writeEntry("count", srvCount); for (int i = 0; i < srvCount; i++) { ntpSrvs.setGroup(QString::number(i)); ntpSrvs.writeEntry( "name", ComboNtpSrv->text(i) ); } Config cfg("ntp",Config::User); cfg.setGroup("settings"); cfg.writeEntry("ntpServer", ComboNtpSrv->currentItem()); cfg.writeEntry( "minLookupDiff", SpinBoxMinLookupDelay->value() ); cfg.writeEntry( "ntpRefreshFreq", SpinBoxNtpDelay->value() ); } bool Ntp::ntpDelayElapsed() { Config cfg("ntp",Config::User); cfg.setGroup("lookups"); _lookupDiff = TimeConversion::toUTC(QDateTime::currentDateTime()) - cfg.readNumEntry("time",0); return (_lookupDiff - (SpinBoxNtpDelay->value()*60)) > -60; } @@ -170,128 +173,153 @@ void Ntp::ntpFinished(OProcess *p) cfg.setGroup("lookup_"+QString::number(lookupCount)); lookupCount++; _shiftPerSec = timeShift / secsSinceLast; qDebug("secs since last lookup %i", secsSinceLast);qDebug("timeshift since last lookup %f", timeShift);qDebug("timeshift since per sec %f", _shiftPerSec); cfg.writeEntry("secsSinceLast",secsSinceLast); cfg.writeEntry("timeShift",QString::number(timeShift)); cfg.setGroup("lookups"); cfg.writeEntry("count",lookupCount); cfg.writeEntry("lastNtp",true); } } float Ntp::getTimeShift() { 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); qDebug("%s", _ntpOutput.latin1()); qDebug("diff = >%s<",diff.latin1()); return diff.toFloat(); } void Ntp::readLookups() { Config cfg("ntp",Config::User); cfg.setGroup("lookups"); int lookupCount = cfg.readNumEntry("count",0); float last, shift, shiftPerSec; qDebug("lookupCount = %i",lookupCount); TableLookups->setNumCols( 3 ); TableLookups->setNumRows( lookupCount); TableLookups->horizontalHeader()->setLabel(1,tr("last [h]")); TableLookups->horizontalHeader()->setLabel(2,tr("offset [s]")); TableLookups->horizontalHeader()->setLabel(0,tr("shift [s/h]")); int cw = TableLookups->width()/4; qDebug("column width %i",cw); cw = 50; TableLookups->setColumnWidth( 0, cw+30 ); TableLookups->setColumnWidth( 1, cw ); TableLookups->setColumnWidth( 2, cw ); TableLookups->sortColumn(0, false, true ); // TableLookups->setSorting( true ); + _shiftPerSec = 0; for (int i=0; i < lookupCount; i++) { cfg.setGroup("lookup_"+QString::number(i)); last = cfg.readEntry("secsSinceLast",0).toFloat(); shift = QString(cfg.readEntry("timeShift",0)).toFloat(); -// qDebug("%i last %f",i,last); -// qDebug("%i shift %f",i,shift); shiftPerSec = shift / last; + qDebug("%i shift %f",i,shiftPerSec); _shiftPerSec += shiftPerSec; TableLookups->setText( i,0,QString::number(shiftPerSec*60*60)); TableLookups->setText( i,2,QString::number(shift)); TableLookups->setText( i,1,QString::number(last/(60*60))); } _shiftPerSec /= lookupCount; TextLabelShift->setText(QString::number(_shiftPerSec*60*60)+tr(" s/h")); } void Ntp::preditctTime() { Config cfg("ntp",Config::User); cfg.setGroup("lookups"); int lastTime = cfg.readNumEntry("time",0); cfg.writeEntry("lastNtp",true); setenv( "TZ", tz->currentZone(), 1 ); int now = TimeConversion::toUTC( QDateTime::currentDateTime() ); int corr = int((now - lastTime) * _shiftPerSec); TextLabelEstimatedShift->setText(QString::number(corr)+tr(" seconds")); predictedTime = QDateTime::currentDateTime().addSecs(corr); TextLabelPredTime->setText(predictedTime.toString()); TextLabelMainPredTime->setText(tr("Predicted time:")+"<br><b>"+predictedTime.toString()+"</b>"); } void Ntp::setPredictTime() { preditctTime(); setTime( predictedTime ); } void Ntp::slotCheckNtp(int i) { if (i == 0) { TextLabelMainPredTime->hide(); ButtonSetTime->setText( tr("Get time from network") ); connect( ButtonSetTime, SIGNAL(clicked()), SLOT(slotRunNtp()) ); if ( ntpDelayElapsed() ) { slotRunNtp(); disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotProbeNtpServer()) ); connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotRunNtp()) ); }else{ disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotRunNtp()) ); connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) ); } }else{ preditctTime(); ButtonSetTime->setText( tr("Set predicted time") ); if (i>0)ntpOutPut(tr("Could not connect to server ")+getNtpServer()); connect( ButtonSetTime, SIGNAL(clicked()), SLOT(setPredictTime()) ); connect( ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) ); } } void Ntp::slotProbeNtpServer() { qDebug("Ntp::slotProbeNtpServer()"); ntpSock->connectToHost( getNtpServer() ,123); } void Ntp::slotNtpDelayChanged(int delay) { ntpTimer->changeInterval( delay*1000*60 ); } void Ntp::ntpOutPut(QString out) { MultiLineEditntpOutPut->append(out); MultiLineEditntpOutPut->setCursorPosition(MultiLineEditntpOutPut->numLines() + 1,0,FALSE); } + +void Ntp::makeChannel() +{ + channel = new QCopChannel( "QPE/Application/netsystemtime", this ); + connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), + this, SLOT(receive(const QCString&, const QByteArray&)) ); +} + + + +void Ntp::receive(const QCString &msg, const QByteArray &arg) +{ + qDebug("QCop "+msg+" "+QCString(arg)); + if ( msg == "open(QString)" ) + { + // qApp->exec(); + }else{ + qDebug("Ntp::receive: Huh what do ya want"); + } +} + +void Ntp::setDocument(const QString &fileName) +{ + +}
\ No newline at end of file diff --git a/noncore/settings/netsystemtime/ntp.h b/noncore/settings/netsystemtime/ntp.h index c78dc55..56e0131 100644 --- a/noncore/settings/netsystemtime/ntp.h +++ b/noncore/settings/netsystemtime/ntp.h @@ -1,47 +1,52 @@ #ifndef NTP_H #define NTP_H #include "settime.h" #include <qdatetime.h> class OProcess; class QString; class QTimer; class QSocket; +class QCopChannel; class Ntp : public SetDateTime { Q_OBJECT public: Ntp( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); ~Ntp(); +public slots: + void setDocument (const QString &); protected: QDateTime predictedTime; - - + void makeChannel(); +protected slots: + void receive(const QCString &msg, const QByteArray &arg); private: QString _ntpOutput; float _shiftPerSec; int _lookupDiff; OProcess *ntpProcess; QTimer *ntpTimer; QSocket *ntpSock; + QCopChannel *channel; float getTimeShift(); void readLookups(); void ntpOutPut(QString); bool ntpDelayElapsed(); QString getNtpServer(); private slots: void slotRunNtp(); void getNtpOutput(OProcess *proc, char *buffer, int buflen); void ntpFinished(OProcess*); void preditctTime(); void slotCheckNtp(int); void setPredictTime(); void slotProbeNtpServer(); void slotNtpDelayChanged(int); }; #endif diff --git a/noncore/settings/netsystemtime/opie-netsystemtime.control b/noncore/settings/netsystemtime/opie-netsystemtime.control index 9251e5c..e4b744d 100644 --- a/noncore/settings/netsystemtime/opie-netsystemtime.control +++ b/noncore/settings/netsystemtime/opie-netsystemtime.control @@ -1,11 +1,11 @@ Packagename: opie-netsystemtime -Files: bin/netsystemtime apps/Settings/ntpdatetime.desktop etc/ntpservers +Files: bin/netsystemtime apps/Settings/netsystemtime.desktop etc/ntpservers Priority: optional Section: opie/settings Conflicts: opie-systemtime Maintainer: Patrick S. Vogt <tille@handhelds.org> Architecture: arm Version: $QPE_VERSION-$SUB_VERSION Depends: opie-base ($QPE_VERSION), ntpdate Description: ntp (Network Time Protocol) gui This utility syncs system time with a atomic timerserver via internet diff --git a/noncore/settings/netsystemtime/opie-netsystemtime.postinst b/noncore/settings/netsystemtime/opie-netsystemtime.postinst deleted file mode 100644 index 233cd31..0000000 --- a/noncore/settings/netsystemtime/opie-netsystemtime.postinst +++ b/dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -v - -systime=`ipkg status | grep Package | grep -i systemtime | sed "s/Package://"` -ipkg remove $pack - -cd $QPEDIR/bin/ -ln -s netsystemtime systemtime diff --git a/noncore/settings/netsystemtime/opie-netsystemtime.postrm b/noncore/settings/netsystemtime/opie-netsystemtime.postrm deleted file mode 100644 index 4b2ab7c..0000000 --- a/noncore/settings/netsystemtime/opie-netsystemtime.postrm +++ b/dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -v - -cd $QPEDIR/bin/ -rm systemtime |