aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpchenthill <pchenthill@novell.com>2004-07-26 20:07:04 +0800
committerSivaiah Nallagatla <siva@src.gnome.org>2004-07-26 20:07:04 +0800
commit895cdc3bbeb6399b1547df41903d5e8dc6da9956 (patch)
tree0a3fd98b24d6ad647c25c25613ab09c7e68316e6
parent7c0a081917af89f2810eab7986fee112dbe59fce (diff)
downloadgsoc2013-evolution-895cdc3bbeb6399b1547df41903d5e8dc6da9956.tar.gz
gsoc2013-evolution-895cdc3bbeb6399b1547df41903d5e8dc6da9956.tar.zst
gsoc2013-evolution-895cdc3bbeb6399b1547df41903d5e8dc6da9956.zip
Fixes #59983 If the ecal component is already loaded, check for the
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. svn path=/trunk/; revision=26732
-rw-r--r--calendar/ChangeLog9
-rw-r--r--calendar/gui/e-itip-control.c32
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.");