aboutsummaryrefslogtreecommitdiff
path: root/src/datetime-prefs.c
diff options
context:
space:
mode:
authorMichael Terry <mike@mterry.name>2011-04-07 16:48:50 +0100
committerMichael Terry <mike@mterry.name>2011-04-07 16:48:50 +0100
commit20aee32a693b5fa78f1a3547351a9fb316534935 (patch)
treeca3d8550f19c7b05408ffd2dda2352e3fa3151e4 /src/datetime-prefs.c
parentf62a2a6767eb177f261a6a5b0ddf18ce9482f6ba (diff)
downloadayatana-indicator-datetime-20aee32a693b5fa78f1a3547351a9fb316534935.tar.gz
ayatana-indicator-datetime-20aee32a693b5fa78f1a3547351a9fb316534935.tar.bz2
ayatana-indicator-datetime-20aee32a693b5fa78f1a3547351a9fb316534935.zip
when user clicks a timezone location, switch to that timezone (and support showing user's preferred name for the current timezone in the menu)
Diffstat (limited to 'src/datetime-prefs.c')
-rw-r--r--src/datetime-prefs.c40
1 files changed, 2 insertions, 38 deletions
diff --git a/src/datetime-prefs.c b/src/datetime-prefs.c
index 4a32fd6..9b00e60 100644
--- a/src/datetime-prefs.c
+++ b/src/datetime-prefs.c
@@ -181,46 +181,10 @@ ntp_query_answered (GObject *object, GAsyncResult *res, gpointer user_data)
g_variant_unref (answers);
}
-static gchar *
-get_zone_name (const gchar * location)
-{
- gchar * new_zone, * new_name;
- gchar * old_zone, * old_name;
- gchar * rv;
-
- split_settings_location (location, &new_zone, &new_name);
-
- GSettings * conf = g_settings_new (SETTINGS_INTERFACE);
- gchar * tz_name = g_settings_get_string (conf, SETTINGS_TIMEZONE_NAME_S);
- split_settings_location (tz_name, &old_zone, &old_name);
- g_free (tz_name);
- g_object_unref (conf);
-
- // new_name is always just a sanitized version of a timezone.
- // old_name is potentially a saved "pretty" version of a timezone name from
- // geonames. So we prefer to use it if available and the zones match.
-
- if (g_strcmp0 (old_zone, new_zone) == 0) {
- rv = old_name;
- old_name = NULL;
- }
- else {
- rv = new_name;
- new_name = NULL;
- }
-
- g_free (new_zone);
- g_free (old_zone);
- g_free (new_name);
- g_free (old_name);
-
- return rv;
-}
-
static void
sync_entry (const gchar * location)
{
- gchar * name = get_zone_name (location);
+ gchar * name = get_current_zone_name (location);
gtk_entry_set_text (GTK_ENTRY (tz_entry), name);
g_free (name);
@@ -606,7 +570,7 @@ entry_focus_out (GtkEntry * entry, GdkEventFocus * event)
if (location == NULL)
return FALSE;
- gchar * name = get_zone_name (location->zone);
+ gchar * name = get_current_zone_name (location->zone);
gboolean correct = (g_strcmp0 (gtk_entry_get_text (entry), name) == 0);
g_free (name);