Updated Spanish translation
[anjuta-git-plugin.git] / plugins / gtodo / preferences.c
blob8a0b8ce2d5b53a5a361817d6e7df660cae47453c
1 #include <config.h>
2 #include <gtk/gtk.h>
3 #include <tray-icon.h>
4 #include "main.h"
6 void preferences_cb_do_tray(GtkWidget *chbox, GtkWidget *hwin);
7 static void preferences_cb_show_date(GtkWidget *chbox);
8 static void preferences_cb_do_tooltip(GtkWidget *chbox);
9 static void preferences_cb_auto_purge(GtkWidget *cb, GtkWidget *hbox);
10 static void preferences_cb_toggle_hl_today(GtkWidget *chbox);
11 static void preferences_cb_toggle_hl_due(GtkWidget *chbox);
12 static void preferences_cb_toggle_hl_indays(GtkWidget *chbox);
13 static void preferences_cb_toggle_show_notification(GtkWidget *chbox);
14 static void preferences_cb_toggle_show_category_column(GtkWidget *chbox);
15 static void preferences_cb_toggle_show_priority_column(GtkWidget *chbox);
16 static void preferences_cb_toggle_enable_tray(GtkWidget *chbox);
18 void gui_preferences(void)
20 GtkWidget *dialog;
21 GtkWidget *notebook;
23 notebook = preferences_widget ();
24 dialog = gtk_dialog_new_with_buttons(_("Todo List Preferences"), GTK_WINDOW(mw.window),
25 GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
26 GTK_STOCK_CLOSE,
27 GTK_RESPONSE_CANCEL,
28 NULL);
29 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), notebook);
30 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
32 gtk_widget_show_all(dialog);
33 gtk_dialog_run(GTK_DIALOG(dialog));
35 /* because there not directly visible I can go save the values now.. (not like do_tray) */
36 // settings.auto_purge = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_auto_purge));
37 // gconf_client_set_bool(client,"/apps/gtodo/prefs/auto-purge",settings.auto_purge,NULL);
38 // settings.purge_days = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(sp_purge_days));
39 // gconf_client_set_int(client,"/apps/gtodo/prefs/auto-purge-days",settings.purge_days,NULL);
40 gtk_widget_destroy(dialog);
41 /* save the settings */
44 static GtkWidget *cb_show_date = NULL;
45 static GtkWidget *cb_list_tooltip = NULL;
46 static GtkWidget *cb = NULL;
47 static GtkWidget *cb_auto_purge = NULL;
48 static GtkWidget *sp_purge_days = NULL;
49 static GtkWidget *cb_hl_due = NULL;
50 static GtkWidget *cb_hl_today = NULL;
51 static GtkWidget *cb_hl_indays = NULL;
52 static GtkWidget *hbox = NULL;
54 void preferences_remove_signals()
56 g_signal_handlers_disconnect_by_func(G_OBJECT(cb_show_date),
57 G_CALLBACK(preferences_cb_show_date), NULL);
58 g_signal_handlers_disconnect_by_func(G_OBJECT(cb),
59 G_CALLBACK(preferences_cb_toggle_show_category_column), NULL);
60 g_signal_handlers_disconnect_by_func(G_OBJECT(cb),
61 G_CALLBACK(preferences_cb_toggle_show_priority_column), NULL);
62 g_signal_handlers_disconnect_by_func(G_OBJECT(cb_list_tooltip),
63 G_CALLBACK(preferences_cb_do_tooltip), NULL);
64 g_signal_handlers_disconnect_by_func(G_OBJECT(cb_hl_today),
65 G_CALLBACK( preferences_cb_toggle_hl_today), NULL);
66 g_signal_handlers_disconnect_by_func(G_OBJECT(cb_hl_due),
67 G_CALLBACK( preferences_cb_toggle_hl_due), NULL);
68 g_signal_handlers_disconnect_by_func(G_OBJECT(cb_auto_purge),
69 G_CALLBACK(preferences_cb_auto_purge), hbox);
70 g_signal_handlers_disconnect_by_func(G_OBJECT(cb),
71 G_CALLBACK(preferences_cb_toggle_show_notification), NULL);
74 GtkWidget *preferences_widget()
76 GtkWidget *vbox, *vbox2;
77 GtkWidget *frame, *label;
79 GtkWidget *notebook;
80 gchar *tmp;
82 notebook = gtk_notebook_new();
84 /********* FIRST TAB ***************/
85 vbox2 = gtk_vbox_new(FALSE, 0);
86 gtk_container_set_border_width(GTK_CONTAINER(vbox2), 12);
87 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox2, gtk_label_new(_("Interface")));
89 /** second tab **/
90 vbox = gtk_vbox_new(FALSE, 6);
91 cb_show_date = gtk_check_button_new_with_label(_("Show due date column"));
92 gtk_box_pack_start(GTK_BOX(vbox),cb_show_date, FALSE, TRUE, 0);
93 /* set it to current value and add signal handler */
94 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_show_date),
95 gconf_client_get_bool(client, "/apps/gtodo/prefs/show-due-column",NULL));
97 g_signal_connect(G_OBJECT(cb_show_date), "toggled", G_CALLBACK(preferences_cb_show_date), NULL);
99 cb = gtk_check_button_new_with_label(_("Show category column"));
100 gtk_box_pack_start(GTK_BOX(vbox),cb, FALSE, TRUE, 0);
101 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb), gconf_client_get_bool(client, "/apps/gtodo/view/show-category-column",NULL));
102 g_signal_connect(G_OBJECT(cb), "toggled", G_CALLBACK(preferences_cb_toggle_show_category_column), NULL);
104 cb = gtk_check_button_new_with_label(_("Show priority column"));
105 gtk_box_pack_start(GTK_BOX(vbox),cb, FALSE, TRUE, 0);
106 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb), gconf_client_get_bool(client, "/apps/gtodo/view/show-priority-column",NULL));
107 g_signal_connect(G_OBJECT(cb), "toggled", G_CALLBACK(preferences_cb_toggle_show_priority_column), NULL);
109 cb_list_tooltip = gtk_check_button_new_with_label(_("Tooltips in list"));
110 gtk_box_pack_start(GTK_BOX(vbox),cb_list_tooltip, FALSE, TRUE, 0);
111 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_list_tooltip),
112 gconf_client_get_bool(client, "/apps/gtodo/prefs/show-tooltip",NULL));
114 g_signal_connect(G_OBJECT(cb_list_tooltip), "toggled", G_CALLBACK(preferences_cb_do_tooltip), NULL);
118 /** add the page **/
119 gtk_container_set_border_width(GTK_CONTAINER(vbox), 12);
120 frame = gtk_frame_new(_("Show in main window"));
121 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
122 tmp = g_strdup_printf("<b>%s</b>", _("Show in main window"));
123 gtk_label_set_markup(GTK_LABEL(gtk_frame_get_label_widget(GTK_FRAME(frame))), tmp);
124 g_free(tmp);
125 gtk_container_set_border_width(GTK_CONTAINER(frame), 0);
126 gtk_container_add(GTK_CONTAINER(frame), vbox);
128 gtk_box_pack_start(GTK_BOX(vbox2),frame, FALSE, TRUE, 0);
132 vbox = gtk_vbox_new(FALSE, 0);
133 frame = gtk_frame_new(_("Highlight"));
134 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
135 tmp = g_strdup_printf("<b>%s</b>", _("Highlight"));
136 gtk_label_set_markup(GTK_LABEL(gtk_frame_get_label_widget(GTK_FRAME(frame))), tmp);
137 g_free(tmp);
139 gtk_container_set_border_width(GTK_CONTAINER(frame), 0);
140 gtk_container_add(GTK_CONTAINER(frame), vbox);
141 gtk_container_set_border_width(GTK_CONTAINER(vbox), 12);
142 gtk_box_pack_start(GTK_BOX(vbox2), frame, TRUE, TRUE, 0);
144 /* tb for highlighting due today */
145 cb_hl_today = gtk_check_button_new_with_label(_("Items that are due today"));
146 gtk_box_pack_start(GTK_BOX(vbox),cb_hl_today, FALSE, TRUE, 6);
147 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_hl_today), settings.hl_today);
148 g_signal_connect(G_OBJECT(cb_hl_today),"toggled", G_CALLBACK( preferences_cb_toggle_hl_today), NULL);
150 /* tb for highlighting due */
151 cb_hl_due = gtk_check_button_new_with_label(_("Items that are past due"));
152 gtk_box_pack_start(GTK_BOX(vbox),cb_hl_due, FALSE, TRUE, 6);
153 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_hl_due), settings.hl_due);
154 g_signal_connect(G_OBJECT(cb_hl_due), "toggled",G_CALLBACK( preferences_cb_toggle_hl_due), NULL);
156 /* tb for highlighting in x days */
157 tmp = g_strdup_printf(_("Items that are due in the next %i days"), settings.due_days);
158 cb_hl_indays = gtk_check_button_new_with_label(tmp);
159 g_free(tmp);
160 gtk_box_pack_start(GTK_BOX(vbox),cb_hl_indays, FALSE, TRUE, 6);
161 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_hl_indays), settings.hl_indays);
162 g_signal_connect(G_OBJECT(cb_hl_indays),"toggled", G_CALLBACK( preferences_cb_toggle_hl_indays), NULL);
166 /************ Second Tab *****************/
167 vbox2 = gtk_vbox_new(FALSE, 0);
168 gtk_container_set_border_width(GTK_CONTAINER(vbox2), 12);
169 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox2, gtk_label_new(_("Misc")));
171 vbox = gtk_vbox_new(FALSE, 6);
172 cb_auto_purge = gtk_check_button_new_with_label(_("Auto purge completed items"));
173 gtk_box_pack_start(GTK_BOX(vbox),cb_auto_purge, FALSE, TRUE, 0);
176 hbox = gtk_hbox_new(FALSE, 6);
177 label = gtk_label_new(_("Purge items after"));
178 gtk_box_pack_start(GTK_BOX(hbox),label, FALSE, TRUE, 0);
179 sp_purge_days = gtk_spin_button_new_with_range(1,365, 1);
180 gtk_box_pack_start(GTK_BOX(hbox),sp_purge_days, FALSE, TRUE, 0);
181 label = gtk_label_new(_("days."));
182 gtk_box_pack_start(GTK_BOX(hbox),label, FALSE, TRUE, 0);
184 gtk_box_pack_start(GTK_BOX(vbox),hbox, FALSE, TRUE, 0);
185 g_signal_connect(G_OBJECT(cb_auto_purge), "toggled", G_CALLBACK(preferences_cb_auto_purge), hbox);
188 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_auto_purge), settings.auto_purge);
189 gtk_spin_button_set_value(GTK_SPIN_BUTTON(sp_purge_days), settings.purge_days);
190 /* make sure the sensitive is ok */
191 preferences_cb_auto_purge(cb_auto_purge, hbox);
192 /** add the page **/
193 gtk_container_set_border_width(GTK_CONTAINER(vbox), 12);
194 frame = gtk_frame_new(_("Auto Purge"));
195 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
196 tmp = g_strdup_printf("<b>%s</b>", _("Auto Purge"));
197 gtk_label_set_markup(GTK_LABEL(gtk_frame_get_label_widget(GTK_FRAME(frame))), tmp);
198 g_free(tmp);
199 gtk_container_set_border_width(GTK_CONTAINER(frame), 0);
200 gtk_container_add(GTK_CONTAINER(frame), vbox);
202 gtk_box_pack_start(GTK_BOX(vbox2), frame, FALSE,FALSE, 0);
204 vbox = gtk_vbox_new(FALSE, 6);
206 /** add the page **/
207 gtk_container_set_border_width(GTK_CONTAINER(vbox), 12);
208 frame = gtk_frame_new(_("Notification"));
209 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
210 tmp = g_strdup_printf("<b>%s</b>", _("Notification"));
211 gtk_label_set_markup(GTK_LABEL(gtk_frame_get_label_widget(GTK_FRAME(frame))), tmp);
212 g_free(tmp);
213 gtk_container_set_border_width(GTK_CONTAINER(frame), 0);
214 gtk_container_add(GTK_CONTAINER(frame), vbox);
216 gtk_box_pack_start(GTK_BOX(vbox2), frame, FALSE, FALSE, 0);
217 tmp = g_strdup_printf(_("Allow to do items to notifiy me when they are due in %i minutes"), gconf_client_get_int(client, "/apps/gtodo/prefs/notify_in_minutes",NULL));
218 cb = gtk_check_button_new_with_label(tmp);
219 g_free(tmp);
220 gtk_box_pack_start(GTK_BOX(vbox),cb, FALSE, TRUE, 0);
221 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb), gconf_client_get_bool(client, "/apps/gtodo/prefs/do_notification",NULL));
222 g_signal_connect(G_OBJECT(cb), "toggled", G_CALLBACK(preferences_cb_toggle_show_notification), NULL);
224 cb = gtk_check_button_new_with_label(_("Show Notification Tray Icon"));
225 gtk_box_pack_start(GTK_BOX(vbox),cb, FALSE, TRUE, 0);
226 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb),
227 gconf_client_get_bool(client, "/apps/gtodo/view/enable-tray",NULL));
228 g_signal_connect(G_OBJECT(cb), "toggled",
229 G_CALLBACK(preferences_cb_toggle_enable_tray), NULL);
230 gtk_widget_show_all (notebook);
231 return notebook;
234 static void preferences_cb_toggle_hl_today(GtkWidget *chbox)
236 gconf_client_set_bool(client, "/apps/gtodo/prefs/hl-today", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)),NULL);
237 settings.hl_today = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox));
238 category_changed();
241 static void preferences_cb_toggle_hl_due(GtkWidget *chbox)
243 gconf_client_set_bool(client, "/apps/gtodo/prefs/hl-due", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)),NULL);
244 settings.hl_due = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox));
245 category_changed();
248 static void preferences_cb_toggle_hl_indays(GtkWidget *chbox)
250 gconf_client_set_bool(client, "/apps/gtodo/prefs/hl-indays",
251 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)),NULL);
252 settings.hl_indays = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox));
253 category_changed();
256 static void preferences_cb_toggle_enable_tray(GtkWidget *chbox)
258 gconf_client_set_bool(client, "/apps/gtodo/view/enable-tray",
259 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)),NULL);
262 static void preferences_cb_toggle_show_notification(GtkWidget *chbox)
264 gconf_client_set_bool(client, "/apps/gtodo/prefs/do_notification",
265 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)),NULL);
268 static void preferences_cb_toggle_show_category_column(GtkWidget *chbox)
270 gconf_client_set_bool(client, "/apps/gtodo/view/show-category-column",
271 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)),NULL);
272 gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(mw.treeview), 3),
273 gconf_client_get_bool(client, "/apps/gtodo/view/show-category-column",NULL));
276 static void preferences_cb_toggle_show_priority_column(GtkWidget *chbox)
278 gconf_client_set_bool(client, "/apps/gtodo/view/show-priority-column",
279 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)),NULL);
280 gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(mw.treeview), 1),
281 gconf_client_get_bool(client, "/apps/gtodo/view/show-priority-column",NULL));
284 static void preferences_cb_show_date(GtkWidget *chbox)
286 gconf_client_set_bool(client, "/apps/gtodo/prefs/show-due-column",
287 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)),NULL);
288 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)))
290 gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(mw.treeview), 2),TRUE);
292 else
294 gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(mw.treeview), 2),FALSE);
298 static void preferences_cb_do_tooltip(GtkWidget *chbox)
300 gconf_client_set_bool(client, "/apps/gtodo/prefs/show-tooltip", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)),NULL);
301 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chbox)))
304 message_box(_( "Showing Tooltips in the todo list is still very alpha.\n"
305 "Because of some weird behaviour in gtk it only works with the column headers disabled.\n"
306 "I hope to get this fixed soon"),"", GTK_MESSAGE_INFO);
307 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(mw.treeview), FALSE);
309 else
312 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(mw.treeview), TRUE);
316 static void preferences_cb_auto_purge(GtkWidget *cb, GtkWidget *hbox)
318 gconf_client_set_bool(client, "/apps/gtodo/prefs/auto-purge", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb)),NULL);
319 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb)))
320 gtk_widget_set_sensitive(GTK_WIDGET(hbox), TRUE);
321 else
322 gtk_widget_set_sensitive(GTK_WIDGET(hbox), FALSE);
326 static void pref_gconf_changed_show_tooltip(GConfClient *client)
328 if(gconf_client_get_bool(client, "/apps/gtodo/prefs/show-tooltip", NULL))
330 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(mw.treeview), FALSE);
332 else gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(mw.treeview), TRUE);
335 static void pref_gconf_changed_restore_size(GConfClient *client)
337 settings.size = gconf_client_get_bool(client, /* "/schemas*/"/apps/gtodo/prefs/restore-size",NULL);
339 static void pref_gconf_changed_restore_place(GConfClient *client)
341 settings.place = gconf_client_get_bool(client,/* "/schemas*/"/apps/gtodo/prefs/restore-position",NULL);
343 static void pref_gconf_changed_ask_delete_category(GConfClient *client)
345 settings.ask_delete_category = gconf_client_get_bool(client,/* "/schemas*/"/apps/gtodo/prefs/ask-delete-category",NULL);
348 static void pref_gconf_changed_show_priority_column(GtkWidget *chbox)
350 gtk_tree_view_column_set_visible(
351 gtk_tree_view_get_column(GTK_TREE_VIEW(mw.treeview), 1),
352 gconf_client_get_bool(client, "/apps/gtodo/view/show-priority-column",NULL));
356 static void pref_gconf_changed_show_category_column(GtkWidget *chbox)
358 gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(mw.treeview), 3),gconf_client_get_bool(client, "/apps/gtodo/view/show-category-column",NULL));
361 static void pref_gconf_changed_show_due_column(GtkWidget *chbox)
363 gtk_tree_view_column_set_visible(
364 gtk_tree_view_get_column(GTK_TREE_VIEW(mw.treeview), 2),
365 gconf_client_get_bool(client, "/apps/gtodo/prefs/show-due-column",NULL));
368 static void pref_gconf_changed_auto_purge(GConfClient *client)
370 settings.auto_purge = gconf_client_get_bool(client,"/apps/gtodo/prefs/auto-purge",NULL);
373 #if 0
374 static void pref_gconf_changed_auto_purge_days(GConfClient *client)
376 settings.purge_days = gconf_client_get_int(client, "/apps/gtodo/prefs/auto-purge-days",NULL);
378 #endif
379 static void pref_gconf_changed_sort_type(GConfClient *client)
381 settings.sorttype = gconf_client_get_int(client, "/apps/gtodo/prefs/sort-type",NULL);
382 // FIXME: set_sorting_menu_item();
384 static void pref_gconf_changed_sort_order(GConfClient *client)
386 settings.sortorder = gconf_client_get_int(client, "/apps/gtodo/prefs/sort-order",NULL);
387 if(settings.sortorder == 0)gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(mw.item_factory, N_("/View/Sorting/Sort Ascending"))), TRUE);
388 else gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(mw.item_factory, N_("/View/Sorting/Sort Descending"))), TRUE);
389 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE (mw.sortmodel),0 , settings.sortorder);
392 static void pref_gconf_changed_hide_done(GConfClient *client)
394 settings.hide_done = gconf_client_get_bool(client, "/apps/gtodo/prefs/hide-done",NULL);
395 /* // gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(mw.item_factory, _("/View/Todo List/Hide Completed Items"))),settings.hide_done);
397 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(mw.item_factory, N_("/View/Hide Completed Items"))),settings.hide_done);
398 category_changed();
401 static void pref_gconf_changed_hide_due(GConfClient *client)
403 settings.hide_due = gconf_client_get_bool(client, /* "/schemas*/"/apps/gtodo/prefs/hide-due",NULL);
404 /*// gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(mw.item_factory, _("/View/Todo List/Hide Items that are past due"))),settings.hide_due);
406 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(mw.item_factory, N_("/View/Hide Items that Are Past Due Date"))),settings.hide_due);
407 category_changed();
410 static void pref_gconf_changed_hide_nodate(GConfClient *client)
412 settings.hide_nodate = gconf_client_get_bool(client, /* "/schemas*/"/apps/gtodo/prefs/hide-nodate",NULL);
413 /*// gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(mw.item_factory, _("/View/Todo List/Hide Items without an end date"))), settings.hide_nodate);
415 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(mw.item_factory, N_("/View/Hide Items Without an End Date"))), settings.hide_nodate);
416 category_changed();
419 static void pref_gconf_changed_hl_today(GConfClient *client)
421 settings.hl_today = gconf_client_get_bool(client,"/apps/gtodo/prefs/hl-today",NULL);
422 category_changed();
425 static void pref_gconf_changed_hl_due(GConfClient *client)
427 settings.hl_due = gconf_client_get_bool(client, "/apps/gtodo/prefs/hl-due",NULL);
428 category_changed();
431 static void pref_gconf_changed_enable_tray(GConfClient *client)
433 if(gconf_client_get_bool(client, "/apps/gtodo/view/enable-tray",NULL))
435 if (mw.window)
436 tray_init(mw.window);
438 else
440 tray_icon_remove();
444 static void pref_gconf_changed_hl_indays(GConfClient *client)
446 settings.hl_indays= gconf_client_get_bool(client,"/apps/gtodo/prefs/hl-indays",NULL);
447 category_changed();
450 void pref_gconf_set_notifications(GConfClient *client)
452 gconf_client_notify_add(client, "/apps/gtodo/prefs/restore-size",
453 (GConfClientNotifyFunc)pref_gconf_changed_restore_size,
454 NULL,
455 NULL, NULL);
457 gconf_client_notify_add(client,"/apps/gtodo/prefs/restore-position",
458 (GConfClientNotifyFunc) pref_gconf_changed_restore_place,
459 NULL,
460 NULL, NULL);
461 gconf_client_notify_add(client,"/apps/gtodo/prefs/show-tooltip",
462 (GConfClientNotifyFunc) pref_gconf_changed_show_tooltip,
463 NULL,
464 NULL, NULL);
465 gconf_client_notify_add(client,"/apps/gtodo/prefs/ask-delete-category",
466 (GConfClientNotifyFunc) pref_gconf_changed_ask_delete_category,
467 NULL,
468 NULL, NULL);
469 gconf_client_notify_add(client,"/apps/gtodo/prefs/show-due-column",
470 (GConfClientNotifyFunc) pref_gconf_changed_show_due_column,
471 NULL,
472 NULL, NULL);
473 gconf_client_notify_add(client,"/apps/gtodo/view/show-category-column",
474 (GConfClientNotifyFunc) pref_gconf_changed_show_category_column,
475 NULL,
476 NULL, NULL);
477 gconf_client_notify_add(client,"/apps/gtodo/view/show-priority-column",
478 (GConfClientNotifyFunc) pref_gconf_changed_show_priority_column,
479 NULL,
480 NULL, NULL);
483 gconf_client_notify_add(client,"/apps/gtodo/prefs/auto-purge",
484 (GConfClientNotifyFunc) pref_gconf_changed_auto_purge,
485 NULL,
486 NULL, NULL);
487 gconf_client_notify_add(client,"/apps/gtodo/prefs/hide-done",
488 (GConfClientNotifyFunc) pref_gconf_changed_hide_done,
489 NULL,
490 NULL, NULL);
491 gconf_client_notify_add(client,"/apps/gtodo/prefs/hide-nodate",
492 (GConfClientNotifyFunc) pref_gconf_changed_hide_nodate,
493 NULL,
494 NULL, NULL);
495 gconf_client_notify_add(client,"/apps/gtodo/prefs/hide-due",
496 (GConfClientNotifyFunc) pref_gconf_changed_hide_due,
497 NULL,
498 NULL, NULL);
499 gconf_client_notify_add(client,"/apps/gtodo/prefs/sort-type",
500 (GConfClientNotifyFunc) pref_gconf_changed_sort_type,
501 NULL,
502 NULL, NULL);
504 gconf_client_notify_add(client,"/apps/gtodo/prefs/sort-order",
505 (GConfClientNotifyFunc) pref_gconf_changed_sort_order,
506 NULL,
507 NULL, NULL);
509 gconf_client_notify_add(client,"/apps/gtodo/prefs/hl-today",
510 (GConfClientNotifyFunc) pref_gconf_changed_hl_today,
511 NULL,
512 NULL, NULL);
514 gconf_client_notify_add(client,"/apps/gtodo/prefs/hl-due",
515 (GConfClientNotifyFunc) pref_gconf_changed_hl_due,
516 NULL,
517 NULL, NULL);
518 gconf_client_notify_add(client,"/apps/gtodo/prefs/hl-indays",
519 (GConfClientNotifyFunc) pref_gconf_changed_hl_indays,
520 NULL,
521 NULL, NULL);
523 gconf_client_notify_add(client,"/apps/gtodo/view/enable-tray",
524 (GConfClientNotifyFunc) pref_gconf_changed_enable_tray,
525 NULL,
526 NULL, NULL);