summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/todayplugins/fortune/fortunepluginwidget.cpp6
-rw-r--r--noncore/todayplugins/fortune/fortunepluginwidget.h6
-rw-r--r--noncore/todayplugins/stockticker/stockticker/inputDialog.cpp4
-rw-r--r--noncore/todayplugins/stockticker/stockticker/inputDialog.h2
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp2
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h4
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktimerpluginwidget.h4
-rw-r--r--noncore/todayplugins/weather/weatherpluginwidget.cpp3
-rw-r--r--noncore/todayplugins/weather/weatherpluginwidget.h4
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,278 +1,280 @@
/*
* 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() {
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