From fc2c499f8bc737190309484a96e13dccd3cefbdf Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Fri, 27 Sep 2002 20:23:20 +0000 Subject: Non-Connector part of #29334 (meeting created by a delegate in the delegator's calendar should have the delegator as Organizer). * idl/evolution-calendar.idl: add Cal_getEmailAddress, to return the email address associated with a backend (if any). * pcs/cal-backend.c (cal_backend_get_email_address): New. * pcs/cal-backend-file.c (cal_backend_file_get_email_address): Return NULL (for now). * pcs/cal.c (impl_Cal_get_email_address): Implement this by calling cal_backend_get_email_address and returning a NotFound exception if it returns NULL. * cal-client/cal-client.c (cal_client_get_email_address): New. (cal_client_init, cal_client_destroy, etc): initialize/free email_address * gui/dialogs/event-editor.c (event_editor_construct): Split this out of event_editor_init. Take and set a CalClient. (event_editor_new): Take a CalClient. * gui/dialogs/task-editor.c (task_editor_construct, task_editor_new): Likewise. * gui/dialogs/meeting-page.c (meeting_page_new, meeting_page_construct): Take a CalClient and call cal_client_get_email_address to find the default organizer address. (Also fix a bug if the default account's name has non-ASCII characters.) * gui/itip-utils.c (comp_from): New. When sending a REQUEST or CANCEL, use the Organizer as the From address. (itip_send_comp): Call comp_from and pass the result to Composer_setHeaders. * gui/comp-editor-factory.c (edit_existing, edit_new): Pass the CalClient to event_editor_new/task_editor_new * gui/e-calendar-table.c (open_task): Likewise. * gui/e-tasks.c (e_tasks_new_task): Likewise. * gui/gnome-cal.c (gnome_calendar_edit_object, gnome_calendar_new_task): Likewise. svn path=/trunk/; revision=18253 --- calendar/gui/dialogs/task-editor.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'calendar/gui/dialogs/task-editor.c') diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c index 6261b8deda..e3c55ffe29 100644 --- a/calendar/gui/dialogs/task-editor.c +++ b/calendar/gui/dialogs/task-editor.c @@ -176,6 +176,19 @@ task_editor_init (TaskEditor *te) priv = g_new0 (TaskEditorPrivate, 1); te->priv = priv; + priv->model = E_MEETING_MODEL (e_meeting_model_new ()); + priv->assignment_shown = TRUE; + priv->updating = FALSE; + +} + +TaskEditor * +task_editor_construct (TaskEditor *te, CalClient *client) +{ + TaskEditorPrivate *priv; + + priv = te->priv; + priv->task_page = task_page_new (); comp_editor_append_page (COMP_EDITOR (te), COMP_EDITOR_PAGE (priv->task_page), @@ -186,20 +199,19 @@ task_editor_init (TaskEditor *te) COMP_EDITOR_PAGE (priv->task_details_page), _("Details")); - priv->model = E_MEETING_MODEL (e_meeting_model_new ()); - - priv->meet_page = meeting_page_new (priv->model); + priv->meet_page = meeting_page_new (priv->model, client); comp_editor_append_page (COMP_EDITOR (te), COMP_EDITOR_PAGE (priv->meet_page), _("Assignment")); - comp_editor_merge_ui (COMP_EDITOR (te), "evolution-task-editor.xml", verbs, NULL); + comp_editor_set_cal_client (COMP_EDITOR (te), client); - priv->assignment_shown = TRUE; - priv->updating = FALSE; + comp_editor_merge_ui (COMP_EDITOR (te), "evolution-task-editor.xml", verbs, NULL); init_widgets (te); set_menu_sens (te); + + return te; } static void @@ -334,6 +346,7 @@ task_editor_destroy (GtkObject *object) /** * task_editor_new: + * @client: a CalClient * * Creates a new event editor dialog. * @@ -341,9 +354,12 @@ task_editor_destroy (GtkObject *object) * editor could not be created. **/ TaskEditor * -task_editor_new (void) +task_editor_new (CalClient *client) { - return TASK_EDITOR (gtk_type_new (TYPE_TASK_EDITOR)); + TaskEditor *te; + + te = TASK_EDITOR (gtk_type_new (TYPE_TASK_EDITOR)); + return task_editor_construct (te, client); } static void -- cgit v1.2.3