From 11c1a83ffcae03776ff109e6ac085c1975af4b29 Mon Sep 17 00:00:00 2001 From: Iain Holmes Date: Wed, 19 Sep 2001 20:29:29 +0000 Subject: Open editors for tasks and appointments svn path=/trunk/; revision=12986 --- my-evolution/ChangeLog | 9 +++++++++ my-evolution/e-summary-calendar.c | 36 ++++++++++++++++++++++++++++++++++-- my-evolution/e-summary-tasks.c | 38 ++++++++++++++++++++++++++++++++++---- 3 files changed, 77 insertions(+), 6 deletions(-) diff --git a/my-evolution/ChangeLog b/my-evolution/ChangeLog index 21d40bdd8d..c6896838ff 100644 --- a/my-evolution/ChangeLog +++ b/my-evolution/ChangeLog @@ -1,3 +1,12 @@ +2001-09-19 Iain Holmes + + * e-summary-tasks.c (e_summary_tasks_protocol): Open a task editor. + (generate_html): Embed the uid of the task in the url. + + * e-summary-calendar.c (e_summary_calendar_protocol): Open a calendar + editor. + (generate_html): Embed the uid of the task in the url. + 2001-09-19 Larry Ewing * e-summary-rdf.c (read_callback): remove redundant if. diff --git a/my-evolution/e-summary-calendar.c b/my-evolution/e-summary-calendar.c index 85c14546b0..d06496209b 100644 --- a/my-evolution/e-summary-calendar.c +++ b/my-evolution/e-summary-calendar.c @@ -22,6 +22,8 @@ #include #include +#include + struct _ESummaryCalendar { CalClient *client; @@ -40,6 +42,7 @@ e_summary_calendar_get_html (ESummary *summary) } typedef struct { + char *uid; CalComponent *comp; CalComponentDateTime dt; icaltimezone *zone; @@ -80,6 +83,7 @@ uids_to_array (ESummary *summary, event = g_new (ESummaryCalEvent, 1); + event->uid = g_strdup (p->data); status = cal_client_get_object (client, p->data, &event->comp); if (status != CAL_CLIENT_GET_SUCCESS) { g_free (event); @@ -113,6 +117,7 @@ free_event_array (GPtrArray *array) ESummaryCalEvent *event; event = array->pdata[i]; + g_free (event->uid); gtk_object_unref (GTK_OBJECT (event->comp)); } @@ -203,8 +208,8 @@ generate_html (gpointer data) tmp = g_strdup_printf ("   " - "%s, %s
", - start_str, text.value); + "%s, %s
", + event->uid, start_str, text.value); g_free (start_str); g_string_append (string, tmp); @@ -249,7 +254,34 @@ e_summary_calendar_protocol (ESummary *summary, const char *uri, void *closure) { + ESummaryCalendar *calendar; + CORBA_Environment ev; + const char *comp_uri; + GNOME_Evolution_Calendar_CompEditorFactory factory; + + calendar = (ESummaryCalendar *) closure; + + comp_uri = cal_client_get_uri (calendar->client); + + /* Get the factory */ + CORBA_exception_init (&ev); + factory = oaf_activate_from_id ("OAFIID:GNOME_Evolution_Calendar_CompEditorFactory", 0, NULL, &ev); + if (BONOBO_EX (&ev)) { + g_message ("%d: Could not activate the component editor factory (%s)", __FUNCTION__, + CORBA_exception_id (&ev)); + CORBA_exception_free (&ev); + return; + } + + GNOME_Evolution_Calendar_CompEditorFactory_editExisting (factory, comp_uri, (char *)uri + 10, &ev); + if (BONOBO_EX (&ev)) { + g_message ("%s: Execption while editing the component (%s)", __FUNCTION__, + CORBA_exception_id (&ev)); + } + + CORBA_exception_free (&ev); + bonobo_object_release_unref (factory, NULL); } static gboolean diff --git a/my-evolution/e-summary-tasks.c b/my-evolution/e-summary-tasks.c index a44b0dbae2..5108e909a1 100644 --- a/my-evolution/e-summary-tasks.c +++ b/my-evolution/e-summary-tasks.c @@ -18,6 +18,9 @@ #include #include +#include +#include + struct _ESummaryTasks { CalClient *client; @@ -248,8 +251,8 @@ generate_html (gpointer data) if (completed == NULL) { tmp = g_strdup_printf ("   " - "%s
", - text.value ? text.value : _("(No Description)")); + "%s
", + uid, text.value ? text.value : _("(No Description)")); } else { #if 0 tmp = g_strdup_printf ("client); + + /* Get the factory */ + CORBA_exception_init (&ev); + factory = oaf_activate_from_id ("OAFIID:GNOME_Evolution_Calendar_CompEditorFactory", 0, NULL, &ev); + if (BONOBO_EX (&ev)) { + g_message ("%d: Could not activate the component editor factory (%s)", __FUNCTION__, + CORBA_exception_id (&ev)); + CORBA_exception_free (&ev); + return; + } + + GNOME_Evolution_Calendar_CompEditorFactory_editExisting (factory, comp_uri, (char *)uri + 7, &ev); + + if (BONOBO_EX (&ev)) { + g_message ("%s: Execption while editing the component (%s)", __FUNCTION__, + CORBA_exception_id (&ev)); + } + + CORBA_exception_free (&ev); + bonobo_object_release_unref (factory, NULL); } void -- cgit v1.2.3