From 4cd045fb40ee5fcad3c5f86b9ecff5d4c21963cd Mon Sep 17 00:00:00 2001 From: JP Rosevear Date: Wed, 29 Oct 2003 14:05:34 +0000 Subject: set the timezone for all clients (timezone_changed_cb): callback for 2003-10-29 JP Rosevear * gui/gnome-cal.c (set_timezone): set the timezone for all clients (timezone_changed_cb): callback for changes (setup_config): setup the configuration (setup_widgets): setup up configuration managers for the list view, task list and date navigator (gnome_calendar_init): setup config (gnome_calendar_destroy): destroy configuration managers and notifications (gnome_calendar_update_config_settings): remove dead bits * gui/e-mini-calendar-config.[hc]: manage configuration of an e-calendar * gui/e-day-view-config.h: remove extraneous comment, type the parent class correctly * gui/e-week-view-config.h: ditto * gui/e-day-view-config.c (e_day_view_config_class_init): type the class correctly (set_timezone): set timezone (timezone_changed_cb): timezone changed callback (e_day_view_config_set_view): track timezone changes * gui/e-week-view-config.c: ditto * gui/e-cell-date-edit-config.[hc]: manage configuration of a date edit cell * gui/e-calendar-table-config.[hc]: manage configuration of a e-calendar-table * gui/e-cal-list-view.c (get_current_time_cb): use the view timezone to compute * gui/e-cal-list-view-config.[hc]: manage configuration of a list view * gui/calendar-config.h: update protos * gui/calendar-config.c (calendar_config_add_notification_timezone): notify of timezone change (calendar_config_add_notification_dnav_show_week_no): notify of show week number setting change * gui/calendar-component.c (calendar_component_peek): remove bad comma * gui/Makefile.am: build new config classes svn path=/trunk/; revision=23114 --- calendar/gui/e-day-view-config.c | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) (limited to 'calendar/gui/e-day-view-config.c') diff --git a/calendar/gui/e-day-view-config.c b/calendar/gui/e-day-view-config.c index 4e34370aff..a5fe7cc73b 100644 --- a/calendar/gui/e-day-view-config.c +++ b/calendar/gui/e-day-view-config.c @@ -105,7 +105,7 @@ e_day_view_config_finalize (GObject *object) } static void -e_day_view_config_class_init (ECalViewClass *klass) +e_day_view_config_class_init (EDayViewConfigClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GParamSpec *spec; @@ -156,6 +156,33 @@ e_day_view_config_get_view (EDayViewConfig *view_config) return priv->view; } +static void +set_timezone (EDayView *day_view) +{ + char *location; + icaltimezone *zone; + + location = calendar_config_get_timezone (); + zone = icaltimezone_get_builtin_timezone (location); + if (!zone) + zone = icaltimezone_get_utc_timezone (); + + e_cal_view_set_timezone (E_CAL_VIEW (day_view), zone); + + g_free (location); +} + +static void +timezone_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data) +{ + EDayViewConfig *view_config = data; + EDayViewConfigPrivate *priv; + + priv = view_config->priv; + + set_timezone (priv->view); +} + static void set_week_start (EDayView *day_view) { @@ -385,7 +412,13 @@ e_day_view_config_set_view (EDayViewConfig *view_config, EDayView *day_view) return; priv->view = g_object_ref (day_view); + + /* Time zone */ + set_timezone (day_view); + not = calendar_config_add_notification_timezone (timezone_changed_cb, view_config); + priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not)); + /* Week start */ set_week_start (day_view); @@ -440,4 +473,3 @@ e_day_view_config_set_view (EDayViewConfig *view_config, EDayView *day_view) not = calendar_config_add_notification_show_event_end (show_event_end_changed_cb, view_config); priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not)); } - -- cgit v1.2.3