diff options
Diffstat (limited to 'kweather/dockwidget.cpp')
-rw-r--r-- | kweather/dockwidget.cpp | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/kweather/dockwidget.cpp b/kweather/dockwidget.cpp index 1d423a5..744ab91 100644 --- a/kweather/dockwidget.cpp +++ b/kweather/dockwidget.cpp @@ -29,6 +29,7 @@ #include <kdebug.h> #include <tdeglobalsettings.h> #include <tdelocale.h> +#include <kiconloader.h> dockwidget::dockwidget(const TQString &location, TQWidget *parent, const char *name) : TQWidget(parent,name), m_locationCode( location ), m_orientation(Qt::Horizontal ) @@ -39,6 +40,7 @@ dockwidget::dockwidget(const TQString &location, TQWidget *parent, connect(m_button, TQT_SIGNAL( clicked() ), TQT_SIGNAL( buttonClicked() )); m_weatherService = new WeatherService_stub( "KWeatherService", "WeatherService" ); + updateIcon(); } dockwidget::~dockwidget() @@ -101,7 +103,7 @@ void dockwidget::showWeather() m_weatherService->stationName( m_locationCode ) + " (" + m_weatherService->stationCountry( m_locationCode ) + ")</nobr></center></h3>"; - if ( m_weatherService->currentIconString( m_locationCode ) == "weather-none-available" ) // no data + if ( !m_weatherService->weatherDataAvailable(m_locationCode) ) // no data tip += "<center><nobr>" + i18n("The network is currently offline...") + "</nobr></center>"; tip += TQString("<br><table>" @@ -143,8 +145,7 @@ void dockwidget::showWeather() tip += "</qt>"; - // On null or empty location code, or if the station needs maintenance, this will return the dunno icon. - TQPixmap icon = m_weatherService->icon( m_locationCode ); + updateIcon(); TQToolTip::remove(this); TQToolTip::add(this, tip); @@ -158,7 +159,6 @@ void dockwidget::showWeather() m_lblWind->setText(wind); m_lblPres->setText(pressure); - m_button->setPixmap( icon ); } void dockwidget::initDock() @@ -204,13 +204,13 @@ void dockwidget::resizeView( const TQSize &size ) kdDebug(12004) << "Changing to size " << size << endl; resize(size); - if ( m_orientation ==Qt::Horizontal ) // Kicker in horizontal mode + if ( m_orientation == TQt::Horizontal ) // Kicker in horizontal mode { int h = size.height(); if ( m_mode == ShowAll ) { - if ( h <= 128 ) // left to right layout + if ( h <= TDEIcon::SizeEnormous ) // left to right layout { static_cast<TQBoxLayout*>(layout())->setDirection(TQBoxLayout::LeftToRight); m_lblTemp->setAlignment(TQt::AlignAuto | TQt::AlignVCenter); @@ -221,7 +221,7 @@ void dockwidget::resizeView( const TQSize &size ) { static_cast<TQBoxLayout*>(layout())->setDirection(TQBoxLayout::TopToBottom); TQFontMetrics fm(m_font); - h = 128 - (3 * fm.height()); // 3 lines of text below the button + h = TDEIcon::SizeEnormous - (3 * fm.height()); // 3 lines of text below the button m_lblTemp->setAlignment(TQt::AlignCenter); m_lblWind->setAlignment(TQt::AlignCenter); m_lblPres->setAlignment(TQt::AlignCenter); @@ -239,14 +239,14 @@ void dockwidget::resizeView( const TQSize &size ) { static_cast<TQBoxLayout*>(layout())->setDirection(TQBoxLayout::TopToBottom); TQFontMetrics fm(m_font); - h = TQMIN(128, h) - fm.height(); + h = TQMIN(TDEIcon::SizeEnormous, h) - fm.height(); m_lblTemp->setAlignment(TQt::AlignCenter); } m_button->setFixedSize(h, h); } else { - h = TQMIN(h, 128); + h = TQMIN(h, TDEIcon::SizeEnormous); m_button->setFixedSize(h, h); } } @@ -257,7 +257,7 @@ void dockwidget::resizeView( const TQSize &size ) if ( m_mode == ShowAll ) { - if ( w <= 128 ) // top to bottom + if ( w <= TDEIcon::SizeEnormous ) // top to bottom { static_cast<TQBoxLayout*>(layout())->setDirection(TQBoxLayout::TopToBottom); m_lblTemp->setAlignment(TQt::AlignCenter); @@ -279,7 +279,7 @@ void dockwidget::resizeView( const TQSize &size ) } else if ( m_mode == ShowTempOnly ) { - if ( w <= 128 ) // top to bottom + if ( w <= TDEIcon::SizeEnormous ) // top to bottom { static_cast<TQBoxLayout*>(layout())->setDirection(TQBoxLayout::TopToBottom); m_lblTemp->setAlignment(TQt::AlignCenter); @@ -297,7 +297,7 @@ void dockwidget::resizeView( const TQSize &size ) } else { - w = TQMIN(w, 128); + w = TQMIN(w, TDEIcon::SizeEnormous); m_button->setFixedSize(w, w); } } @@ -310,7 +310,7 @@ int dockwidget::widthForHeight(int h) if ( m_mode == ShowAll ) { - if ( h <= 128 ) // left to right layout + if ( h <= TDEIcon::SizeEnormous ) // left to right layout { int pixelSize = h/3 - 3; pixelSize = TQMIN(pixelSize, fi.pixelSize()); // don't make it too large @@ -330,7 +330,7 @@ int dockwidget::widthForHeight(int h) } TQFontMetrics fm(m_font); // size of icon - h = 128 - (3 * fm.height()); // 3 lines of text below the button + h = TDEIcon::SizeEnormous - (3 * fm.height()); // 3 lines of text below the button w = TQMAX(fm.width(m_lblWind->text()), fm.width(m_lblPres->text())) + 1; w = TQMAX(h, w); // at least width of square icon } @@ -357,17 +357,18 @@ int dockwidget::widthForHeight(int h) } TQFontMetrics fm(m_font); // size of icon - h = TQMIN(128, h) - fm.height(); + h = TQMIN(TDEIcon::SizeEnormous, h) - fm.height(); w = fm.width(m_lblTemp->text()) + 1; w = TQMAX(h, w); // at least width of square icon } } else { - w = TQMIN(128, h); // don't make it too large + w = TQMIN(TDEIcon::SizeEnormous, h); // don't make it too large } updateFont(); + updateIcon(); return w + 4; } @@ -380,7 +381,7 @@ int dockwidget::heightForWidth( int w ) TQFontMetrics fmg(TDEGlobalSettings::generalFont()); int maxWidth = fmg.width("888 km/h NNWW"); // a good approximation - if ( w <= 128 ) // top to bottom + if ( w <= TDEIcon::SizeEnormous ) // top to bottom { if ( maxWidth <= w ) // enough space to use global font { @@ -415,7 +416,7 @@ int dockwidget::heightForWidth( int w ) TQFontMetrics fmg(TDEGlobalSettings::generalFont()); int maxWidth = fmg.width("888.88 CC"); // a good approximation - if ( w <= 128 ) // top to bottom + if ( w <= TDEIcon::SizeEnormous ) // top to bottom { if ( maxWidth <= w ) // enough space to use global font { @@ -446,10 +447,11 @@ int dockwidget::heightForWidth( int w ) } else { - h = TQMIN(128, w); // don't make it too large + h = TQMIN(TDEIcon::SizeEnormous, w); // don't make it too large } updateFont(); + updateIcon(); return h; } @@ -462,4 +464,11 @@ void dockwidget::updateFont() m_lblPres->setFont(m_font); } +void dockwidget::updateIcon() +{ + // On null or empty location code, or if the station needs maintenance, this will return the dunno icon. + TQPixmap icon = m_weatherService->icon( m_locationCode, m_button->height() ); + m_button->setPixmap( icon ); +} + #include "dockwidget.moc" |