aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog4
-rw-r--r--calendar/gui/gnome-cal.c42
2 files changed, 35 insertions, 11 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 17376c1ad2..50af47523d 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,5 +1,9 @@
2004-01-05 Rodrigo Moya <rodrigo@ximian.com>
+ * gui/gnome-cal.c (gnome_calendar_construct): display the tasks'
+ primary selection in the task list, and actually open the tasks
+ folder.
+
* gui/e-tasks.c (e_tasks_set_default_uri): use the ECalModel to
get the client for a given URI.
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index a836047e90..e6a4cd3fd4 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -2023,6 +2023,7 @@ gnome_calendar_construct (GnomeCalendar *gcal)
{
GnomeCalendarPrivate *priv;
GnomeCalendarViewType view_type;
+ char *uid;
g_return_val_if_fail (gcal != NULL, NULL);
g_return_val_if_fail (GNOME_IS_CALENDAR (gcal), NULL);
@@ -2032,18 +2033,37 @@ gnome_calendar_construct (GnomeCalendar *gcal)
/*
* TaskPad Folder Client.
*/
- priv->task_pad_client = auth_new_cal_from_uri ("", E_CAL_SOURCE_TYPE_TODO); /* FIXME: use default tasks */
- if (!priv->task_pad_client)
- return NULL;
+ uid = calendar_config_get_primary_tasks ();
+ if (uid) {
+ ESourceList *source_list;
+ GConfClient *conf_client;
+
+ conf_client = gconf_client_get_default ();
+ source_list = e_source_list_new_for_gconf (conf_client, "/apps/evolution/tasks/sources");
+
+ priv->task_pad_client = auth_new_cal_from_source (
+ e_source_list_peek_source_by_uid (source_list, uid), E_CAL_SOURCE_TYPE_TODO);
+
+ g_object_unref (conf_client);
+ g_object_unref (source_list);
- g_signal_connect (priv->task_pad_client, "cal_opened",
- G_CALLBACK (client_cal_opened_cb), gcal);
- g_signal_connect (priv->task_pad_client, "backend_error",
- G_CALLBACK (backend_error_cb), gcal);
- g_signal_connect (priv->task_pad_client, "categories_changed",
- G_CALLBACK (client_categories_changed_cb), gcal);
- g_signal_connect (priv->task_pad_client, "backend_died",
- G_CALLBACK (backend_died_cb), gcal);
+ if (!priv->task_pad_client)
+ return NULL;
+
+ g_signal_connect (priv->task_pad_client, "cal_opened",
+ G_CALLBACK (client_cal_opened_cb), gcal);
+ g_signal_connect (priv->task_pad_client, "backend_error",
+ G_CALLBACK (backend_error_cb), gcal);
+ g_signal_connect (priv->task_pad_client, "categories_changed",
+ G_CALLBACK (client_categories_changed_cb), gcal);
+ g_signal_connect (priv->task_pad_client, "backend_died",
+ G_CALLBACK (backend_died_cb), gcal);
+
+ g_free (uid);
+
+ if (!e_cal_open (priv->task_pad_client, TRUE, NULL))
+ return NULL;
+ }
/* Get the default view to show. */
view_type = calendar_config_get_default_view ();