summaryrefslogtreecommitdiff
authordrw <drw>2004-03-02 16:05:29 (UTC)
committer drw <drw>2004-03-02 16:05:29 (UTC)
commit49bee7ab52b819a07e9b6de4576eda467d632a66 (patch) (side-by-side diff)
tree47ecafeed72340c945e88010aaff0d21a6a34964
parent31f776618b8615074b56dd2d3cdda3002fde671d (diff)
downloadopie-49bee7ab52b819a07e9b6de4576eda467d632a66.zip
opie-49bee7ab52b819a07e9b6de4576eda467d632a66.tar.gz
opie-49bee7ab52b819a07e9b6de4576eda467d632a66.tar.bz2
Today weather plugin: libopie -> libopie2
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/todayplugins/weather/config.in2
-rw-r--r--noncore/todayplugins/weather/opie-today-weatherplugin.control2
-rw-r--r--noncore/todayplugins/weather/weather.pro2
-rw-r--r--noncore/todayplugins/weather/weatherconfig.cpp13
-rw-r--r--noncore/todayplugins/weather/weatherconfig.h2
-rw-r--r--noncore/todayplugins/weather/weatherplugin.h6
-rw-r--r--noncore/todayplugins/weather/weatherpluginimpl.h2
-rw-r--r--noncore/todayplugins/weather/weatherpluginwidget.cpp6
8 files changed, 17 insertions, 18 deletions
diff --git a/noncore/todayplugins/weather/config.in b/noncore/todayplugins/weather/config.in
index 7202983..ae35a59 100644
--- a/noncore/todayplugins/weather/config.in
+++ b/noncore/todayplugins/weather/config.in
@@ -1,4 +1,4 @@
config TODAY_WEATHER
boolean "opie-today-weatherplugin (current weather report)"
default "y"
- depends (LIBQPE || LIBQPE-X11) && LIBOPIE
+ depends (LIBQPE || LIBQPE-X11) && LIBOPIE2CORE && LIBOPIE2PIM
diff --git a/noncore/todayplugins/weather/opie-today-weatherplugin.control b/noncore/todayplugins/weather/opie-today-weatherplugin.control
index 80b7d2b..7dbd315 100644
--- a/noncore/todayplugins/weather/opie-today-weatherplugin.control
+++ b/noncore/todayplugins/weather/opie-today-weatherplugin.control
@@ -1,10 +1,10 @@
Package: opie-today-weatherplugin
Files: plugins/today/libtodayweatherplugin.so* pics/todayweatherplugin
Priority: optional
Section: opie/applications
Maintainer: Dan Williams <drw@handhelds.org>
Architecture: arm
-Depends: libqte2, opie-today
+Depends: libqte2, libopiecore2, libopiepim2, opie-today
Description: Weather plugin for Today
Displays current weather conditions.
Version: $QPE_VERSION$EXTRAVERSION
diff --git a/noncore/todayplugins/weather/weather.pro b/noncore/todayplugins/weather/weather.pro
index 5ad14e1..d1f8edd 100644
--- a/noncore/todayplugins/weather/weather.pro
+++ b/noncore/todayplugins/weather/weather.pro
@@ -1,25 +1,25 @@
TEMPLATE = lib
#CONFIG -= moc
CONFIG += qt plugin release
HEADERS = weatherplugin.h \
weatherpluginimpl.h \
weatherpluginwidget.h \
weatherconfig.h
SOURCES = weatherplugin.cpp \
weatherpluginimpl.cpp \
weatherpluginwidget.cpp \
weatherconfig.cpp
INCLUDEPATH += $(OPIEDIR)/include \
../ ../library
DEPENDPATH += $(OPIEDIR)/include \
../ ../library
-LIBS+= -lqpe -lopie
+LIBS+= -lqpe -lopiecore2 -lopiepim2
DESTDIR = $(OPIEDIR)/plugins/today
TARGET = todayweatherplugin
include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/todayplugins/weather/weatherconfig.cpp b/noncore/todayplugins/weather/weatherconfig.cpp
index 99ee2a0..4663549 100644
--- a/noncore/todayplugins/weather/weatherconfig.cpp
+++ b/noncore/todayplugins/weather/weatherconfig.cpp
@@ -1,132 +1,131 @@
/*
                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 <stdlib.h>
+#include "weatherconfig.h"
+
+#include <qpe/config.h>
+#include <qpe/qpeapplication.h>
+#include <qpe/resource.h>
#include <qcheckbox.h>
#include <qclipboard.h>
#include <qfontmetrics.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qlayout.h>
#include <qpushbutton.h>
#include <qspinbox.h>
#include <qwhatsthis.h>
-#include <qpe/config.h>
-#include <qpe/qpeapplication.h>
-#include <qpe/resource.h>
-#include <opie/todayconfigwidget.h>
-
-#include "weatherconfig.h"
+#include <stdlib.h>
WeatherPluginConfig::WeatherPluginConfig( QWidget *parent, const char* name)
: TodayConfigWidget(parent, name )
{
Config config( "todayweatherplugin");
config.setGroup( "Config" );
QFontMetrics fm = fontMetrics();
int fh = fm.height();
QGridLayout *layout = new QGridLayout( this );
layout->setSpacing( 4 );
layout->setMargin( 4 );
QLabel *label = new QLabel( tr( "Enter ICAO location identifier:" ), this );
label->setMaximumHeight( fh + 3 );
layout->addMultiCellWidget( label, 0, 0, 0, 1 );
QWhatsThis::add( label, tr( "Enter the 4 letter code for the desired location here. See http://www.nws.noaa.gov/tg/siteloc.shtml to find a location near you." ) );
locationEdit = new QLineEdit( config.readEntry( "Location", "" ), this );
locationEdit->setMaximumHeight( fh + 5 );
locationEdit->setFocus();
layout->addMultiCellWidget( locationEdit, 1, 1, 0, 1 );
QWhatsThis::add( locationEdit, tr( "Enter the 4 letter code for the desired location here. See http://www.nws.noaa.gov/tg/siteloc.shtml to find a location near you." ) );
label = new QLabel( tr( "Visit http://www.nws.noaa.gov/tg/siteloc.shtml to find the nearest location." ), this );
label->setAlignment( AlignHCenter | WordBreak );
label->setMaximumHeight( label->height() );
layout->addMultiCellWidget( label, 2, 2, 0, 1 );
//layout->addWidget( label, 2, 0 );
//QPushButton *pb = new QPushButton( Resource::loadPixmap( "copy" ),
// tr( "Copy link" ), this );
//connect( pb, SIGNAL( clicked() ), this, SLOT( slotCopyLink() ) );
//layout->addWidget( pb, 2, 1 );
metricCB = new QCheckBox( tr( "Use metric units" ), this );
metricCB->setMaximumHeight( fh + 5 );
metricCB->setChecked( config.readBoolEntry( "Metric", TRUE ) );
layout->addMultiCellWidget( metricCB, 3, 3, 0, 1 );
QWhatsThis::add( metricCB, tr( "Click here to select type of units displayed." ) );
label = new QLabel( tr( "Update frequency (in minutes):" ), this );
label->setMaximumHeight( fh + 3 );
layout->addWidget( label, 4, 0 );
QWhatsThis::add( label, tr( "Select how often (in minutes) you want the weather to be updated." ) );
timerDelaySB = new QSpinBox( 1, 60, 1, this );
timerDelaySB->setMaximumHeight( fh + 5 );
timerDelaySB->setValue( config.readNumEntry( "Frequency", 5 ) );
layout->addWidget( timerDelaySB, 4, 1 );
QWhatsThis::add( timerDelaySB, tr( "Select how often (in minutes) you want the weather to be updated." ) );
}
void WeatherPluginConfig::writeConfig()
{
Config config( "todayweatherplugin");
config.setGroup( "Config" );
config.writeEntry( "Location", locationEdit->text().upper().stripWhiteSpace() );
config.writeEntry( "Metric", metricCB->isChecked() );
config.writeEntry( "Frequency", timerDelaySB->value() );
config.write();
}
WeatherPluginConfig::~WeatherPluginConfig()
{
}
void WeatherPluginConfig::doLookup()
{
system( "weather" );
}
/*
Doesn't seem to like QPEApplication::clipboard()...
void WeatherPluginConfig::slotCopyLink()
{
QPEApplication::clipboard()->setText( "http://www.nws.noaa.gov/tg/siteloc.shtml" );
}
*/
diff --git a/noncore/todayplugins/weather/weatherconfig.h b/noncore/todayplugins/weather/weatherconfig.h
index d9ffec2..1780c7f 100644
--- a/noncore/todayplugins/weather/weatherconfig.h
+++ b/noncore/todayplugins/weather/weatherconfig.h
@@ -1,60 +1,60 @@
/*
                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_CONFIG_H
#define WEATHER_PLUGIN_CONFIG_H
#include <qstring.h>
#include <qwidget.h>
-#include <opie/todayconfigwidget.h>
+#include <opie2/todayconfigwidget.h>
class QCheckBox;
class QLineEdit;
class QPushButton;
class QSpinBox;
class WeatherPluginConfig : public TodayConfigWidget
{
Q_OBJECT
public:
WeatherPluginConfig( QWidget *parent, const char *name );
~WeatherPluginConfig();
void writeConfig();
private:
QLineEdit *locationEdit;
QCheckBox *metricCB;
QSpinBox *timerDelaySB;
private slots:
void doLookup();
//void slotCopyLink();
};
#endif
diff --git a/noncore/todayplugins/weather/weatherplugin.h b/noncore/todayplugins/weather/weatherplugin.h
index 480d220..73e7104 100644
--- a/noncore/todayplugins/weather/weatherplugin.h
+++ b/noncore/todayplugins/weather/weatherplugin.h
@@ -1,54 +1,54 @@
/*
                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_H
#define WEATHER_PLUGIN_H
+#include <opie2/todayplugininterface.h>
+#include <opie2/todayconfigwidget.h>
+
#include <qstring.h>
#include <qwidget.h>
-#include <opie/todayplugininterface.h>
-#include <opie/todayconfigwidget.h>
-
class WeatherPlugin : public TodayPluginObject
{
public:
WeatherPlugin();
~WeatherPlugin();
QString pluginName() const;
double versionNumber() const;
QString pixmapNameWidget() const;
QWidget *widget(QWidget *);
QString pixmapNameConfig() const;
QString appName() const;
bool excludeFromRefresh() const;
TodayConfigWidget *configWidget(QWidget *);
};
#endif
diff --git a/noncore/todayplugins/weather/weatherpluginimpl.h b/noncore/todayplugins/weather/weatherpluginimpl.h
index eaaae1d..d1a7400 100644
--- a/noncore/todayplugins/weather/weatherpluginimpl.h
+++ b/noncore/todayplugins/weather/weatherpluginimpl.h
@@ -1,51 +1,51 @@
/*
                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_IMPL_H
#define WEATHER_PLUGIN_IMPL_H
-#include <opie/todayplugininterface.h>
+#include <opie2/todayplugininterface.h>
class WeatherPlugin;
class WeatherPluginImpl : public TodayPluginInterface
{
public:
WeatherPluginImpl();
virtual ~WeatherPluginImpl();
QRESULT queryInterface( const QUuid &, QUnknownInterface ** );
Q_REFCOUNT
virtual TodayPluginObject *guiPart();
private:
WeatherPlugin *weatherPlugin;
};
#endif
diff --git a/noncore/todayplugins/weather/weatherpluginwidget.cpp b/noncore/todayplugins/weather/weatherpluginwidget.cpp
index 15d1c6e..ad99a43 100644
--- a/noncore/todayplugins/weather/weatherpluginwidget.cpp
+++ b/noncore/todayplugins/weather/weatherpluginwidget.cpp
@@ -1,213 +1,213 @@
/*
                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 <opie/oprocess.h>
+#include <opie2/oprocess.h>
#include <qpe/config.h>
#include <qpe/resource.h>
#include "weatherpluginwidget.h"
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*) ) );
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 " );