diff options
Diffstat (limited to 'calendar/gui/dialogs/send-comp.c')
-rw-r--r-- | calendar/gui/dialogs/send-comp.c | 59 |
1 files changed, 3 insertions, 56 deletions
diff --git a/calendar/gui/dialogs/send-comp.c b/calendar/gui/dialogs/send-comp.c index 70dd372400..9be9406965 100644 --- a/calendar/gui/dialogs/send-comp.c +++ b/calendar/gui/dialogs/send-comp.c @@ -31,6 +31,7 @@ #include <glib/gi18n-lib.h> #include "e-util/e-util.h" +#include "gui/itip-utils.h" static gboolean component_has_new_attendees (ECalComponent *comp) @@ -44,60 +45,6 @@ component_has_new_attendees (ECalComponent *comp) } static gboolean -component_has_recipients (ECalComponent *comp) -{ - GSList *attendees = NULL; - ECalComponentAttendee *attendee; - ECalComponentOrganizer organizer; - gboolean res = FALSE; - - g_return_val_if_fail (comp != NULL, FALSE); - - e_cal_component_get_organizer (comp, &organizer); - e_cal_component_get_attendee_list (comp, &attendees); - - if (!attendees) { - if (organizer.value && e_cal_component_get_vtype (comp) == E_CAL_COMPONENT_JOURNAL) { - /* memos store recipients in an extra property */ - icalcomponent *icalcomp; - icalproperty *icalprop; - - icalcomp = e_cal_component_get_icalcomponent (comp); - - for (icalprop = icalcomponent_get_first_property (icalcomp, ICAL_X_PROPERTY); - icalprop != NULL; - icalprop = icalcomponent_get_next_property (icalcomp, ICAL_X_PROPERTY)) { - const gchar *x_name; - - x_name = icalproperty_get_x_name (icalprop); - - if (g_str_equal (x_name, "X-EVOLUTION-RECIPIENTS")) { - const gchar *str_recipients = icalproperty_get_x (icalprop); - - res = str_recipients && g_ascii_strcasecmp (organizer.value, str_recipients) != 0; - break; - } - } - } - - return res; - } - - if (g_slist_length (attendees) > 1 || !e_cal_component_has_organizer (comp)) { - e_cal_component_free_attendee_list (attendees); - return TRUE; - } - - attendee = attendees->data; - - res = organizer.value && attendee && attendee->value && g_ascii_strcasecmp (organizer.value, attendee->value) != 0; - - e_cal_component_free_attendee_list (attendees); - - return res; -} - -static gboolean have_nonprocedural_alarm (ECalComponent *comp) { GList *uids, *l; @@ -174,7 +121,7 @@ send_component_dialog (GtkWindow *parent, if (strip_alarms) *strip_alarms = TRUE; - if (e_cal_client_check_save_schedules (client) || !component_has_recipients (comp)) + if (e_cal_client_check_save_schedules (client) || !itip_component_has_recipients (comp)) return FALSE; vtype = e_cal_component_get_vtype (comp); @@ -263,7 +210,7 @@ send_dragged_or_resized_component_dialog (GtkWindow *parent, if (strip_alarms) *strip_alarms = TRUE; - if (e_cal_client_check_save_schedules (client) || !component_has_recipients (comp)) + if (e_cal_client_check_save_schedules (client) || !itip_component_has_recipients (comp)) save_schedules = TRUE; vtype = e_cal_component_get_vtype (comp); |