summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerlib.pro2
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp183
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h16
3 files changed, 136 insertions, 65 deletions
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerlib.pro b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerlib.pro
index 4b7b177..13c846b 100644
--- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerlib.pro
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerlib.pro
@@ -21,5 +21,5 @@ DEPENDPATH += $(OPIEDIR)/include \
../ ../library
-LIBS+= -lqpe -lopie
+LIBS+= -lqpe -lopie -lpthread
TMAKE_CFLAGS += -D__UNIX__
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp
index 8830472..572a720 100644
--- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp
@@ -15,4 +15,5 @@
***************************************************************************/
+#include <qsocket.h>
#include <qvaluelist.h>
#include <qtl.h>
@@ -24,11 +25,12 @@
#include <qregexp.h>
#include <qtimer.h>
+#include <qmessagebox.h>
#include <qpe/config.h>
#include <qpe/timestring.h>
#include <qpe/qcopenvelope_qws.h>
+#include <qpe/network.h>
#include <opie/oticker.h>
-//#include "ticker.h"
extern "C" {
@@ -36,45 +38,17 @@ extern "C" {
}
-#include "stocktickerpluginwidget.h"
-
-StockTickerPluginWidget::StockTickerPluginWidget( QWidget *parent, const char* name)
- : QWidget(parent, name ) {
- init();
- startTimer(1000);
-}
-
-StockTickerPluginWidget::~StockTickerPluginWidget() {
-}
-
-void StockTickerPluginWidget::init() {
-
- QHBoxLayout* layout = new QHBoxLayout( this );
-
- stocktickerTicker = new OTicker(this);
- stocktickerTicker->setMinimumHeight(15);
- connect( stocktickerTicker, SIGNAL( mousePressed()), this, SLOT( doStocks() ));
+#include <pthread.h>
- layout->addWidget( stocktickerTicker);
-
-}
-
-void StockTickerPluginWidget::doStocks() {
- Config cfg( "stockticker");
- cfg.setGroup( "Symbols" );
- QString symbollist;
- symbollist = cfg.readEntry("Symbols", "");
- symbollist.replace(QRegExp(" "),"+");//seperated by +
-// qDebug(symbollist);
+#include "stocktickerpluginwidget.h"
- getStocks( symbollist.latin1());
+QString output;
+OTicker *stocktickerTicker;
- stocktickerTicker->setText( output );
-}
-
-void StockTickerPluginWidget::getStocks( const char *blah) {
+void getStocks( const QString *blah) {
+// stocktickerTicker->setText( "Downloading stock data.");
stock *stocks_quotes=NULL;
stock *stocks_tmp;
-
+ qDebug("%s", blah->latin1());
QString tempString;
output = "";
@@ -102,6 +76,27 @@ void StockTickerPluginWidget::getStocks( const char *blah) {
dovolumeCheck=cfg.readBoolEntry("volumeCheck",1);
- DefProxy();
- char *stock_liste = (char *)blah;
+// 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 tempString;
+ tempString.sprintf("Proxy error (%d)\n", error);
+ output = tempString;
+ return;
+// exit(1);
+ }
+ }
+ }
+ char *stock_liste = (char *)blah->latin1();
+// char *stock_liste = (char *)blah;
/* Get the stocks and process errors */
error = get_stocks( stock_liste, &stocks_quotes);
@@ -218,31 +213,91 @@ void StockTickerPluginWidget::getStocks( const char *blah) {
/* frees stocks */
free_stocks(stocks_quotes);
+ stocktickerTicker->setText( output );
}
-void StockTickerPluginWidget::DefProxy(void) {
- char *proxy;
- libstocks_return_code error;
+StockTickerPluginWidget::StockTickerPluginWidget( QWidget *parent, const char* name)
+ : QWidget(parent, name ) {
+ init();
+ startTimer(1000);
+// checkConnection();
+}
- /* 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 tempString;
- tempString.sprintf("Proxy error (%d)\n", error);
- output = tempString;
- return;
-// exit(1);
+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" );
+ QString symbollist;
+ symbollist = cfg.readEntry("Symbols", "");
+ symbollist.replace(QRegExp(" "),"+");//seperated by +
+
+// qDebug(symbollist);
+ if (!symbollist.isEmpty()) {
+ pthread_t thread1;
+ pthread_create(&thread1,NULL, (void * (*)(void *))getStocks, &symbollist);
}
+// pthread_join(thread1,NULL);
+// getStocks( symbollist.latin1() );
+}
+
+void StockTickerPluginWidget::DefProxy(void) {
+// 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 tempString;
+// tempString.sprintf("Proxy error (%d)\n", error);
+// output = tempString;
+// return;
+// // exit(1);
+// }
+// }
}
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");
doStocks();
+
Config cfg( "stockticker");
cfg.setGroup("Timer");
@@ -251,4 +306,24 @@ void StockTickerPluginWidget::timerEvent( QTimerEvent *e ) {
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 26472fa..c8de806 100644
--- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h
@@ -19,4 +19,5 @@
#define STOCKTICKERL_PLUGIN_WIDGET_H
+#include <qsocket.h>
#include <qstring.h>
#include <qwidget.h>
@@ -34,10 +35,4 @@
#include <string.h>
-//#include "ticker.h"
-
-/* extern "C" { */
-/* #include "stocks.h" */
-/* } */
-
class QTimer;
@@ -49,14 +44,15 @@ public:
StockTickerPluginWidget( QWidget *parent, const char *name );
~StockTickerPluginWidget();
- QString output;
protected slots:
void doStocks();
-
+ void isConnected();
+ void socketError(int);
+ void checkConnection();
private:
- OTicker *stocktickerTicker;
+ bool wasError;
+ QSocket *Sock;
void timerEvent( QTimerEvent * );
void init();
- void getStocks( const char *stock_liste);
void DefProxy(void);
int timerDelay;