From 71454299b81ef15f066aac11cc12b2f042995f6c Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Fri, 8 Jan 2021 22:22:48 +0100 Subject: datetime: Make use of new gweather API This mainly means free'ing the world when done and stopping to use the now deprecated API (even though it would be acceptable in our case). --- meson.build | 2 +- plugins/datetime/weather-tz.c | 23 +++++++++-------------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/meson.build b/meson.build index dffc0167..05fef19c 100644 --- a/meson.build +++ b/meson.build @@ -97,7 +97,7 @@ gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>= 3.37.1') gsettings_desktop_dep = dependency('gsettings-desktop-schemas', version: '>= 40') gtk_dep = dependency('gtk+-3.0', version: '>= 3.15.3') gtk_x11_dep = dependency('gtk+-x11-3.0') -gweather_dep = dependency('gweather-3.0', version: '>= 3.9.5') +gweather_dep = dependency('gweather-3.0', version: '>= 40.alpha') lcms_dep = dependency('lcms2', version: '>= 2.2') libcanberra_gtk_dep = dependency('libcanberra-gtk3') libgeoclue_dep = dependency('libgeoclue-2.0', version: '>= 2.3.1') diff --git a/plugins/datetime/weather-tz.c b/plugins/datetime/weather-tz.c index f1de2b94..2eac90a2 100644 --- a/plugins/datetime/weather-tz.c +++ b/plugins/datetime/weather-tz.c @@ -29,17 +29,14 @@ static GList * location_get_cities (GWeatherLocation *parent_location) { GList *cities = NULL; - GWeatherLocation **children; - gint i; - - children = gweather_location_get_children (parent_location); - for (i = 0; children[i]; i++) { - if (gweather_location_get_level (children[i]) == GWEATHER_LOCATION_CITY) { - cities = g_list_prepend (cities, - children[i]); + GWeatherLocation *child = NULL; + + while ((child = gweather_location_next_child (parent_location, child))) { + if (gweather_location_get_level (child) == GWEATHER_LOCATION_CITY) { + cities = g_list_prepend (cities, gweather_location_ref (child)); } else { cities = g_list_concat (cities, - location_get_cities (children[i])); + location_get_cities (child)); } } @@ -101,10 +98,10 @@ load_timezones (GList *cities) GList * weather_tz_db_get_locations (const gchar *country_code) { - GList *cities; + g_autoptr(GWeatherLocation) world = NULL; + g_autoptr(GWeatherLocation) country = NULL; + g_autolist(GWeatherLocation) cities = NULL; GList *tz_locations; - GWeatherLocation *world; - GWeatherLocation *country; world = gweather_location_get_world (); @@ -116,7 +113,5 @@ weather_tz_db_get_locations (const gchar *country_code) cities = location_get_cities (country); tz_locations = load_timezones (cities); - g_list_free (cities); - return tz_locations; } -- cgit v1.2.1