diff options
Diffstat (limited to 'xfce-extra/xfce4-weather-plugin/files/xfce4-weather-plugin-0.8.3-Make-plugin-ready-for-met.no-locationforecast-1.2-AP.patch')
-rw-r--r-- | xfce-extra/xfce4-weather-plugin/files/xfce4-weather-plugin-0.8.3-Make-plugin-ready-for-met.no-locationforecast-1.2-AP.patch | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/xfce-extra/xfce4-weather-plugin/files/xfce4-weather-plugin-0.8.3-Make-plugin-ready-for-met.no-locationforecast-1.2-AP.patch b/xfce-extra/xfce4-weather-plugin/files/xfce4-weather-plugin-0.8.3-Make-plugin-ready-for-met.no-locationforecast-1.2-AP.patch deleted file mode 100644 index a19241c1ef2..00000000000 --- a/xfce-extra/xfce4-weather-plugin/files/xfce4-weather-plugin-0.8.3-Make-plugin-ready-for-met.no-locationforecast-1.2-AP.patch +++ /dev/null @@ -1,164 +0,0 @@ -http://bugs.gentoo.org/524850 - -From a17ed6d248135cedc645b0481c4ad01687386ed2 Mon Sep 17 00:00:00 2001 -From: Harald Judt <h.judt@gmx.at> -Date: Wed, 28 May 2014 20:08:02 +0200 -Subject: [PATCH] Make plugin ready for met.no locationforecast-1.2 API (bug - #10916). - -http://api.yr.no/weatherapi/locationforecastlts/1.1/documentation#version_1_2___2014_05_20 - -The updated API version uses CamelCase symbol names instead of UPPERCASE -ones and has added some new names (like 'Drizzle'), which unfortunately -have not been documented (yet?). - -What's more, the typo 'celcius' has been replaced by the fixed 'celsius', -but luckily the plugin will not be affected by that change. - -What's a bit more unfortunate is that the existing icon themes do not -cover the new symbol names, so one would have to create quite a lot of -new icons. Also, new translations would have to be added for the symbols, -and maybe existing ones would have to be altered. To prevent this, we're -simply going to map the new symbols to existing ones as good as possible. -This should be good enough for the time being. - -(cherry picked from commit 1ff71669644a0b824a8a5ba9b40771ee4fb8a76b) ---- - panel-plugin/weather-parsers.c | 3 +- - panel-plugin/weather-translate.c | 70 +++++++++++++++++++++++++++++++++++++++- - panel-plugin/weather-translate.h | 2 ++ - 3 files changed, 73 insertions(+), 2 deletions(-) - -diff --git a/panel-plugin/weather-parsers.c b/panel-plugin/weather-parsers.c -index c380130..2c90c11 100644 ---- a/panel-plugin/weather-parsers.c -+++ b/panel-plugin/weather-parsers.c -@@ -28,6 +28,7 @@ - #define _XOPEN_SOURCE - #define _XOPEN_SOURCE_EXTENDED 1 - #include "weather-parsers.h" -+#include "weather-translate.h" - #include "weather-debug.h" - - #include <time.h> -@@ -196,8 +197,8 @@ parse_location(xmlNode *cur_node, - } - if (NODE_IS_TYPE(child_node, "symbol")) { - g_free(loc->symbol); -- loc->symbol = PROP(child_node, "id"); - loc->symbol_id = strtol(PROP(child_node, "number"), NULL, 10); -+ loc->symbol = g_strdup(get_symbol_for_id(loc->symbol_id)); - } - } - -diff --git a/panel-plugin/weather-translate.c b/panel-plugin/weather-translate.c -index 004eef1..cc97600 100644 ---- a/panel-plugin/weather-translate.c -+++ b/panel-plugin/weather-translate.c -@@ -29,6 +29,7 @@ - #include "weather-translate.h" - - #define DAY_LOC_N (sizeof(gchar) * 100) -+#define NODATA "NODATA" - - - static const gchar *wdirs[] = { -@@ -169,7 +170,7 @@ static const symbol_desc symbol_to_desc[] = { - - { 15, "FOG", N_("Fog"), N_("Fog") }, - -- /* Symbols 16-19 are used for polar days */ -+ /* Symbols 16-19 are used for polar days (unused beginning with API version 1.2) */ - { 16, "SUN", N_("Sunny"), N_("Clear") }, - { 17, "LIGHTCLOUD", N_("Lightly cloudy"), N_("Lightly cloudy") }, - { 18, "LIGHTRAINSUN", N_("Rain showers"), N_("Rain showers") }, -@@ -185,6 +186,73 @@ static const symbol_desc symbol_to_desc[] = { - #define NUM_SYMBOLS (sizeof(symbol_to_desc) / sizeof(symbol_to_desc[0])) - - -+/* -+ * API version 1.2, published in May 2014, introduced new symbols. We -+ * try to match these with existing symbols, in order to be compatible -+ * with existing icon themes and to maintain translation completeness. -+ * -+ * See http://api.met.no/weatherapi/weathericon/1.1/documentation -+ * for a list of symbols. For a list of symbols with descriptions, -+ * see http://om.yr.no/forklaring/symbol. -+ */ -+gint -+replace_symbol_id(gint id) -+{ -+ /* Symbol ids greater than 100 are used for indicating polar -+ * night. These ids are over the ordinary id + 100. Since we -+ * don't support polar icons, we can simply subtract 100 to -+ * get the non-polar symbol ids. -+ */ -+ if (id > 100) -+ id -= 100; -+ -+ switch (id) { -+ case 24: return 22; /* Light rain showers and thunder */ -+ case 25: return 6; /* Heavy rain showers and thunder */ -+ case 26: return 20; /* Light sleet showers and thunder */ -+ case 27: return 20; /* Heavy sleet showers and thunder */ -+ case 28: return 21; /* Light snow showers and thunder */ -+ case 29: return 21; /* Heavy snow showers and thunder */ -+ case 30: return 22; /* Light rain and thunder */ -+ case 31: return 23; /* Light sleet and thunder */ -+ case 32: return 23; /* Heavy sleet and thunder */ -+ case 33: return 14; /* Light snow and thunder */ -+ case 34: return 14; /* Heavy snow and thunder */ -+ -+ /* symbols 35-39 are unused */ -+ -+ case 40: return 5; /* Light rain showers */ -+ case 41: return 5; /* Heavy rain showers */ -+ case 42: return 7; /* Light sleet showers */ -+ case 43: return 7; /* Heavy sleet showers */ -+ case 44: return 8; /* Light snow showers */ -+ case 45: return 8; /* Heavy snow showers */ -+ case 46: return 9; /* Light rain */ -+ case 47: return 12; /* Light sleet */ -+ case 48: return 12; /* Heavy sleet */ -+ case 49: return 13; /* Light snow */ -+ case 50: return 13; /* Heavy snow */ -+ default: return id; -+ } -+} -+ -+ -+const gchar * -+get_symbol_for_id(gint id) -+{ -+ if (G_UNLIKELY(id < 1)) -+ return NODATA; -+ -+ if (id >= NUM_SYMBOLS) -+ id = replace_symbol_id(id); -+ -+ if (id < NUM_SYMBOLS) -+ return symbol_to_desc[id-1].symbol; -+ -+ return NODATA; -+} -+ -+ - const gchar * - translate_desc(const gchar *desc, - const gboolean nighttime) -diff --git a/panel-plugin/weather-translate.h b/panel-plugin/weather-translate.h -index 1538466..2926279 100644 ---- a/panel-plugin/weather-translate.h -+++ b/panel-plugin/weather-translate.h -@@ -24,6 +24,8 @@ - - G_BEGIN_DECLS - -+const gchar *get_symbol_for_id(gint id); -+ - const gchar *translate_desc(const gchar *desc, - gboolean nighttime); - --- -2.1.2 - |