diff options
author | pchenthill <pchenthill@novell.com> | 2004-07-23 16:34:14 +0800 |
---|---|---|
committer | Sivaiah Nallagatla <siva@src.gnome.org> | 2004-07-23 16:34:14 +0800 |
commit | e49741fbd8cbec90754459fbb996c7a1be865d8e (patch) | |
tree | 438a0280288ebdfa6b21f2d06980ba2d36582ed2 /calendar/gui | |
parent | ad44453de22ab60267ddb33f8578d0840e57e228 (diff) | |
download | gsoc2013-evolution-e49741fbd8cbec90754459fbb996c7a1be865d8e.tar gsoc2013-evolution-e49741fbd8cbec90754459fbb996c7a1be865d8e.tar.gz gsoc2013-evolution-e49741fbd8cbec90754459fbb996c7a1be865d8e.tar.bz2 gsoc2013-evolution-e49741fbd8cbec90754459fbb996c7a1be865d8e.tar.lz gsoc2013-evolution-e49741fbd8cbec90754459fbb996c7a1be865d8e.tar.xz gsoc2013-evolution-e49741fbd8cbec90754459fbb996c7a1be865d8e.tar.zst gsoc2013-evolution-e49741fbd8cbec90754459fbb996c7a1be865d8e.zip |
Fixes #59983 If the ecal component is already loaded, check for the
2004-07-23 pchenthill <pchenthill@novell.com>
Fixes #59983
* gui/e-itip-control.c (show_current_event):
If the ecal component is already loaded, check for the participation
status of the attendee and display the menu for selecting the
calendar.
svn path=/trunk/; revision=26712
Diffstat (limited to 'calendar/gui')
-rw-r--r-- | calendar/gui/e-itip-control.c | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/calendar/gui/e-itip-control.c b/calendar/gui/e-itip-control.c index 89ecaf110b..c567c0b2a2 100644 --- a/calendar/gui/e-itip-control.c +++ b/calendar/gui/e-itip-control.c @@ -1216,8 +1216,37 @@ show_current_event (EItipControl *itip) itip_desc = _("<b>%s</b> requests the presence of %s at a meeting."); 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); + itip_title = _("Meeting Proposal"); + if (priv->current_ecal) { + ECalComponentAttendee *attendee= NULL, *tmp; + char *email_add; + GList *attendee_list, *l; + + e_cal_component_get_attendee_list (priv->comp, &attendee_list); + e_cal_get_cal_address (priv->current_ecal, &email_add, NULL); + + for (l = attendee_list; l ; l = g_slist_next (l)) { + tmp = (ECalComponentAttendee *) (l->data); + if (!strcmp (tmp->value + 7, email_add)) { + 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."); |