aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/itip-formatter/ChangeLog6
-rw-r--r--plugins/itip-formatter/itip-formatter.c44
2 files changed, 45 insertions, 5 deletions
diff --git a/plugins/itip-formatter/ChangeLog b/plugins/itip-formatter/ChangeLog
index 379c562fc8..1d8341f752 100644
--- a/plugins/itip-formatter/ChangeLog
+++ b/plugins/itip-formatter/ChangeLog
@@ -1,5 +1,11 @@
2005-01-03 JP Rosevear <jpr@novell.com>
+ * itip-formatter.c (find_cal_opened_cb): move the adjust item work
+ here when we actually have the calendar
+ (pitip_free): implement a free function
+
+2005-01-03 JP Rosevear <jpr@novell.com>
+
* itip-view.h: add response enums
* itip-view.c (set_buttons): fiddle with button names and response enums
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c
index 7944d7be0a..6fe199f786 100644
--- a/plugins/itip-formatter/itip-formatter.c
+++ b/plugins/itip-formatter/itip-formatter.c
@@ -358,6 +358,12 @@ find_cal_opened_cb (ECal *ecal, ECalendarStatus status, gpointer data)
pitip->current_ecal = ecal;
+ /* 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? */
+ if (pitip->method == ICAL_METHOD_REPLY || pitip->method == ICAL_METHOD_REFRESH)
+ adjust_item (pitip, pitip->comp);
+
/* We clear everything because we don't really care
* about any other info/warnings now we found an
* existing versions */
@@ -1054,10 +1060,6 @@ format_itip_object (EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject
break;
case ICAL_METHOD_REPLY:
case ICAL_METHOD_REFRESH:
- /* Provide extra info, since its not in the component */
- /* FIXME Check sequence number of meeting? */
- adjust_item (pitip, pitip->comp);
-
case ICAL_METHOD_COUNTER:
case ICAL_METHOD_DECLINECOUNTER:
/* An attendee sent this */
@@ -1165,7 +1167,39 @@ pitip_free (EMFormatHTMLPObject *pobject)
{
FormatItipPObject *pitip = (FormatItipPObject *) pobject;
-
+ g_free (pitip->vcalendar);
+ pitip->vcalendar = NULL;
+
+ if (pitip->comp) {
+ g_object_unref (pitip->comp);
+ pitip->comp = NULL;
+ }
+
+ if (pitip->top_level) {
+ icalcomponent_free (pitip->top_level);
+ pitip->top_level = NULL;
+ }
+
+ if (pitip->main_comp) {
+ icalcomponent_free (pitip->main_comp);
+ pitip->main_comp = NULL;
+ }
+ pitip->ical_comp = NULL;
+
+ pitip->current = 0;
+ pitip->total = 0;
+
+ g_free (pitip->calendar_uid);
+ pitip->calendar_uid = NULL;
+
+ g_free (pitip->from_address);
+ pitip->from_address = NULL;
+ g_free (pitip->delegator_address);
+ pitip->delegator_address = NULL;
+ g_free (pitip->delegator_name);
+ pitip->delegator_name = NULL;
+ g_free (pitip->my_address);
+ pitip->my_address = NULL;
}
void