diff options
-rw-r--r-- | calendar/ChangeLog | 9 | ||||
-rw-r--r-- | calendar/gui/e-itip-control.c | 32 |
2 files changed, 39 insertions, 2 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 6446884d96..bf45400436 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,10 @@ +2004-07-25 pchenthill <pchenthill@novell.com> + + Fixes #59983 + If the ecal component is already loaded, check for the participation + status of the attendee and display the menu for selecting the + calendar. + 2004-07-23 JP Rosevear <jpr@ximian.com> Fixes #61571 @@ -7340,4 +7347,4 @@ 2003-09-04 Rodrigo Moya <rodrigo@ximian.com> - * gui/e-day-vie
\ No newline at end of file + * gui/e-day-vie diff --git a/calendar/gui/e-itip-control.c b/calendar/gui/e-itip-control.c index 89ecaf110b..f62ff943aa 100644 --- a/calendar/gui/e-itip-control.c +++ b/calendar/gui/e-itip-control.c @@ -1217,7 +1217,37 @@ show_current_event (EItipControl *itip) else itip_desc = _("<b>%s</b> requests your presence at a meeting."); itip_title = _("Meeting Proposal"); - options = get_request_options (priv->current_ecal ? FALSE : TRUE); + if (priv->current_ecal) { + ECalComponentAttendee *attendee= NULL, *tmp; + GList *attendee_list, *l; + + e_cal_component_get_attendee_list (priv->comp, &attendee_list); + if (priv->my_address == NULL) + find_my_address (itip, priv->ical_comp); + g_assert (priv->my_address != NULL); + + for (l = attendee_list; l ; l = g_slist_next (l)) { + tmp = (ECalComponentAttendee *) (l->data); + if (!strcmp (tmp->value + 7, priv->my_address)) { + attendee = tmp; + break; + } + } + if (attendee) { + switch (attendee->status) { + case ICAL_PARTSTAT_ACCEPTED: + case ICAL_PARTSTAT_DECLINED: + case ICAL_PARTSTAT_TENTATIVE: + options = get_request_options (FALSE); + break; + + /* otherwise it must be needs action */ + default: + options = get_request_options (TRUE); + } + } + } else + options = get_request_options (TRUE); break; case ICAL_METHOD_ADD: itip_desc = _("<b>%s</b> wishes to add to an existing meeting."); |