aboutsummaryrefslogtreecommitdiffstats
path: root/my-evolution/e-summary-tasks.c
diff options
context:
space:
mode:
authorIain Holmes <iain@src.gnome.org>2001-09-20 04:29:29 +0800
committerIain Holmes <iain@src.gnome.org>2001-09-20 04:29:29 +0800
commit11c1a83ffcae03776ff109e6ac085c1975af4b29 (patch)
treeaf9d26fdf558eebb6a6eae5c56d6cfd2f108c733 /my-evolution/e-summary-tasks.c
parentcfe4b2026b5711caa63aaacce433a368e31adebb (diff)
downloadgsoc2013-evolution-11c1a83ffcae03776ff109e6ac085c1975af4b29.tar.gz
gsoc2013-evolution-11c1a83ffcae03776ff109e6ac085c1975af4b29.tar.zst
gsoc2013-evolution-11c1a83ffcae03776ff109e6ac085c1975af4b29.zip
Open editors for tasks and appointments
svn path=/trunk/; revision=12986
Diffstat (limited to 'my-evolution/e-summary-tasks.c')
-rw-r--r--my-evolution/e-summary-tasks.c38
1 files changed, 34 insertions, 4 deletions
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 <cal-client/cal-client.h>
#include <cal-util/timeutil.h>
+#include <bonobo/bonobo-exception.h>
+#include <liboaf/liboaf.h>
+
struct _ESummaryTasks {
CalClient *client;
@@ -248,8 +251,8 @@ generate_html (gpointer data)
if (completed == NULL) {
tmp = g_strdup_printf ("<img align=\"middle\" src=\"task.xpm\" "
"alt=\"\" width=\"16\" height=\"16\"> &#160; "
- "<font size=\"-1\"><a href=\"evolution:/local/Tasks\">%s</a></font><br>",
- text.value ? text.value : _("(No Description)"));
+ "<font size=\"-1\"><a href=\"tasks:/%s\">%s</a></font><br>",
+ uid, text.value ? text.value : _("(No Description)"));
} else {
#if 0
tmp = g_strdup_printf ("<img align=\"middle\" src=\"task.xpm\" "
@@ -300,10 +303,37 @@ obj_changed_cb (CalClient *client,
static void
e_summary_tasks_protocol (ESummary *summary,
- const char *uri,
- void *closure)
+ const char *uri,
+ void *closure)
{
+ ESummaryTasks *tasks;
+ CORBA_Environment ev;
+ const char *comp_uri;
+ GNOME_Evolution_Calendar_CompEditorFactory factory;
+
+ tasks = (ESummaryTasks *) closure;
+ comp_uri = cal_client_get_uri (tasks->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