aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/itip-formatter/itip-formatter.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@novell.com>2005-01-07 23:58:17 +0800
committerJP Rosevear <jpr@src.gnome.org>2005-01-07 23:58:17 +0800
commit30ef2f04dbb8180543fd98670517a3851940960a (patch)
tree0382a138df0b4bdbd7afa5f17e1b340c30cc545c /plugins/itip-formatter/itip-formatter.c
parent3189458511655d73566b9eaf698dbbae8be02f2a (diff)
downloadgsoc2013-evolution-30ef2f04dbb8180543fd98670517a3851940960a.tar
gsoc2013-evolution-30ef2f04dbb8180543fd98670517a3851940960a.tar.gz
gsoc2013-evolution-30ef2f04dbb8180543fd98670517a3851940960a.tar.bz2
gsoc2013-evolution-30ef2f04dbb8180543fd98670517a3851940960a.tar.lz
gsoc2013-evolution-30ef2f04dbb8180543fd98670517a3851940960a.tar.xz
gsoc2013-evolution-30ef2f04dbb8180543fd98670517a3851940960a.tar.zst
gsoc2013-evolution-30ef2f04dbb8180543fd98670517a3851940960a.zip
add protos
2005-01-07 JP Rosevear <jpr@novell.com> * itip-view.h: add protos * itip-view.c (set_sender_text): update descriptions better (set_status_text): show/hide status (set_comment_text): show/hide comment (set_buttons): update buttons for add an refresh (itip_view_destroy): free comment/status (itip_view_init): add status/comment widgets (itip_view_set_status): accessor (itip_view_get_status): ditto (itip_view_set_comment): ditto (itip_view_get_comment): ditto * itip-formatter.c (find_cal_opened_cb): make sure rsvp is off for publish (format_itip_object): decline counter is sent by an organizer; set status and comment when appropriate svn path=/trunk/; revision=28270
Diffstat (limited to 'plugins/itip-formatter/itip-formatter.c')
-rw-r--r--plugins/itip-formatter/itip-formatter.c52
1 files changed, 44 insertions, 8 deletions
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c
index bcd0a1d2c8..9a4d5d49cb 100644
--- a/plugins/itip-formatter/itip-formatter.c
+++ b/plugins/itip-formatter/itip-formatter.c
@@ -397,6 +397,7 @@ find_cal_opened_cb (ECal *ecal, ECalendarStatus status, gpointer data)
/* Provide extra info, since its not in the component */
/* FIXME Check sequence number of meeting? */
/* FIXME Do we need to adjust elsewhere for the delegated calendar item? */
+ /* FIXME Need to update the fields in the view now */
if (pitip->method == ICAL_METHOD_REPLY || pitip->method == ICAL_METHOD_REFRESH)
adjust_item (pitip, pitip->comp);
@@ -448,8 +449,8 @@ find_cal_opened_cb (ECal *ecal, ECalendarStatus status, gpointer data)
/* The only method that RSVP makes sense for is REQUEST */
/* FIXME Default to the suggestion for RSVP for my attendee */
- itip_view_set_rsvp (ITIP_VIEW (pitip->view), TRUE);
- itip_view_set_show_rsvp (ITIP_VIEW (pitip->view), pitip->method == ICAL_METHOD_REQUEST ? TRUE : FALSE );
+ itip_view_set_rsvp (ITIP_VIEW (pitip->view), pitip->method == ICAL_METHOD_REQUEST ? TRUE : FALSE);
+ itip_view_set_show_rsvp (ITIP_VIEW (pitip->view), pitip->method == ICAL_METHOD_REQUEST ? TRUE : FALSE);
itip_view_remove_lower_info_item (ITIP_VIEW (pitip->view), pitip->progress_info_id);
pitip->progress_info_id = 0;
@@ -1039,6 +1040,7 @@ format_itip_object (EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject
case ICAL_METHOD_REQUEST:
case ICAL_METHOD_ADD:
case ICAL_METHOD_CANCEL:
+ case ICAL_METHOD_DECLINECOUNTER:
/* An organizer sent this */
e_cal_component_get_organizer (pitip->comp, &organizer);
itip_view_set_organizer (ITIP_VIEW (pitip->view), organizer.cn ? organizer.cn : itip_strip_mailto (organizer.value));
@@ -1054,7 +1056,6 @@ format_itip_object (EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject
case ICAL_METHOD_REPLY:
case ICAL_METHOD_REFRESH:
case ICAL_METHOD_COUNTER:
- case ICAL_METHOD_DECLINECOUNTER:
/* An attendee sent this */
e_cal_component_get_attendee_list (pitip->comp, &list);
if (list != NULL) {
@@ -1066,11 +1067,11 @@ format_itip_object (EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject
e_cal_component_free_attendee_list (list);
}
-
break;
default:
/* FIXME What to do here? */
itip_view_set_mode (ITIP_VIEW (pitip->view), ITIP_VIEW_MODE_ERROR);
+ break;
}
e_cal_component_get_summary (pitip->comp, &text);
@@ -1079,16 +1080,51 @@ format_itip_object (EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject
e_cal_component_get_location (pitip->comp, &string);
itip_view_set_location (ITIP_VIEW (pitip->view), string);
- e_cal_component_get_location (pitip->comp, &string);
- itip_view_set_location (ITIP_VIEW (pitip->view), string);
+ /* Status really only applies for REPLY */
+ if (pitip->method == ICAL_METHOD_REPLY) {
+ e_cal_component_get_attendee_list (pitip->comp, &list);
+ if (list != NULL) {
+ ECalComponentAttendee *a = list->data;
+
+ switch (a->status) {
+ case ICAL_PARTSTAT_ACCEPTED:
+ itip_view_set_status (ITIP_VIEW (pitip->view), _("Accepted"));
+ break;
+ case ICAL_PARTSTAT_TENTATIVE:
+ itip_view_set_status (ITIP_VIEW (pitip->view), _("Tentatively Accepted"));
+ break;
+ case ICAL_PARTSTAT_DECLINED:
+ itip_view_set_status (ITIP_VIEW (pitip->view), _("Declined"));
+ break;
+ default:
+ itip_view_set_status (ITIP_VIEW (pitip->view), _("Unknown"));
+ }
+ }
+ e_cal_component_free_attendee_list (list);
+ }
+ if (pitip->method == ICAL_METHOD_REPLY
+ || pitip->method == ICAL_METHOD_COUNTER
+ || pitip->method == ICAL_METHOD_DECLINECOUNTER) {
+ /* FIXME Check spec to see if multiple comments are actually valid */
+ /* Comments for ITIP are limited to one per object */
+ e_cal_component_get_comment_list (pitip->comp, &list);
+ if (list) {
+ ECalComponentText *text = list->data;
+
+ if (text->value)
+ itip_view_set_comment (ITIP_VIEW (pitip->view), text->value);
+ }
+ e_cal_component_free_text_list (list);
+ }
+
e_cal_component_get_description_list (pitip->comp, &list);
for (l = list; l; l = l->next) {
ECalComponentText *text = l->data;
- if (!gstring)
+ if (!gstring && text->value)
gstring = g_string_new (text->value);
- else
+ else if (text->value)
g_string_append_printf (gstring, "\n\n%s", text->value);
}
e_cal_component_free_text_list (list);