summaryrefslogtreecommitdiff
authordrw <drw>2005-02-28 19:43:45 (UTC)
committer drw <drw>2005-02-28 19:43:45 (UTC)
commit2daad674b92c1fd94b0260a15f0baa732e5db20e (patch) (side-by-side diff)
tree37cb5ec9910b1a0ebd00928070e7b9b166e3aebc
parent772bc43173a3155ef08c769f1d01ef0ec7b31bcd (diff)
downloadopie-2daad674b92c1fd94b0260a15f0baa732e5db20e.zip
opie-2daad674b92c1fd94b0260a15f0baa732e5db20e.tar.gz
opie-2daad674b92c1fd94b0260a15f0baa732e5db20e.tar.bz2
Scale weather icons based on AppLnk::smallIconSize
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/todayplugins/weather/weatherpluginwidget.cpp75
1 files changed, 37 insertions, 38 deletions
diff --git a/noncore/todayplugins/weather/weatherpluginwidget.cpp b/noncore/todayplugins/weather/weatherpluginwidget.cpp
index 8e00c36..8c41189 100644
--- a/noncore/todayplugins/weather/weatherpluginwidget.cpp
+++ b/noncore/todayplugins/weather/weatherpluginwidget.cpp
@@ -1,183 +1,182 @@
/*
-� � � � � � � � This file is part of the OPIE Project
+ 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.,
+ .=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 <opie2/oprocess.h>
+
+#include <qpe/applnk.h>
+#include <qpe/config.h>
+#include <qpe/resource.h>
+
#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 );
+ QHBoxLayout *layout = new QHBoxLayout( this, 1, 2 );
+ layout->setAutoAdd( true );
weatherIcon = new QLabel( this );
- weatherIcon->setMaximumWidth( 32 );
- QImage logo1 = Resource::loadImage( "Clock" );
- QPixmap pic;
- pic.convertFromImage( logo1 );
+ QPixmap pic;
+ pic.convertFromImage( Resource::loadImage( "Clock" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
weatherIcon->setPixmap( pic );
weatherLabel = new QLabel( tr( "Retreiving current weather information." ), this );
weatherLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ) );
+ weatherIcon->setFixedSize( weatherLabel->height(), weatherLabel->height() );
+
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 );
+ 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(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 );
+ QPixmap pic;
+ pic.convertFromImage( Resource::loadImage( tmpstr ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
+ 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' );