From 592f7b147ef9546ddea75d7fe71a6950180eceff Mon Sep 17 00:00:00 2001 From: Sam Yang Date: Fri, 3 Mar 2006 13:24:39 +0000 Subject: Fixes #324560 Request notification of changes to show_task_preview. 2006-03-03 Sam Yang Fixes #324560 * gui/calendar-config.[ch]: (calendar_config_add_notification_preview_state): Request notification of changes to show_task_preview. * gui/e-tasks.c: (config_preview_state_changed_cb): Callback function. (setup_config): Send notification request and store connection ID. svn path=/trunk/; revision=31631 --- calendar/gui/calendar-config.c | 10 ++++++++++ calendar/gui/calendar-config.h | 1 + calendar/gui/e-tasks.c | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+) (limited to 'calendar/gui') diff --git a/calendar/gui/calendar-config.c b/calendar/gui/calendar-config.c index e8de54d1af..c3af59e82f 100644 --- a/calendar/gui/calendar-config.c +++ b/calendar/gui/calendar-config.c @@ -658,6 +658,16 @@ calendar_config_set_preview_state (gboolean state) gconf_client_set_bool (config, CALENDAR_CONFIG_TASK_PREVIEW, state, NULL); } +guint +calendar_config_add_notification_preview_state (GConfClientNotifyFunc func, gpointer data) +{ + guint id; + + id = gconf_client_notify_add (config, CALENDAR_CONFIG_TASK_PREVIEW, func, data, NULL, NULL); + + return id; +} + gint calendar_config_get_month_hpane_pos (void) { diff --git a/calendar/gui/calendar-config.h b/calendar/gui/calendar-config.h index e99265e784..4fd1fa4bd4 100644 --- a/calendar/gui/calendar-config.h +++ b/calendar/gui/calendar-config.h @@ -164,6 +164,7 @@ void calendar_config_set_vpane_pos (gint vpane_pos); gboolean calendar_config_get_preview_state (void); void calendar_config_set_preview_state (gboolean state); +guint calendar_config_add_notification_preview_state (GConfClientNotifyFunc func, gpointer data); gint calendar_config_get_month_hpane_pos (void); void calendar_config_set_month_hpane_pos (gint hpane_pos); diff --git a/calendar/gui/e-tasks.c b/calendar/gui/e-tasks.c index 0b10001fc0..77056b7860 100644 --- a/calendar/gui/e-tasks.c +++ b/calendar/gui/e-tasks.c @@ -376,6 +376,21 @@ view_done_cb (ECalModel *model, ECalendarStatus status, ECalSourceType type, ETa } +static void +config_preview_state_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data) +{ + gboolean state; + GConfValue *value; + ETasks *tasks = (ETasks *)data; + + g_return_if_fail (gconf_entry_get_key (entry) != NULL); + g_return_if_fail ((value = gconf_entry_get_value (entry)) != NULL); + + state = gconf_value_get_bool (value); + e_tasks_show_preview (tasks, state); + bonobo_ui_component_set_prop (E_SEARCH_BAR (tasks->priv->search_bar)->ui_component, "/commands/ViewPreview", "state", state ? "1" : "0", NULL); +} + static void setup_config (ETasks *tasks) { @@ -401,6 +416,9 @@ setup_config (ETasks *tasks) not = calendar_config_add_notification_hide_completed_tasks_value (config_hide_completed_tasks_changed_cb, tasks); priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not)); + + not = calendar_config_add_notification_preview_state (config_preview_state_changed_cb, tasks); + priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not)); } static void -- cgit v1.2.3