4 files changed, 40 insertions, 6 deletions
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp index 11b615b..fdabd5c 100644 --- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp +++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp @@ -111,71 +111,101 @@ StocktickerPluginConfig::StocktickerPluginConfig( QWidget *parent, const char* variationCheck= new QCheckBox ( "Variation", this ); variationCheck->setChecked( cfg.readBoolEntry("variationCheck",1)); layout->addMultiCellWidget( variationCheck, 5, 5, 0, 0 ); QWhatsThis::add(variationCheck, tr("Toggles daily variation of price field")); volumeCheck= new QCheckBox ( "Volume", this ); volumeCheck->setChecked( cfg.readBoolEntry("volumeCheck",1)); layout->addMultiCellWidget( volumeCheck , 5, 5, 1, 1); QWhatsThis::add(volumeCheck, tr("Toggles volume of trading field")); timerDelaySpin = new QSpinBox( this, "timer spin" ); QWhatsThis::add( timerDelaySpin , tr( "How often stocks prices should be looked up. In minutes" ) ); timerDelaySpin->setMaxValue( 60); cfg.setGroup("Timer"); timerDelaySpin->setValue( cfg.readNumEntry("Delay",0)); layout->addMultiCellWidget( timerDelaySpin , 6, 6, 0, 0); QLabel *label2; label2 = new QLabel(this); label2->setText( tr("Minutes between lookups.")); label2->setMaximumHeight(60); layout->addMultiCellWidget( label2, 6, 6, 1, 2); + scrollSpeed = new QSpinBox( this, "Scrollspin" ); + QWhatsThis::add( timerDelaySpin , tr( "Speed of scrolling action, in milliseconds" ) ); + scrollSpeed->setMaxValue( 1000); + scrollSpeed->setSteps(50,50); + cfg.setGroup("Timer"); + scrollSpeed->setValue( cfg.readNumEntry("ScrollSpeed",50)); + layout->addMultiCellWidget( scrollSpeed , 7, 7, 0, 0); + + QLabel *label3; + label3 = new QLabel(this); + label3->setText( tr("Scroll Speed, in milliseconds")); + label3->setMaximumHeight(60); + layout->addMultiCellWidget( label3, 7, 7, 1, 2); + + scrollLength = new QSpinBox( this, "ScrollLength" ); + QWhatsThis::add( timerDelaySpin , tr( "Length of scrolling" ) ); + scrollLength->setMaxValue( 10); +// scrollLength->setSteps(5,5); + cfg.setGroup("Timer"); + scrollLength->setValue( cfg.readNumEntry("ScrollLength",1)); + layout->addMultiCellWidget( scrollLength , 8, 8, 0, 0); + + QLabel *label4; + label4 = new QLabel(this); + label4->setText( tr("Scroll Length")); + label4->setMaximumHeight(60); + layout->addMultiCellWidget( label4, 8, 8, 1, 2); + // lookupButton = new QPushButton(this, "LookupButton"); // lookupButton->setText(tr("Symbol Lookup")); // connect(lookupButton,SIGNAL(clicked()),SLOT( doLookup())); // layout->addMultiCellWidget( lookupButton , 9, 9, 0, 0); QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Expanding ); - layout->addItem( spacer, 8, 0 ); + layout->addItem( spacer, 9, 0 ); } void StocktickerPluginConfig::writeConfig() { Config cfg( "stockticker"); cfg.setGroup( "Symbols" ); QString outText = text().upper(); outText.stripWhiteSpace(); cfg.writeEntry("Symbols", outText ); cfg.setGroup( "Fields" ); cfg.writeEntry("timeCheck",timeCheck->isChecked()); cfg.writeEntry("dateCheck",dateCheck->isChecked()); cfg.writeEntry("symbolCheck",symbolCheck->isChecked()); cfg.writeEntry("nameCheck",nameCheck->isChecked()); cfg.writeEntry("currentPriceCheck",currentPriceCheck->isChecked()); cfg.writeEntry("lastPriceCheck",lastPriceCheck->isChecked()); cfg.writeEntry("openPriceCheck",openPriceCheck->isChecked()); cfg.writeEntry("minPriceCheck",minPriceCheck->isChecked()); cfg.writeEntry("maxPriceCheck",maxPriceCheck->isChecked()); cfg.writeEntry("variationCheck",variationCheck->isChecked()); cfg.writeEntry("volumeCheck",volumeCheck->isChecked()); cfg.setGroup("Timer"); cfg.writeEntry("Delay",timerDelaySpin->value()); + cfg.writeEntry("ScrollLength",scrollLength->value()); + cfg.writeEntry("ScrollSpeed",scrollSpeed->value()); cfg.write(); } StocktickerPluginConfig::~StocktickerPluginConfig() { } QString StocktickerPluginConfig::text() const { return LineEdit1->text(); } void StocktickerPluginConfig::doLookup() { system("stockticker"); } diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h index 33aed86..2b67a8b 100644 --- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h +++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h @@ -17,30 +17,30 @@ #ifndef STOCKTICKER_PLUGIN_CONFIG_H #define STOCKTICKER_PLUGIN_CONFIG_H #include <qwidget.h> #include <opie/todayconfigwidget.h> #include <qstring.h> class QLineEdit; class QCheckBox; class QPushButton; class QCheckBox; class QSpinBox; class StocktickerPluginConfig : public TodayConfigWidget { //Q_OBJECT public: StocktickerPluginConfig( QWidget *parent, const char *name ); ~StocktickerPluginConfig(); QString text() const; void writeConfig(); private: QLineEdit* LineEdit1; QCheckBox *timeCheck, *dateCheck, *symbolCheck, *nameCheck, *currentPriceCheck, *lastPriceCheck, *openPriceCheck, *minPriceCheck, *maxPriceCheck, *variationCheck, *volumeCheck; QPushButton *lookupButton; - QSpinBox *timerDelaySpin; + QSpinBox *timerDelaySpin, *scrollSpeed, *scrollLength; private slots: void doLookup(); }; #endif diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp index 18c9e51..0d90d0f 100644 --- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp +++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp @@ -191,86 +191,89 @@ void getStocks( const QString *blah) { 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); } /* frees stocks */ free_stocks(stocks_quotes); - stocktickerTicker->setText( output ); + stocktickerTicker->setText( output.latin1() ); } 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 + -// qDebug(symbollist); + cfg.setGroup("Timer"); + stocktickerTicker->setUpdateTime( cfg.readNumEntry("ScrollSpeed",50)); + stocktickerTicker->setScrollLength( cfg.readNumEntry("ScrollLength",10)); + if (!symbollist.isEmpty()) { pthread_t thread1; pthread_create(&thread1,NULL, (void * (*)(void *))getStocks, &symbollist); } -// pthread_join(thread1,NULL); -// getStocks( symbollist.latin1() ); } 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(); // } } diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h index 8776bff..1189bf5 100644 --- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h +++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.h @@ -29,34 +29,35 @@ #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 |