[gnome-initial-setup/wip/timezone: 10/11] timezone: Improve the timezone description shown in the ui
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-initial-setup/wip/timezone: 10/11] timezone: Improve the timezone description shown in the ui
- Date: Tue, 18 Mar 2014 21:06:11 +0000 (UTC)
commit 43461cc16f521d8a81f7a47aa2fd6f3136c8a467
Author: Kalev Lember <kalevlember gmail com>
Date: Tue Mar 18 21:18:21 2014 +0100
timezone: Improve the timezone description shown in the ui
.../pages/timezone/gis-timezone-page.c | 35 ++++++++++++++++---
1 files changed, 29 insertions(+), 6 deletions(-)
---
diff --git a/gnome-initial-setup/pages/timezone/gis-timezone-page.c
b/gnome-initial-setup/pages/timezone/gis-timezone-page.c
index 154e345..3e83213 100644
--- a/gnome-initial-setup/pages/timezone/gis-timezone-page.c
+++ b/gnome-initial-setup/pages/timezone/gis-timezone-page.c
@@ -32,6 +32,9 @@
#include <stdlib.h>
#include <string.h>
+#define GNOME_DESKTOP_USE_UNSTABLE_API
+#include <libgnome-desktop/gnome-languages.h>
+
#define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
#include <libgweather/gweather.h>
@@ -134,12 +137,32 @@ set_location (GisTimezonePage *page,
static char *
get_location_name (GWeatherLocation *location)
{
- GWeatherTimezone *zone = gweather_location_get_timezone (location);
-
- /* XXX -- do something smarter eventually */
- return g_strdup_printf ("%s (GMT%+g)",
- gweather_location_get_name (location),
- gweather_timezone_get_offset (zone) / 60.0);
+ GDateTime *datetime;
+ GTimeZone *timezone;
+ char *country;
+ char *ret;
+ const char *country_code;
+ const char *timezone_name;
+ const char *timezone_id;
+
+ timezone_id = gweather_timezone_get_tzid (gweather_location_get_timezone (location));
+ timezone = g_time_zone_new (timezone_id);
+ datetime = g_date_time_new_now (timezone);
+ timezone_name = g_date_time_get_timezone_abbreviation (datetime);
+
+ country_code = gweather_location_get_country (location);
+ country = gnome_get_country_from_code (country_code, NULL);
+
+ ret = g_strdup_printf ("%s (%s, %s)",
+ timezone_name,
+ gweather_location_get_city_name (location),
+ country);
+
+ g_time_zone_unref (timezone);
+ g_date_time_unref (datetime);
+ g_free (country);
+
+ return ret;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]