#include #include "weather_icon.h" WeatherIcon::WeatherIcon( int condition, bool night ) : iconLoader() { TQString name; switch( condition ) { case Sunny: { name = "weather-clear"; iconName = ( night ? name.append("-night") : name ); return; } case Fog: { name = "weather-fog"; if( night && iconExists( TQString(name.latin1()).append("-night")) ) { name.append("-night"); } iconName = name; return; } case Mist: { name = "weather-mist"; if( night && iconExists( TQString(name.latin1()).append("-night")) ) { name.append("-night"); } iconName = name; return; } case Overcast: { iconName = "weather-overcast"; return; } case Hail: { iconName = "weather-freezing-rain"; return; } case LightRain: { iconName = "weather-showers-scattered"; return; } case Sleet: { iconName = "weather-snow-rain"; return; } } } WeatherIcon::WeatherIcon( int condition, bool night, unsigned int strength ) : iconLoader() { TQString name; switch ( condition ) { case Cloudy: { switch ( strength ) { case 1: { name = "weather-few-clouds"; break; } case 2: { name = "weather-moderate-clouds"; if (! iconExists(name) ) { name = "weather-few-clouds"; } break; } case 3: { name = "weather-clouds"; break; } case 4: { name = "weather-ample-clouds"; if (! iconExists(name) ) { name = "weather-clouds"; } break; } case 5: { iconName = "weather-many-clouds"; return; } default: { iconName = "weather-clouds"; return; } } iconName = name.append( night ? "-night" : "" ); return; } case Showers: { switch ( strength ) { case 1: { name = "weather-showers-scattered"; break; } case 2: { name = "weather-showers"; break; } case 3: default: { iconName = "weather-showers"; return; } } iconName = name.append( night ? "-night" : "-day" ); return; } case Snow: { switch( strength ) { case 1: { name = "weather-snow-scattered"; break; } case 2: { name = "weather-snow-moderate"; if (! iconExists( TQString(name.latin1()).append("-day")) ) { name = "weather-snow-scattered"; } break; } case 3: { name = "weather-snow-ample"; if ( iconExists( TQString(name.latin1()).append("-day") ) ) break; } case 4: { iconName = "weather-snow-scattered"; return; } case 5: default: { iconName = "weather-snow"; return; } } iconName = name.append( night ? "-night" : "-day" ); return; } case Thunderstorm: switch ( strength ) { case 1: { name = "weather-storm"; break; } case 2: { name = "weather-storm-moderate"; if (! iconExists( TQString(name.latin1()).append("-day")) ) { name = "weather-storm"; } break; } case 3: default: { iconName = "weather-storm"; return; } } iconName = name.append( night ? "-night" : "-day" ); return; } } WeatherIcon::~WeatherIcon() {} bool WeatherIcon::iconExists( TQString& icon, bool inTheme ) { if ( inTheme ) { return iconLoader->theme()->iconPath(icon, TDEIcon::SizeMedium, TDEIcon::MatchExact).isValid(); } else { return !(iconLoader->iconPath(icon, TDEIcon::SizeMedium, true).isNull()); } }