summaryrefslogtreecommitdiff
path: root/noncore/todayplugins/weather
authordrw <drw>2002-12-29 23:36:15 (UTC)
committer drw <drw>2002-12-29 23:36:15 (UTC)
commit46df3c62a8d630fe7e0b578566c05b6b10218296 (patch) (unidiff)
tree45f715da6dbf846aee33aa05f04afbdb58bbcd0c /noncore/todayplugins/weather
parentd1fcfdb7fee76146f89a6ad763349ca5aa79d247 (diff)
downloadopie-46df3c62a8d630fe7e0b578566c05b6b10218296.zip
opie-46df3c62a8d630fe7e0b578566c05b6b10218296.tar.gz
opie-46df3c62a8d630fe7e0b578566c05b6b10218296.tar.bz2
Correctly display message when unable to get weather info & add qwhatsthis to configuration widget.
Diffstat (limited to 'noncore/todayplugins/weather') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/todayplugins/weather/weatherconfig.cpp7
-rw-r--r--noncore/todayplugins/weather/weatherpluginwidget.cpp7
2 files changed, 10 insertions, 4 deletions
diff --git a/noncore/todayplugins/weather/weatherconfig.cpp b/noncore/todayplugins/weather/weatherconfig.cpp
index fe10883..99ee2a0 100644
--- a/noncore/todayplugins/weather/weatherconfig.cpp
+++ b/noncore/todayplugins/weather/weatherconfig.cpp
@@ -53,54 +53,59 @@ WeatherPluginConfig::WeatherPluginConfig( QWidget *parent, const char* name)
53 config.setGroup( "Config" ); 53 config.setGroup( "Config" );
54 54
55 QFontMetrics fm = fontMetrics(); 55 QFontMetrics fm = fontMetrics();
56 int fh = fm.height(); 56 int fh = fm.height();
57 57
58 QGridLayout *layout = new QGridLayout( this ); 58 QGridLayout *layout = new QGridLayout( this );
59 layout->setSpacing( 4 ); 59 layout->setSpacing( 4 );
60 layout->setMargin( 4 ); 60 layout->setMargin( 4 );
61 61
62 QLabel *label = new QLabel( tr( "Enter ICAO location identifier:" ), this ); 62 QLabel *label = new QLabel( tr( "Enter ICAO location identifier:" ), this );
63 label->setMaximumHeight( fh + 3 ); 63 label->setMaximumHeight( fh + 3 );
64 layout->addMultiCellWidget( label, 0, 0, 0, 1 ); 64 layout->addMultiCellWidget( label, 0, 0, 0, 1 );
65 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." ) );
65 66
66 locationEdit = new QLineEdit( config.readEntry( "Location", "" ), this ); 67 locationEdit = new QLineEdit( config.readEntry( "Location", "" ), this );
67 locationEdit->setMaximumHeight( fh + 5 ); 68 locationEdit->setMaximumHeight( fh + 5 );
68 locationEdit->setFocus(); 69 locationEdit->setFocus();
69 layout->addMultiCellWidget( locationEdit, 1, 1, 0, 1 ); 70 layout->addMultiCellWidget( locationEdit, 1, 1, 0, 1 );
71 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." ) );
70 72
71 label = new QLabel( tr( "Visit http://www.nws.noaa.gov/tg/siteloc.shtml to find the nearest location." ), this ); 73 label = new QLabel( tr( "Visit http://www.nws.noaa.gov/tg/siteloc.shtml to find the nearest location." ), this );
72 label->setAlignment( AlignHCenter | WordBreak ); 74 label->setAlignment( AlignHCenter | WordBreak );
73 label->setMaximumHeight( label->height() ); 75 label->setMaximumHeight( label->height() );
74 layout->addMultiCellWidget( label, 2, 2, 0, 1 ); 76 layout->addMultiCellWidget( label, 2, 2, 0, 1 );
75 //layout->addWidget( label, 2, 0 ); 77 //layout->addWidget( label, 2, 0 );
76 78
77 //QPushButton *pb = new QPushButton( Resource::loadPixmap( "copy" ), 79 //QPushButton *pb = new QPushButton( Resource::loadPixmap( "copy" ),
78 //tr( "Copy link" ), this ); 80 //tr( "Copy link" ), this );
79 //connect( pb, SIGNAL( clicked() ), this, SLOT( slotCopyLink() ) ); 81 //connect( pb, SIGNAL( clicked() ), this, SLOT( slotCopyLink() ) );
80 //layout->addWidget( pb, 2, 1 ); 82 //layout->addWidget( pb, 2, 1 );
81 83
82 metricCB = new QCheckBox( tr( "Use metric units" ), this ); 84 metricCB = new QCheckBox( tr( "Use metric units" ), this );
83 metricCB->setMaximumHeight( fh + 5 ); 85 metricCB->setMaximumHeight( fh + 5 );
84 metricCB->setChecked( config.readBoolEntry( "Metric", TRUE ) ); 86 metricCB->setChecked( config.readBoolEntry( "Metric", TRUE ) );
85 layout->addMultiCellWidget( metricCB, 3, 3, 0, 1 ); 87 layout->addMultiCellWidget( metricCB, 3, 3, 0, 1 );
88 QWhatsThis::add( metricCB, tr( "Click here to select type of units displayed." ) );
86 89
87 label = new QLabel( tr( "Update frequency (in minutes):" ), this ); 90 label = new QLabel( tr( "Update frequency (in minutes):" ), this );
88 label->setMaximumHeight( fh + 3 ); 91 label->setMaximumHeight( fh + 3 );
89 layout->addWidget( label, 4, 0 ); 92 layout->addWidget( label, 4, 0 );
93 QWhatsThis::add( label, tr( "Select how often (in minutes) you want the weather to be updated." ) );
90 94
91 timerDelaySB = new QSpinBox( 1, 60, 1, this ); 95 timerDelaySB = new QSpinBox( 1, 60, 1, this );
92 timerDelaySB->setMaximumHeight( fh + 5 ); 96 timerDelaySB->setMaximumHeight( fh + 5 );
93 timerDelaySB->setValue( config.readNumEntry( "Frequency", 5 ) ); 97 timerDelaySB->setValue( config.readNumEntry( "Frequency", 5 ) );
94 layout->addWidget( timerDelaySB, 4, 1 ); 98 layout->addWidget( timerDelaySB, 4, 1 );
99 QWhatsThis::add( timerDelaySB, tr( "Select how often (in minutes) you want the weather to be updated." ) );
95} 100}
96 101
97 102
98void WeatherPluginConfig::writeConfig() 103void WeatherPluginConfig::writeConfig()
99{ 104{
100 Config config( "todayweatherplugin"); 105 Config config( "todayweatherplugin");
101 config.setGroup( "Config" ); 106 config.setGroup( "Config" );
102 107
103 config.writeEntry( "Location", locationEdit->text().upper().stripWhiteSpace() ); 108 config.writeEntry( "Location", locationEdit->text().upper().stripWhiteSpace() );
104 config.writeEntry( "Metric", metricCB->isChecked() ); 109 config.writeEntry( "Metric", metricCB->isChecked() );
105 config.writeEntry( "Frequency", timerDelaySB->value() ); 110 config.writeEntry( "Frequency", timerDelaySB->value() );
106 111
@@ -115,13 +120,13 @@ void WeatherPluginConfig::doLookup()
115{ 120{
116 system( "weather" ); 121 system( "weather" );
117} 122}
118 123
119/* 124/*
120 125
121Doesn't seem to like QPEApplication::clipboard()... 126Doesn't seem to like QPEApplication::clipboard()...
122 127
123void WeatherPluginConfig::slotCopyLink() 128void WeatherPluginConfig::slotCopyLink()
124{ 129{
125 QPEApplication::clipboard()->setText( "http://www.nws.noaa.gov/tg/siteloc.shtml" ); 130 QPEApplication::clipboard()->setText( "http://www.nws.noaa.gov/tg/siteloc.shtml" );
126} 131}
127*/ \ No newline at end of file 132*/
diff --git a/noncore/todayplugins/weather/weatherpluginwidget.cpp b/noncore/todayplugins/weather/weatherpluginwidget.cpp
index f4ea0f2..800fdcb 100644
--- a/noncore/todayplugins/weather/weatherpluginwidget.cpp
+++ b/noncore/todayplugins/weather/weatherpluginwidget.cpp
@@ -105,25 +105,26 @@ void WeatherPluginWidget::retreiveData()
105 OProcess *proc = new OProcess; 105 OProcess *proc = new OProcess;
106 106
107 *proc << "wget" << "-q" << remoteFile << "-O" << localFile; 107 *proc << "wget" << "-q" << remoteFile << "-O" << localFile;
108 connect( proc, SIGNAL( processExited( OProcess * ) ), this, SLOT( dataRetrieved( OProcess * ) ) ); 108 connect( proc, SIGNAL( processExited( OProcess * ) ), this, SLOT( dataRetrieved( OProcess * ) ) );
109 proc->start(); 109 proc->start();
110} 110}
111 111
112void WeatherPluginWidget::displayWeather() 112void WeatherPluginWidget::displayWeather()
113{ 113{
114 weatherData = QString::null; 114 weatherData = QString::null;
115 115
116 QFile file( localFile ); 116 QFile file( localFile );
117 if ( file.open( IO_ReadOnly ) ) 117
118 if ( file.size() > 0 && file.open( IO_ReadOnly ) )
118 { 119 {
119 QTextStream data( &file ); 120 QTextStream data( &file );
120 while ( !data.eof() ) 121 while ( !data.eof() )
121 { 122 {
122 weatherData.append( data.readLine() ); 123 weatherData.append( data.readLine() );
123 } 124 }
124 file.close(); 125 file.close();
125 weatherData = weatherData.simplifyWhiteSpace(); 126 weatherData = weatherData.simplifyWhiteSpace();
126 127
127 QString tmpstr; 128 QString tmpstr;
128 129
129 tmpstr.append( tr( "Temp: " ) ); 130 tmpstr.append( tr( "Temp: " ) );
@@ -141,25 +142,25 @@ void WeatherPluginWidget::displayWeather()
141 weatherLabel->setText( tmpstr ); 142 weatherLabel->setText( tmpstr );
142 143
143 tmpstr = "todayweatherplugin/"; 144 tmpstr = "todayweatherplugin/";
144 getIcon( weatherData ); 145 getIcon( weatherData );
145 tmpstr.append( dataStr ); 146 tmpstr.append( dataStr );
146 QImage logo1 = Resource::loadImage( tmpstr ); 147 QImage logo1 = Resource::loadImage( tmpstr );
147 QPixmap pic; 148 QPixmap pic;
148 pic.convertFromImage( logo1 ); 149 pic.convertFromImage( logo1 );
149 weatherIcon->setPixmap( pic ); 150 weatherIcon->setPixmap( pic );
150 } 151 }
151 else 152 else
152 { 153 {
153 weatherLabel->setText( tr( "Current weather data not available.\nTry looking out the window." ) ); 154 weatherLabel->setText( tr( "Current weather data not available." ) );
154 } 155 }
155} 156}
156 157
157void WeatherPluginWidget::getTemp( const QString &data ) 158void WeatherPluginWidget::getTemp( const QString &data )
158{ 159{
159 int value; 160 int value;
160 bool ok; 161 bool ok;
161 162
162 int pos = data.find( QRegExp( "M?[0-9]+/M?[0-9]+" ), 20 ); 163 int pos = data.find( QRegExp( "M?[0-9]+/M?[0-9]+" ), 20 );
163 if ( pos > -1 ) 164 if ( pos > -1 )
164 { 165 {
165 if ( data.at( pos ) == 'M' ) 166 if ( data.at( pos ) == 'M' )
@@ -310,15 +311,15 @@ void WeatherPluginWidget::getIcon(const QString &data )
310 dataStr = "sleet"; 311 dataStr = "sleet";
311 } 312 }
312} 313}
313 314
314void WeatherPluginWidget::dataRetrieved( OProcess *process ) 315void WeatherPluginWidget::dataRetrieved( OProcess *process )
315{ 316{
316 if ( process->normalExit() ) 317 if ( process->normalExit() )
317 { 318 {
318 displayWeather(); 319 displayWeather();
319 } 320 }
320 else 321 else
321 { 322 {
322 weatherLabel->setText( tr( "Current weather data not available.\nTry looking out the window." ) ); 323 weatherLabel->setText( tr( "Current weather data not available." ) );
323 } 324 }
324} 325}