diff options
author | Michael Terry <mike@mterry.name> | 2011-04-07 16:48:50 +0100 |
---|---|---|
committer | Michael Terry <mike@mterry.name> | 2011-04-07 16:48:50 +0100 |
commit | 20aee32a693b5fa78f1a3547351a9fb316534935 (patch) | |
tree | ca3d8550f19c7b05408ffd2dda2352e3fa3151e4 /src/datetime-prefs.c | |
parent | f62a2a6767eb177f261a6a5b0ddf18ce9482f6ba (diff) | |
download | ayatana-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.c | 40 |
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); |