Re: [Tasks] Updated patch for Bug #324560

sam yang <[email protected]>
Newsgroups gmane.comp.gnome.evolution.patches
Organization SCERI
Message-ID <[email protected]>
Hi, Chenthill and all 

pls review the new patch. 

thanks.
-Sam

On Thu, 2006-03-02 at 22:24 +0530, pchenthill wrote:
> On Mon, 2006-02-27 at 12:02 +0800, sam yang wrote:
> >        /* Private data */
> >         ETasksPrivate *priv;
> > +
> > +       /* if we're active, this will be set */
> > +       BonoboUIComponent *uic;
> > }; 
> 
> It could be put inside the Private structure as its used only by
> ETasks and might not be needed outside.
As I thought before, the reason to put uic inside ETasks other than its
private structure, ETasksPrivate, is uic is evaluated in
tasks_control_activate() in tasks-control.c, where ETasksPrivate isn't
avaible.

When I planed to put uic inside ETasksPrivate and provide a function to
set its value, as you have suggested, I found we needn't to add a new
BonoboUIComponent at all, because we have had one: E_SEARCH_BAR
(ETasks->priv->search_bar)->ui_component. It is set in
tasks_control_activate() through  e_tasks_set_ui_component(). And it's
exactly the UI component which I want to get.
> 
> 
> thanks, Chenthill.

_______________________________________________
Evolution-patches mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/evolution-patches
324560.patch (text/x-patch, 3.4 KB)
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.3001
diff -u -r1.3001 ChangeLog
--- ChangeLog	28 Feb 2006 12:16:43 -0000	1.3001
+++ ChangeLog	3 Mar 2006 06:47:52 -0000
@@ -1,3 +1,12 @@
+2006-03-03  Sam Yang  <[email protected]>
+
+	Fixes #324560
+	* gui/calendar-config.h:
+	* gui/calendar-config.c:
+	(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.
+
 2006-02-28  Chenthill Palanisamy  <[email protected]>
 
 	Fixes #332726
Index: gui/calendar-config.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-config.c,v
retrieving revision 1.85
diff -u -r1.85 calendar-config.c
--- gui/calendar-config.c	13 Jan 2006 11:02:13 -0000	1.85
+++ gui/calendar-config.c	3 Mar 2006 06:47:53 -0000
@@ -658,6 +658,16 @@
 	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)
 {
Index: gui/calendar-config.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-config.h,v
retrieving revision 1.45
diff -u -r1.45 calendar-config.h
--- gui/calendar-config.h	13 Jan 2006 11:02:10 -0000	1.45
+++ gui/calendar-config.h	3 Mar 2006 06:47:53 -0000
@@ -164,6 +164,7 @@
 
 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);
Index: gui/e-tasks.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-tasks.c,v
retrieving revision 1.129
diff -u -r1.129 e-tasks.c
--- gui/e-tasks.c	8 Feb 2006 13:06:02 -0000	1.129
+++ gui/e-tasks.c	3 Mar 2006 06:47:53 -0000
@@ -377,6 +377,21 @@
 }
 
 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)
 {
 	ETasksPrivate *priv;
@@ -401,6 +416,9 @@
 	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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.