#include #include "weather_icon.h" WeatherIcon::WeatherIcon( int condition, bool night ) { TQString name; iconLoader = new TDEIconLoader("kweather"); switch( condition ) { case Sunny: { name = "weather-clear"; iconName = ( night ? name.append("-night") : name ); return; } case Fog: { name = "weather-fog"; if( night ) { TQString night_icon = name + "-night"; if( iconExists(night_icon) ) name = night_icon; } iconName = name; return; } case Mist: { name = "weather-mist"; if( night ) { TQString night_icon = name + "-night"; if( iconExists(night_icon) ) name = night_icon; } 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 = new TDEIconLoader("kweather"); 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"; TQString test_icon = name + "-day"; if (! iconExists(test_icon) ) { name = "weather-snow-scattered"; } break; } case 3: { name = "weather-snow-ample"; TQString test_icon = name + "-day"; if ( iconExists(test_icon) ) { 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"; TQString test_icon = name + "-day"; if (! iconExists(test_icon) ) { 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()); } }