author | zecke <zecke> | 2004-03-14 15:12:59 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-03-14 15:12:59 (UTC) |
commit | a104a921518d4427bf3dc9edd2c968133420607c (patch) (side-by-side diff) | |
tree | 005a054e766250891039f9adf4bacf3d6f0486f0 | |
parent | 8a243adc61fc9c8a48fa9061f0eba12c7b345d70 (diff) | |
download | opie-a104a921518d4427bf3dc9edd2c968133420607c.zip opie-a104a921518d4427bf3dc9edd2c968133420607c.tar.gz opie-a104a921518d4427bf3dc9edd2c968133420607c.tar.bz2 |
ODP changes
9 files changed, 21 insertions, 14 deletions
diff --git a/noncore/todayplugins/fortune/fortunepluginwidget.cpp b/noncore/todayplugins/fortune/fortunepluginwidget.cpp index 3aa978c..c3ee546 100644 --- a/noncore/todayplugins/fortune/fortunepluginwidget.cpp +++ b/noncore/todayplugins/fortune/fortunepluginwidget.cpp @@ -1,81 +1,83 @@ /* * fortunepluginwidget.cpp * * copyright : (c) 2002 by Maximilian Reiß * email : harlekin@handhelds.org * */ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "fortunepluginwidget.h" #include <qpe/config.h> #include <qpe/qcopenvelope_qws.h> #include <qvaluelist.h> #include <qtl.h> #include <qstring.h> #include <qscrollview.h> #include <qobject.h> #include <qlayout.h> +using namespace Opie::Core; +using namespace Opie::Ui; FortunePluginWidget::FortunePluginWidget( QWidget *parent, const char* name ) : QWidget( parent, name ) { fortune = NULL; getFortune(); } FortunePluginWidget::~FortunePluginWidget() { if( fortuneProcess ){ delete fortuneProcess; } } /** * Get the fortunes */ void FortunePluginWidget::getFortune() { QVBoxLayout* layoutFortune = new QVBoxLayout( this ); if ( fortune ) { delete fortune; } fortune = new OTicker( this ); // fortune->setReadOnly( TRUE ); // fortune->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ) ); fortune->setText( QString("Obtaining fortune...") ); layoutFortune->addWidget( fortune ); fortuneProcess = new OProcess(); *fortuneProcess << "fortune"; - connect(fortuneProcess, SIGNAL(receivedStdout(OProcess*,char*,int) ), - this, SLOT(slotStdOut(OProcess*,char*,int) ) ); + connect(fortuneProcess, SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int) ), + this, SLOT(slotStdOut(Opie::Core::OProcess*,char*,int) ) ); if(!fortuneProcess->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { qWarning("could not start :("); fortune->setText( QString("Failed to obtain fortune.") ); delete fortuneProcess; fortuneProcess = 0; } } void FortunePluginWidget::slotStdOut( OProcess* /*proc*/, char* buf, int len ) { QCString s( buf, len ); s.replace( QRegExp("\n"), "" ); fortune->setText( s ); } diff --git a/noncore/todayplugins/fortune/fortunepluginwidget.h b/noncore/todayplugins/fortune/fortunepluginwidget.h index abb7bed..1b71430 100644 --- a/noncore/todayplugins/fortune/fortunepluginwidget.h +++ b/noncore/todayplugins/fortune/fortunepluginwidget.h @@ -1,45 +1,45 @@ /* * fortunepluginwidget.h * * copyright : (c) 2002 by Chris Larson * email : kergoth@handhelds.org * */ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef FORTUNE_PLUGIN_WIDGET_H #define FORTUNE_PLUGIN_WIDGET_H #include <opie2/oprocess.h> #include <opie2/oticker.h> #include <qstring.h> #include <qwidget.h> class FortunePluginWidget : public QWidget { Q_OBJECT public: FortunePluginWidget( QWidget *parent, const char *name ); ~FortunePluginWidget(); private: - OTicker *fortune; - OProcess *fortuneProcess; + Opie::Ui::OTicker *fortune; + Opie::Core::OProcess *fortuneProcess; void getFortune(); private slots: - void slotStdOut( OProcess*, char*, int ); + void slotStdOut( Opie::Core::OProcess*, char*, int ); }; #endif diff --git a/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp b/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp index b3fa708..ce35256 100644 --- a/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp +++ b/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp @@ -1,86 +1,88 @@ #include "inputDialog.h" #include <qapplication.h> #include <qlayout.h> #include <qcheckbox.h> #include <qlineedit.h> #include <qvariant.h> #include <qpushbutton.h> #include <qwhatsthis.h> #include <qlabel.h> #include <qlayout.h> #include <qpe/config.h> #include <qstringlist.h> +using namespace Opie::Core; +using namespace Opie::Core; #include <qmainwindow.h> #include "helpwindow.h" #include <stdlib.h> // #include <sys/stat.h> // #include <unistd.h> InputDialog::InputDialog( ) : QMainWindow( 0x0, 0x0, WStyle_ContextHelp ) { setCaption( tr("Symbol Lookup")); QGridLayout *layout = new QGridLayout( this ); layout->setSpacing(6); layout->setMargin( 2); LineEdit1 = new QLineEdit( this, "LineEdit1" ); LineEdit1->setFocus(); layout->addMultiCellWidget( LineEdit1, 0, 0, 0, 3); QLabel *label; label = new QLabel(this); label->setText( tr("Enter something to lookup / search.")); label->setMaximumHeight(60); layout->addMultiCellWidget( label, 1, 1, 0, 3); connect(LineEdit1,SIGNAL(returnPressed()),this,SLOT(doLookup())); QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Expanding ); layout->addItem( spacer, 8, 0 ); } InputDialog::~InputDialog() { } void InputDialog::doLookup() { // http://finance.yahoo.com/l?m=&s=siemens&t= QString url = "\"http://finance.yahoo.com/l?m=&s="+LineEdit1->text()+"\""; QString tempHtml = "/tmp/stockticker.html"; QString cmd = "wget -O "+tempHtml+" "+url; qDebug(cmd); /* OProcess proc; proc << "/usr/bin/wget"; proc<<"-O"<< tempHtml<< url; - connect( &proc, SIGNAL( processExited(OProcess*)),this, SLOT( showBrowser(OProcess*))); + connect( &proc, SIGNAL( processExited(Opie::Core::OProcess*)),this, SLOT( showBrowser(Opie::Core::OProcess*))); proc.start( OProcess::NotifyOnExit); */ system(cmd.latin1()); HelpWindow *StockLookup = new HelpWindow( tempHtml,".",this, "SymbolLookup"); StockLookup->setCaption("Symbol"); StockLookup->showMaximized(); StockLookup->show(); LineEdit1->text(); } void InputDialog::showBrowser(OProcess*) { qDebug("BLAH"); QString tempHtml = "/tmp/stockticker.html"; HelpWindow *StockLookup = new HelpWindow( tempHtml,".",this, "SymbolLookup"); StockLookup->setCaption("Symbol"); StockLookup->showMaximized(); StockLookup->show(); LineEdit1->text(); } diff --git a/noncore/todayplugins/stockticker/stockticker/inputDialog.h b/noncore/todayplugins/stockticker/stockticker/inputDialog.h index a1c00bd..d7ff94c 100644 --- a/noncore/todayplugins/stockticker/stockticker/inputDialog.h +++ b/noncore/todayplugins/stockticker/stockticker/inputDialog.h @@ -1,30 +1,30 @@ #ifndef INPUTDIALOG_H #define INPUTDIALOG_H #include <opie2/oprocess.h> #include <qvariant.h> #include <qdialog.h> #include <qmainwindow.h> class QLineEdit; class QCheckBox; class InputDialog : public QMainWindow { Q_OBJECT public: InputDialog( ); ~InputDialog(); private: QLineEdit* LineEdit1; private slots: void doLookup(); - void showBrowser(OProcess*); + void showBrowser(Opie::Core::OProcess*); protected slots: }; #endif // INPUTDIALOG_H diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp index 51113ba..aaeb5ee 100644 --- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp +++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp @@ -1,327 +1,329 @@ /* * stocktickerpluginwidget.cpp * * copyright : (c) 2002 by L.J. Potter * email : llornkcor@handhelds.org * */ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include <opie2/oticker.h> #include <qpe/config.h> #include <qlayout.h> +using namespace Opie::Ui; +using namespace Opie::Ui; extern "C" { #include "libstocks/stocks.h" } #include <pthread.h> #include "stocktickerpluginwidget.h" QString output; OTicker *stocktickerTicker; QCString stock_liste; bool dotimeCheck, dodateCheck, dosymbolCheck, donameCheck; bool docurrentPriceCheck, dolastPriceCheck, doopenPriceCheck; bool dominPriceCheck, domaxPriceCheck, dovariationCheck, dovolumeCheck; void getStocks(char *blah) { // stocktickerTicker->setText( "Downloading stock data."); stock *stocks_quotes=NULL; stock *stocks_tmp; stock_liste = blah; ::free ( blah ); // char *stock_liste = (char *)blah->latin1(); // qDebug("%s", stock_liste.data() ); output = ""; QString tempString; libstocks_return_code error; // Config cfg( "stockticker"); // cfg.setGroup( "Fields" ); // bool dotimeCheck, dodateCheck, dosymbolCheck, donameCheck; // bool docurrentPriceCheck, dolastPriceCheck, doopenPriceCheck; // bool dominPriceCheck, domaxPriceCheck, dovariationCheck, dovolumeCheck; dotimeCheck=dodateCheck=dosymbolCheck=donameCheck= docurrentPriceCheck=dolastPriceCheck=doopenPriceCheck=dominPriceCheck=domaxPriceCheck=dovariationCheck=dovolumeCheck=false; dotimeCheck=1; dodateCheck=1; dosymbolCheck=1; donameCheck=1; docurrentPriceCheck=1; dolastPriceCheck=1; doopenPriceCheck=1; dominPriceCheck=1; domaxPriceCheck=1; dovariationCheck=1; dovolumeCheck=1; // dotimeCheck=cfg.readBoolEntry("timeCheck",1); // dodateCheck=cfg.readBoolEntry("dateCheck",1); // dosymbolCheck=cfg.readBoolEntry("symbolCheck",1); // donameCheck=cfg.readBoolEntry("nameCheck",1); // docurrentPriceCheck=cfg.readBoolEntry("currentPriceCheck",1); // dolastPriceCheck=cfg.readBoolEntry("lastPriceCheck",1); // doopenPriceCheck=cfg.readBoolEntry("openPriceCheck",1); // dominPriceCheck=cfg.readBoolEntry("minPriceCheck",1); // domaxPriceCheck=cfg.readBoolEntry("maxPriceCheck",1); // dovariationCheck=cfg.readBoolEntry("variationCheck",1); // dovolumeCheck=cfg.readBoolEntry("volumeCheck",1); // DefProxy(); // { char *proxy; // libstocks_return_code error; /* Proxy support */ /* Checks for "http_proxy" environment variable */ proxy = getenv("http_proxy"); if(proxy) { /* printf("proxy set\n"); */ error = set_proxy(proxy); if (error) { // printf("Proxy error (%d)\n", error); // QString tempString2; // tempString2.sprintf("Proxy error (%d)\n", error); // output = tempString2; // delete tempString2; return; // exit(1); } } ::free(proxy); // } /* Get the stocks and process errors */ error = get_stocks( stock_liste.data(), &stocks_quotes); if (error) { printf("Error in getting stocks (%d)\n", error); tempString.sprintf("Error in getting stocks (%d)\n", error); output =tempString; return; } stocks_tmp = stocks_quotes; /* Displays the stocks */ while(stocks_tmp!=0){ if (stocks_tmp->Time) { // printf("%s ", stocks_tmp->Time); tempString.sprintf("| %s ", stocks_tmp->Time); tempString.replace(QRegExp("\""),""); if( dotimeCheck) output +=tempString; } if (stocks_tmp->Date) { // printf("%s ", stocks_tmp->Date); tempString.sprintf("| %s ", stocks_tmp->Date); tempString.replace(QRegExp("\""),""); if(dodateCheck) output +=tempString; } // printf("\n"); // printf("----------------------------------------\n"); if ( strlen(stocks_tmp->Symbol) > 20 ) { // printf("| Symbol | %.20s |\n",stocks_tmp->Symbol); tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol); if(dosymbolCheck) output +=tempString; } else { // printf("| Symbol | %-20s |\n",stocks_tmp->Symbol); tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol); if(dosymbolCheck) output +=tempString; } if (stocks_tmp->Name) { if ( strlen(stocks_tmp->Name) > 20 ) { // printf("| Name %.20s |\n",stocks_tmp->Name); tempString.sprintf("| Name %s ",stocks_tmp->Name); tempString.stripWhiteSpace(); if(donameCheck) output +=tempString; } else { // printf("| Name | %-20s |\n",stocks_tmp->Name); tempString.sprintf("| Name %s ",stocks_tmp->Name); tempString.stripWhiteSpace(); if(donameCheck) output +=tempString; } } else { // printf("| Name | |\n"); tempString.sprintf("| Name | |"); if(donameCheck) output +=tempString; } // printf("| Price | %-7.2f |\n", stocks_tmp->CurrentPrice); tempString.sprintf("| Price %-7.2f ", stocks_tmp->CurrentPrice); if(docurrentPriceCheck) output +=tempString; // printf("| Yesterday | %-7.2f |\n",stocks_tmp->LastPrice); tempString.sprintf("| Yesterday %-7.2f ",stocks_tmp->LastPrice); if(dolastPriceCheck) output +=tempString; // printf("| Open | %-7.2f |\n",stocks_tmp->OpenPrice); tempString.sprintf("| Open %-7.2f ",stocks_tmp->OpenPrice); if(doopenPriceCheck) output +=tempString; // printf("| Min | %-7.2f |\n", stocks_tmp->MinPrice); tempString.sprintf("| Min %-7.2f ", stocks_tmp->MinPrice); if(dominPriceCheck) output +=tempString; // printf("| Max | %-7.2f |\n",stocks_tmp->MaxPrice); tempString.sprintf("| Max %-7.2f ",stocks_tmp->MaxPrice); if(domaxPriceCheck) output +=tempString; // printf("| Var | %-6.2f (%5.2f %%) |\n", stocks_tmp->Variation, stocks_tmp->Pourcentage); tempString.sprintf("| Var %-6.2f (%5.2f %%) ", stocks_tmp->Variation, stocks_tmp->Pourcentage); if(dovariationCheck) output +=tempString; // printf("| Volume | %-9d |\n", stocks_tmp->Volume); tempString.sprintf("| Volume %-9d ", stocks_tmp->Volume); if(dovolumeCheck) output +=tempString; // printf("----------------------------------------\n\n"); tempString.sprintf("||==++==|"); output +=tempString; /* Simple function which help to browse in the stocks list */ stocks_tmp = next_stock(stocks_tmp); } stocktickerTicker->setText( output.latin1() ); /* frees stocks */ free_stocks(stocks_quotes); free_stocks(stocks_tmp); stock_liste=""; //delete stock_liste; tempString=""; output=""; } StockTickerPluginWidget::StockTickerPluginWidget( QWidget *parent, const char* name) : QWidget(parent, name ) { init(); startTimer(1000); stocktickerTicker->setTextFormat(Qt::RichText); // checkConnection(); } StockTickerPluginWidget::~StockTickerPluginWidget() { } void StockTickerPluginWidget::init() { QHBoxLayout* layout = new QHBoxLayout( this ); stocktickerTicker = new OTicker(this); // stocktickerTicker->setMinimumHeight(15); connect( stocktickerTicker, SIGNAL( mousePressed()), this, SLOT( checkConnection() )); layout->addWidget( stocktickerTicker); wasError = true; } void StockTickerPluginWidget::doStocks() { Config cfg( "stockticker"); cfg.setGroup( "Symbols" ); symbollist=""; symbollist = cfg.readEntry("Symbols", ""); symbollist.replace(QRegExp(" "),"+");//seperated by + cfg.setGroup("Timer"); stocktickerTicker->setUpdateTime( cfg.readNumEntry("ScrollSpeed",50)); stocktickerTicker->setScrollLength( cfg.readNumEntry("ScrollLength",10)); if (!symbollist.isEmpty()) { pthread_t thread1; char *blah = ::strdup(symbollist.latin1()); pthread_create( &thread1, NULL, (void * (*)(void *))getStocks, (void *) blah); pthread_detach( thread1); //::free((void*)thread1); //getStocks(blah); } } void StockTickerPluginWidget::timerEvent( QTimerEvent *e ) { killTimer(e->timerId()); checkConnection(); } void StockTickerPluginWidget::checkConnection() { // qDebug("checking connection"); // Sock = new QSocket( this ); // if( wasError) // stocktickerTicker->setText("Checking connection"); // if(Sock->state() == QSocket::Idle) { // Sock->connectToHost("finance.yahoo.com", 80); // connect( Sock, SIGNAL( error(int) ), SLOT(socketError(int)) ); // connect( Sock, SIGNAL( hostFound() ), SLOT(isConnected()) ); // } else { // qDebug("State is not Idle"); isConnected(); // } } void StockTickerPluginWidget::isConnected() { // qDebug("We connect, so ok to grab stocks"); if(this->isVisible()) doStocks(); Config cfg( "stockticker"); cfg.setGroup("Timer"); timerDelay= cfg.readNumEntry("Delay",0); if(timerDelay > 0) startTimer(timerDelay*60000); // qDebug("timer set for %d",(timerDelay*60000)/60000); wasError = false; // Sock->close(); } void StockTickerPluginWidget::socketError(int errcode) { switch(errcode) { case QSocket::ErrConnectionRefused: output = tr("Connection refused."); break; case QSocket::ErrHostNotFound: output = tr("Could not find server."); break; case QSocket::ErrSocketRead : output = tr("Socket read error."); break; }; stocktickerTicker->setText( output ); wasError = true; // Sock->close(); } diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h index 8a8fbf8..727e289 100644 --- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h +++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h @@ -1,62 +1,62 @@ /* * stocktickerpluginwidget.h * * copyright : (c) 2002 by L.J. Potter * email : lornkcor@handhelds.org * */ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef STOCKTICKERL_PLUGIN_WIDGET_H #define STOCKTICKERL_PLUGIN_WIDGET_H #include <qsocket.h> #include <qstring.h> #include <qwidget.h> #include <qlineedit.h> -#include <opie/oclickablelabel.h> -#include <opie/oticker.h> +#include <opie2/oclickablelabel.h> +#include <opie2/oticker.h> #include <sys/types.h> #include <sys/uio.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> class QTimer; class StockTickerPluginWidget : public QWidget { Q_OBJECT public: StockTickerPluginWidget( QWidget *parent, const char *name ); ~StockTickerPluginWidget(); protected slots: void doStocks(); void isConnected(); void socketError(int); void checkConnection(); private: int updateSpeed; QString symbollist; bool wasError; QSocket *Sock; void timerEvent( QTimerEvent * ); void init(); // void DefProxy(void); int timerDelay; }; #endif diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktimerpluginwidget.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktimerpluginwidget.h index d7b6047..667d9c9 100644 --- a/noncore/todayplugins/stockticker/stocktickerlib/stocktimerpluginwidget.h +++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktimerpluginwidget.h @@ -1,44 +1,44 @@ /* * mailpluginwidget.h * * copyright : (c) 2002 by Maximilian Reiß * email : harlekin@handhelds.org * */ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef MAIL_PLUGIN_WIDGET_H #define MAIL_PLUGIN_WIDGET_H #include <qstring.h> #include <qwidget.h> -#include <opie/oclickablelabel.h> +#include <opie2/oclickablelabel.h> class MailPluginWidget : public QWidget { Q_OBJECT public: MailPluginWidget( QWidget *parent, const char *name ); ~MailPluginWidget(); protected slots: void startMail(); private: - OClickableLabel *mailLabel; + Opie::Ui::OClickableLabel *mailLabel; void readConfig(); void getInfo(); }; #endif diff --git a/noncore/todayplugins/weather/weatherpluginwidget.cpp b/noncore/todayplugins/weather/weatherpluginwidget.cpp index ad99a43..8e00c36 100644 --- a/noncore/todayplugins/weather/weatherpluginwidget.cpp +++ b/noncore/todayplugins/weather/weatherpluginwidget.cpp @@ -1,325 +1,326 @@ /* This file is part of the OPIE Project =. .=l. Copyright (c) 2002 Dan Williams <williamsdr@acm.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 <qfile.h> #include <qimage.h> #include <qlabel.h> #include <qlayout.h> #include <qpixmap.h> #include <qtextstream.h> #include <opie2/oprocess.h> #include <qpe/config.h> #include <qpe/resource.h> #include "weatherpluginwidget.h" +using namespace Opie::Core; WeatherPluginWidget::WeatherPluginWidget( QWidget *parent, const char* name ) : QWidget( parent, name ) { QHBoxLayout *layout = new QHBoxLayout( this ); layout->setAutoAdd( TRUE ); layout->setSpacing( 2 ); weatherIcon = new QLabel( this ); weatherIcon->setMaximumWidth( 32 ); QImage logo1 = Resource::loadImage( "Clock" ); QPixmap pic; pic.convertFromImage( logo1 ); weatherIcon->setPixmap( pic ); weatherLabel = new QLabel( tr( "Retreiving current weather information." ), this ); weatherLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ) ); startTimer(1000); } WeatherPluginWidget::~WeatherPluginWidget() { QFile file( localFile ); if ( file.exists() ) { file.remove(); } } void WeatherPluginWidget::timerEvent( QTimerEvent *e ) { killTimer( e->timerId() ); retreiveData(); } void WeatherPluginWidget::retreiveData() { Config config( "todayweatherplugin"); config.setGroup( "Config" ); location = config.readEntry( "Location", "" ); useMetric = config.readBoolEntry( "Metric", TRUE ); frequency = config.readNumEntry( "Frequency", 5 ); startTimer( frequency * 60000 ); localFile = "/tmp/"; localFile.append( location ); localFile.append( ".TXT" ); remoteFile = "http://weather.noaa.gov/pub/data/observations/metar/stations/"; remoteFile.append( location ); remoteFile.append( ".TXT" ); QFile file( localFile ); if ( file.exists() ) { file.remove(); } OProcess *proc = new OProcess; *proc << "wget" << "-q" << remoteFile << "-O" << localFile; - connect( proc, SIGNAL( processExited(OProcess*) ), this, SLOT( dataRetrieved(OProcess*) ) ); + connect( proc, SIGNAL( processExited(Opie::Core::OProcess*) ), this, SLOT( dataRetrieved(Opie::Core::OProcess*) ) ); proc->start(); } void WeatherPluginWidget::displayWeather() { weatherData = QString::null; QFile file( localFile ); if ( file.size() > 0 && file.open( IO_ReadOnly ) ) { QTextStream data( &file ); while ( !data.eof() ) { weatherData.append( data.readLine() ); } file.close(); weatherData = weatherData.simplifyWhiteSpace(); QString tmpstr; tmpstr.append( tr( "Temp: " ) ); getTemp( weatherData ); tmpstr.append( dataStr ); tmpstr.append( tr( " Wind: " ) ); getWind( weatherData ); tmpstr.append( dataStr ); tmpstr.append( tr( "\nPres: " ) ); getPressure( weatherData ); tmpstr.append( dataStr ); weatherLabel->setText( tmpstr ); tmpstr = "todayweatherplugin/"; getIcon( weatherData ); tmpstr.append( dataStr ); QImage logo1 = Resource::loadImage( tmpstr ); QPixmap pic; pic.convertFromImage( logo1 ); weatherIcon->setPixmap( pic ); } else { weatherLabel->setText( tr( "Current weather data not available." ) ); } } void WeatherPluginWidget::getTemp( const QString &data ) { int value; bool ok; int pos = data.find( QRegExp( "M?[0-9]+/M?[0-9]+" ), 20 ); if ( pos > -1 ) { if ( data.at( pos ) == 'M' ) { value = -1 * data.mid( pos + 1, 2 ).toInt( &ok ); } else { value = data.mid( pos, 2 ).toInt( &ok ); } if ( useMetric ) { dataStr = QString::number( value ); dataStr.append( 'C' ); } else { dataStr = QString::number( ( value * 9 / 5 ) + 32 ); dataStr.append( 'F' ); } } else { dataStr = tr( "n/a" ); } } void WeatherPluginWidget::getWind( const QString &data ) { int value; bool ok; int pos = data.find( QRegExp( "[0-9]*G*[0-9]*KT" ), 20 ); if ( pos > -1 ) { if ( data.mid( pos, 3 ) != "VRB" ) { value = data.mid( pos, 3 ).toInt( &ok ); if ( ( value >= 0 && value < 23 ) || ( value >= 239 && value <= 360 ) ) dataStr = tr("E " ); else if ( value >= 23 && value < 69 ) dataStr = tr( "NE " ); else if ( value >= 69 && value < 113 ) dataStr = tr( "N " ); else if ( value >= 113 && value < 157 ) dataStr = tr( "NW " ); else if ( value >= 157 && value < 203 ) dataStr = tr( "W " ); else if ( value >= 203 && value < 248 ) dataStr = tr( "SW " ); else if ( value >= 248 && value < 294 ) dataStr = tr( "S " ); else if ( value >= 294 && value < 238 ) dataStr = tr( "SE " ); } if ( data.mid( pos + 5, 1) == "G" || data.mid( pos + 5, 1) == "K" ) { value = data.mid( pos + 3, 2 ).toInt( &ok ); } else { value = data.mid( pos + 3, 3 ).toInt( &ok ); } if ( useMetric ) { value = value * 3.6 / 1.94; dataStr.append( QString::number( value ) ); dataStr.append( tr( " KPH" ) ); } else { value = value * 2.24 / 1.94; dataStr.append( QString::number( value ) ); dataStr.append( tr( " MPH" ) ); } } else { dataStr = tr( "n/a" ); } } void WeatherPluginWidget::getPressure( const QString &data ) { float value; bool ok; int pos = data.find( QRegExp( "[AQ][0-9]+" ), 20 ); if ( pos > -1 ) { value = data.mid( pos + 1, 4 ).toFloat( &ok ); if ( useMetric ) { if ( data.mid( pos, 1 ) == "A" ) value *= 33.8639 / 100; dataStr = QString::number( value, 'f', 2 ); dataStr.append( tr( " kPa" ) ); } else { if ( data.mid( pos, 1 ) == "Q" ) value /= 33.8639; else value /= 100; dataStr = QString::number( value, 'f', 2 ); dataStr.append( tr( " Hg" ) ); } } else { dataStr = tr( "n/a" ); } } void WeatherPluginWidget::getIcon(const QString &data ) { dataStr = "psunny"; if ( data.find( "CLR ", 20 ) > -1 || data.find( "SKC ", 20 ) > -1 || data.find( "CAVOK ", 20 ) > -1 ) { dataStr = "sunny"; } else if ( data.find( "SH ", 20 ) > -1 || data.find( "DZ ", 20 ) > -1 || data.find( "RA ", 20 ) > -1 || data.find( "UP ", 20 ) > -1 || data.find( "BR ", 20 ) > -1 ) { dataStr = "shower"; } else if ( data.find( "TS ", 20 ) > -1 ) { dataStr = "tstorm"; } else if ( data.find( "SN ", 20 ) > -1 || data.find( "SG ", 20 ) > -1 ) { dataStr = "snow"; } else if ( data.find( "FZ ", 20 ) > -1 || data.find( "GR ", 20 ) > -1 || data.find( "GS ", 20 ) > -1 || data.find( "PE ", 20 ) > -1 || data.find( "IC ", 20 ) > -1 ) { dataStr = "sleet"; } } void WeatherPluginWidget::dataRetrieved( OProcess *process ) { if ( process->normalExit() ) { displayWeather(); } else { weatherLabel->setText( tr( "Current weather data not available." ) ); } } diff --git a/noncore/todayplugins/weather/weatherpluginwidget.h b/noncore/todayplugins/weather/weatherpluginwidget.h index d2bbd8b..93d0f59 100644 --- a/noncore/todayplugins/weather/weatherpluginwidget.h +++ b/noncore/todayplugins/weather/weatherpluginwidget.h @@ -1,71 +1,71 @@ /* This file is part of the OPIE Project =. .=l. Copyright (c) 2002 Dan Williams <williamsdr@acm.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. */ #ifndef WEATHER_PLUGIN_WIDGET_H #define WEATHER_PLUGIN_WIDGET_H #include <qstring.h> #include <qwidget.h> -class OProcess; +namespace Opie {namespace Core {class Opie::Core::OProcess;}} class QLabel; class QTimer; class WeatherPluginWidget : public QWidget { Q_OBJECT public: WeatherPluginWidget( QWidget *parent, const char *name ); ~WeatherPluginWidget(); private: QString location; QString remoteFile; QString localFile; QString weatherData; QString dataStr; bool useMetric; int frequency; QLabel *weatherLabel; QLabel *weatherIcon; void timerEvent( QTimerEvent * ); void retreiveData(); void displayWeather(); void getTemp( const QString & ); void getWind( const QString & ); void getPressure( const QString & ); void getIcon( const QString & ); private slots: - void dataRetrieved( OProcess * ); + void dataRetrieved( Opie::Core::OProcess * ); }; #endif |