aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-week-view-config.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2003-10-29 22:05:34 +0800
committerJP Rosevear <jpr@src.gnome.org>2003-10-29 22:05:34 +0800
commit4cd045fb40ee5fcad3c5f86b9ecff5d4c21963cd (patch)
treec52b473aa7e259f552053581177c2a0b568b3c4b /calendar/gui/e-week-view-config.c
parent104ef59a6ae16a83f0ba16cedae32c6322b3fdc3 (diff)
downloadgsoc2013-evolution-4cd045fb40ee5fcad3c5f86b9ecff5d4c21963cd.tar
gsoc2013-evolution-4cd045fb40ee5fcad3c5f86b9ecff5d4c21963cd.tar.gz
gsoc2013-evolution-4cd045fb40ee5fcad3c5f86b9ecff5d4c21963cd.tar.bz2
gsoc2013-evolution-4cd045fb40ee5fcad3c5f86b9ecff5d4c21963cd.tar.lz
gsoc2013-evolution-4cd045fb40ee5fcad3c5f86b9ecff5d4c21963cd.tar.xz
gsoc2013-evolution-4cd045fb40ee5fcad3c5f86b9ecff5d4c21963cd.tar.zst
gsoc2013-evolution-4cd045fb40ee5fcad3c5f86b9ecff5d4c21963cd.zip
set the timezone for all clients (timezone_changed_cb): callback for
2003-10-29 JP Rosevear <jpr@ximian.com> * 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
Diffstat (limited to 'calendar/gui/e-week-view-config.c')
-rw-r--r--calendar/gui/e-week-view-config.c35
1 files changed, 34 insertions, 1 deletions
diff --git a/calendar/gui/e-week-view-config.c b/calendar/gui/e-week-view-config.c
index 8c9e2cfb70..8b1cdec6d4 100644
--- a/calendar/gui/e-week-view-config.c
+++ b/calendar/gui/e-week-view-config.c
@@ -105,7 +105,7 @@ e_week_view_config_finalize (GObject *object)
}
static void
-e_week_view_config_class_init (ECalViewClass *klass)
+e_week_view_config_class_init (EWeekViewConfigClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GParamSpec *spec;
@@ -157,6 +157,33 @@ e_week_view_config_get_view (EWeekViewConfig *view_config)
}
static void
+set_timezone (EWeekView *week_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 (week_view), zone);
+
+ g_free (location);
+}
+
+static void
+timezone_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EWeekViewConfig *view_config = data;
+ EWeekViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_timezone (priv->view);
+}
+
+static void
set_week_start (EWeekView *week_view)
{
int week_start_week;
@@ -271,6 +298,12 @@ e_week_view_config_set_view (EWeekViewConfig *view_config, EWeekView *week_view)
return;
priv->view = g_object_ref (week_view);
+
+ /* Time zone */
+ set_timezone (week_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 (week_view);