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/pcs/cal-backend.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'calendar/pcs/cal-backend.c') diff --git a/calendar/pcs/cal-backend.c b/calendar/pcs/cal-backend.c index 0954c53472..19f8261797 100644 --- a/calendar/pcs/cal-backend.c +++ b/calendar/pcs/cal-backend.c @@ -141,6 +141,7 @@ cal_backend_class_init (CalBackendClass *class) class->obj_removed = NULL; class->get_uri = NULL; + class->get_email_address = NULL; class->open = NULL; class->is_loaded = NULL; class->get_query = NULL; @@ -182,6 +183,25 @@ cal_backend_get_uri (CalBackend *backend) return (* CLASS (backend)->get_uri) (backend); } +/** + * cal_backend_get_email_address: + * @backend: A calendar backend. + * + * Queries the email address associated with a calendar backend, which + * must already have an open calendar. + * + * Return value: The email address associated with the calendar. + **/ +const char * +cal_backend_get_email_address (CalBackend *backend) +{ + g_return_val_if_fail (backend != NULL, NULL); + g_return_val_if_fail (IS_CAL_BACKEND (backend), NULL); + + g_assert (CLASS (backend)->get_email_address != NULL); + return (* CLASS (backend)->get_email_address) (backend); +} + /* Callback used when a Cal is destroyed */ static void cal_destroy_cb (GtkObject *object, gpointer data) -- cgit