[evolution/wip/mcrha/eds-libical-glib] src/calendar/gui the first three e-comp-editor-page files



commit c3aef554999347c707b3b4037ef655f7936363b3
Author: Milan Crha <mcrha redhat com>
Date:   Wed Mar 27 18:59:02 2019 +0100

    src/calendar/gui the first three e-comp-editor-page files

 src/calendar/gui/e-comp-editor-page-attachments.c |  98 +++++-----
 src/calendar/gui/e-comp-editor-page-general.c     | 211 ++++++++++++----------
 src/calendar/gui/e-comp-editor-page.c             |  16 +-
 3 files changed, 176 insertions(+), 149 deletions(-)
---
diff --git a/src/calendar/gui/e-comp-editor-page-attachments.c 
b/src/calendar/gui/e-comp-editor-page-attachments.c
index def5ccbfc5..c371bf3a72 100644
--- a/src/calendar/gui/e-comp-editor-page-attachments.c
+++ b/src/calendar/gui/e-comp-editor-page-attachments.c
@@ -247,76 +247,74 @@ ecep_attachments_sensitize_widgets (ECompEditorPage *page,
 
 static void
 ecep_attachments_fill_widgets (ECompEditorPage *page,
-                              icalcomponent *component)
+                              ICalComponent *component)
 {
        ECompEditorPageAttachments *page_attachments;
        EAttachmentStore *store;
-       icalproperty *prop;
+       ICalProperty *prop;
        const gchar *uid;
        gint index;
 
        g_return_if_fail (E_IS_COMP_EDITOR_PAGE_ATTACHMENTS (page));
-       g_return_if_fail (component != NULL);
+       g_return_if_fail (I_CAL_IS_COMPONENT (component));
 
        E_COMP_EDITOR_PAGE_CLASS (e_comp_editor_page_attachments_parent_class)->fill_widgets (page, 
component);
 
        page_attachments = E_COMP_EDITOR_PAGE_ATTACHMENTS (page);
        store = E_ATTACHMENT_STORE (page_attachments->priv->store);
 
-       uid = icalcomponent_get_uid (component);
+       uid = i_cal_component_get_uid (component);
 
        g_slist_free_full (page_attachments->priv->temporary_files, temporary_file_free);
        page_attachments->priv->temporary_files = NULL;
 
        e_attachment_store_remove_all (store);
 
-       for (prop = icalcomponent_get_first_property (component, ICAL_ATTACH_PROPERTY), index = 0;
+       for (prop = i_cal_component_get_first_property (component, I_CAL_ATTACH_PROPERTY), index = 0;
             prop;
-            prop = icalcomponent_get_next_property (component, ICAL_ATTACH_PROPERTY), index++) {
-               icalparameter *param;
-               icalattach *attach;
+            g_object_unref (prop), prop = i_cal_component_get_next_property (component, 
I_CAL_ATTACH_PROPERTY), index++) {
+               ICalParameter *param;
+               ICalAttach *attach;
                gchar *uri = NULL, *filename = NULL;
 
-               attach = icalproperty_get_attach (prop);
+               attach = i_cal_property_get_attach (prop);
                if (!attach)
                        continue;
 
-               param = icalproperty_get_first_parameter (prop, ICAL_FILENAME_PARAMETER);
+               param = i_cal_property_get_first_parameter (prop, I_CAL_FILENAME_PARAMETER);
                if (param) {
-                       filename = g_strdup (icalparameter_get_filename (param));
+                       filename = g_strdup (i_cal_parameter_get_filename (param));
                        if (!filename || !*filename) {
                                g_free (filename);
                                filename = NULL;
                        }
+
+                       g_clear_object (&param);
                }
 
-               if (icalattach_get_is_url (attach)) {
+               if (i_cal_attach_get_is_url (attach)) {
                        const gchar *data;
-                       gsize buf_size;
-
-                       data = icalattach_get_url (attach);
-                       buf_size = strlen (data);
-                       uri = g_malloc0 (buf_size + 1);
 
-                       icalvalue_decode_ical_string (data, uri, buf_size);
+                       data = i_cal_attach_get_url (attach);
+                       uri = i_cal_value_decode_ical_string (data);
                } else {
                        gchar *temporary_filename = NULL;
-                       icalparameter *encoding_par = icalproperty_get_first_parameter (prop, 
ICAL_ENCODING_PARAMETER);
+                       ICalParameter *encoding_par = i_cal_property_get_first_parameter (prop, 
I_CAL_ENCODING_PARAMETER);
                        if (encoding_par) {
-                               gchar *str_value = icalproperty_get_value_as_string_r (prop);
+                               gchar *str_value = i_cal_property_get_value_as_string_r (prop);
 
                                if (str_value) {
-                                       icalparameter_encoding encoding = icalparameter_get_encoding 
(encoding_par);
+                                       ICalParameterEncoding encoding = i_cal_parameter_get_encoding 
(encoding_par);
                                        guint8 *data = NULL;
                                        gsize data_len = 0;
 
                                        switch (encoding) {
-                                       case ICAL_ENCODING_8BIT:
+                                       case I_CAL_ENCODING_8BIT:
                                                data = (guint8 *) str_value;
                                                data_len = strlen (str_value);
                                                str_value = NULL;
                                                break;
-                                       case ICAL_ENCODING_BASE64:
+                                       case I_CAL_ENCODING_BASE64:
                                                data = g_base64_decode (str_value, &data_len);
                                                break;
                                        default:
@@ -325,14 +323,13 @@ ecep_attachments_fill_widgets (ECompEditorPage *page,
 
                                        if (data) {
                                                gchar *dir, *id_str;
-                                               struct icaltimetype rid_tt;
                                                gchar *rid;
 
-                                               rid_tt = icalcomponent_get_recurrenceid (component);
-                                               if (icaltime_is_null_time (rid_tt) || !icaltime_is_valid_time 
(rid_tt))
+                                               rid = e_cal_util_component_get_recurid_as_string (component);
+                                               if (rid && !*rid) {
+                                                       g_free (rid);
                                                        rid = NULL;
-                                               else
-                                                       rid = icaltime_as_ical_string_r (rid_tt);
+                                               }
 
                                                id_str = g_strconcat (uid, rid ? "-" : NULL, rid, NULL);
 
@@ -342,13 +339,13 @@ ecep_attachments_fill_widgets (ECompEditorPage *page,
                                                g_free (id_str);
 
                                                if (g_mkdir_with_parents (dir, 0700) >= 0) {
-                                                       for (param = icalproperty_get_first_parameter (prop, 
ICAL_X_PARAMETER);
+                                                       for (param = i_cal_property_get_first_parameter 
(prop, I_CAL_X_PARAMETER);
                                                             param && !filename;
-                                                            param = icalproperty_get_next_parameter (prop, 
ICAL_X_PARAMETER)) {
-                                                               if (e_util_strstrcase 
(icalparameter_get_xname (param), "NAME") &&
-                                                                   icalparameter_get_xvalue (param) &&
-                                                                   *icalparameter_get_xvalue (param)) {
-                                                                       filename = g_strdup 
(icalparameter_get_xvalue (param));
+                                                            g_object_unref (param), param = 
i_cal_property_get_next_parameter (prop, I_CAL_X_PARAMETER)) {
+                                                               if (e_util_strstrcase 
(i_cal_parameter_get_xname (param), "NAME") &&
+                                                                   i_cal_parameter_get_xvalue (param) &&
+                                                                   *i_cal_parameter_get_xvalue (param)) {
+                                                                       filename = g_strdup 
(i_cal_parameter_get_xvalue (param));
                                                                        if (!filename || !*filename) {
                                                                                g_free (filename);
                                                                                filename = NULL;
@@ -356,6 +353,8 @@ ecep_attachments_fill_widgets (ECompEditorPage *page,
                                                                }
                                                        }
 
+                                                       g_clear_object (&param);
+
                                                        if (!filename)
                                                                filename = g_strdup_printf ("%d.dat", index);
 
@@ -372,6 +371,8 @@ ecep_attachments_fill_widgets (ECompEditorPage *page,
                                        g_free (str_value);
                                        g_free (data);
                                }
+
+                               g_object_unref (encoding_par);
                        }
 
                        if (temporary_filename) {
@@ -394,6 +395,7 @@ ecep_attachments_fill_widgets (ECompEditorPage *page,
                        g_object_unref (attachment);
                }
 
+               g_object_unref (attach);
                g_free (filename);
                g_free (uri);
        }
@@ -401,16 +403,16 @@ ecep_attachments_fill_widgets (ECompEditorPage *page,
 
 static gboolean
 ecep_attachments_fill_component (ECompEditorPage *page,
-                                icalcomponent *component)
+                                ICalComponent *component)
 {
        ECompEditorPageAttachments *page_attachments;
        ECompEditor *comp_editor;
        GList *attachments, *link;
-       icalproperty *prop;
+       ICalProperty *prop;
        gboolean success = TRUE;
 
        g_return_val_if_fail (E_IS_COMP_EDITOR_PAGE_ATTACHMENTS (page), FALSE);
-       g_return_val_if_fail (component != NULL, FALSE);
+       g_return_val_if_fail (I_CAL_IS_COMPONENT (component), FALSE);
 
        comp_editor = e_comp_editor_page_ref_editor (page);
        page_attachments = E_COMP_EDITOR_PAGE_ATTACHMENTS (page);
@@ -427,8 +429,7 @@ ecep_attachments_fill_component (ECompEditorPage *page,
        attachments = e_attachment_store_get_attachments (E_ATTACHMENT_STORE (page_attachments->priv->store));
        for (link = attachments; link; link = g_list_next (link)) {
                EAttachment *attachment = link->data;
-               icalattach *attach;
-               gsize buf_size;
+               ICalAttach *attach;
                gchar *buf, *uri, *description;
                GFile *file;
                GFileInfo *file_info;
@@ -476,30 +477,27 @@ ecep_attachments_fill_component (ECompEditorPage *page,
                g_object_unref (file);
                g_free (description);
 
-               buf_size = 2 * strlen (uri) + 1;
-               buf = g_malloc0 (buf_size);
-
-               icalvalue_encode_ical_string (uri, buf, buf_size);
-               attach = icalattach_new_from_url (buf);
-               prop = icalproperty_new_attach (attach);
+               buf = i_cal_value_encode_ical_string (uri);
+               attach = i_cal_attach_new_from_url (buf);
+               prop = i_cal_property_new_attach (attach);
 
                file_info = e_attachment_ref_file_info (attachment);
                if (file_info) {
                        const gchar *display_name = g_file_info_get_display_name (file_info);
 
                        if (display_name && *display_name) {
-                               icalparameter *param;
+                               ICalParameter *param;
 
-                               param = icalparameter_new_filename (display_name);
-                               icalproperty_add_parameter (prop, param);
+                               param = i_cal_parameter_new_filename (display_name);
+                               i_cal_property_take_parameter (prop, param);
                        }
 
                        g_object_unref (file_info);
                }
 
-               icalcomponent_add_property (component, prop);
+               i_cal_component_take_property (component, prop);
 
-               icalattach_unref (attach);
+               g_object_unref (attach);
                g_free (buf);
                g_free (uri);
        }
diff --git a/src/calendar/gui/e-comp-editor-page-general.c b/src/calendar/gui/e-comp-editor-page-general.c
index f1b9464f82..5daca51108 100644
--- a/src/calendar/gui/e-comp-editor-page-general.c
+++ b/src/calendar/gui/e-comp-editor-page-general.c
@@ -895,14 +895,14 @@ ecep_general_sensitize_widgets (ECompEditorPage *page,
 
 static void
 ecep_general_fill_widgets (ECompEditorPage *page,
-                          icalcomponent *component)
+                          ICalComponent *component)
 {
        ECompEditorPageGeneral *page_general;
        EMeetingListView *attendees_list_view;
-       icalproperty *prop;
+       ICalProperty *prop;
 
        g_return_if_fail (E_IS_COMP_EDITOR_PAGE_GENERAL (page));
-       g_return_if_fail (component != NULL);
+       g_return_if_fail (I_CAL_IS_COMPONENT (component));
 
        E_COMP_EDITOR_PAGE_CLASS (e_comp_editor_page_general_parent_class)->fill_widgets (page, component);
 
@@ -914,24 +914,24 @@ ecep_general_fill_widgets (ECompEditorPage *page,
        g_slist_free_full (page_general->priv->orig_attendees, g_free);
        page_general->priv->orig_attendees = NULL;
 
-       for (prop = icalcomponent_get_first_property (component, ICAL_ATTENDEE_PROPERTY);
+       for (prop = i_cal_component_get_first_property (component, I_CAL_ATTENDEE_PROPERTY);
             prop;
-            prop = icalcomponent_get_next_property (component, ICAL_ATTENDEE_PROPERTY)) {
+            g_object_unref (prop), prop = i_cal_component_get_next_property (component, 
I_CAL_ATTENDEE_PROPERTY)) {
                const gchar *address;
 
-               address = itip_strip_mailto (icalproperty_get_attendee (prop));
+               address = itip_strip_mailto (i_cal_property_get_attendee (prop));
                if (address)
                        page_general->priv->orig_attendees = g_slist_prepend 
(page_general->priv->orig_attendees, g_strdup (address));
        }
 
        page_general->priv->orig_attendees = g_slist_reverse (page_general->priv->orig_attendees);
 
-       prop = icalcomponent_get_first_property (component, ICAL_ORGANIZER_PROPERTY);
+       prop = i_cal_component_get_first_property (component, I_CAL_ORGANIZER_PROPERTY);
        if (prop) {
-               icalparameter *param;
+               ICalParameter *param;
                const gchar *organizer;
 
-               organizer = icalproperty_get_organizer (prop);
+               organizer = i_cal_property_get_organizer (prop);
 
                if (organizer && *organizer) {
                        ECompEditor *comp_editor;
@@ -948,27 +948,31 @@ ecep_general_fill_widgets (ECompEditorPage *page,
                        if (itip_address_is_user (registry, itip_strip_mailto (organizer))) {
                                flags = flags | E_COMP_EDITOR_FLAG_ORGANIZER_IS_USER;
                        } else {
-                               param = icalproperty_get_first_parameter (prop, ICAL_SENTBY_PARAMETER);
+                               param = i_cal_property_get_first_parameter (prop, I_CAL_SENTBY_PARAMETER);
                                if (param) {
-                                       const gchar *sentby = icalparameter_get_sentby (param);
+                                       const gchar *sentby = i_cal_parameter_get_sentby (param);
 
                                        if (sentby && *sentby &&
                                            itip_address_is_user (registry, itip_strip_mailto (organizer))) {
                                                flags = flags | E_COMP_EDITOR_FLAG_ORGANIZER_IS_USER;
                                        }
+
+                                       g_object_unref (param);
                                }
                        }
 
                        e_comp_editor_page_general_set_show_attendees (page_general, TRUE);
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_CN_PARAMETER);
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_CN_PARAMETER);
                        if (param) {
                                const gchar *cn;
 
-                               cn = icalparameter_get_cn (param);
+                               cn = i_cal_parameter_get_cn (param);
                                if (cn && *cn) {
                                        value = camel_internet_address_format_address (cn, itip_strip_mailto 
(organizer));
                                }
+
+                               g_object_unref (param);
                        }
 
                        if (!value)
@@ -996,60 +1000,80 @@ ecep_general_fill_widgets (ECompEditorPage *page,
        e_meeting_store_remove_all_attendees (page_general->priv->meeting_store);
        e_meeting_list_view_remove_all_attendees_from_name_selector (attendees_list_view);
 
-       for (prop = icalcomponent_get_first_property (component, ICAL_ATTENDEE_PROPERTY);
+       for (prop = i_cal_component_get_first_property (component, I_CAL_ATTENDEE_PROPERTY);
             prop;
-            prop = icalcomponent_get_next_property (component, ICAL_ATTENDEE_PROPERTY)) {
+            g_object_unref (prop), prop = i_cal_component_get_next_property (component, 
I_CAL_ATTENDEE_PROPERTY)) {
                const gchar *address;
 
-               address = itip_strip_mailto (icalproperty_get_attendee (prop));
+               address = itip_strip_mailto (i_cal_property_get_attendee (prop));
                if (address) {
                        EMeetingAttendee *attendee;
-                       icalparameter *param;
+                       ICalParameter *param;
 
                        attendee = E_MEETING_ATTENDEE (e_meeting_attendee_new ());
 
                        /* It is supposed to be together with the MAILTO: protocol */
-                       e_meeting_attendee_set_address (attendee, icalproperty_get_attendee (prop));
+                       e_meeting_attendee_set_address (attendee, i_cal_property_get_attendee (prop));
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_MEMBER_PARAMETER);
-                       if (param)
-                               e_meeting_attendee_set_member (attendee, icalparameter_get_member (param));
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_MEMBER_PARAMETER);
+                       if (param) {
+                               e_meeting_attendee_set_member (attendee, i_cal_parameter_get_member (param));
+                               g_object_unref (param);
+                       }
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_CUTYPE_PARAMETER);
-                       if (param)
-                               e_meeting_attendee_set_cutype (attendee, icalparameter_get_cutype (param));
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_CUTYPE_PARAMETER);
+                       if (param) {
+                               e_meeting_attendee_set_cutype (attendee, i_cal_parameter_get_cutype (param));
+                               g_object_unref (param);
+                       }
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_ROLE_PARAMETER);
-                       if (param)
-                               e_meeting_attendee_set_role (attendee, icalparameter_get_role (param));
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_ROLE_PARAMETER);
+                       if (param) {
+                               e_meeting_attendee_set_role (attendee, i_cal_parameter_get_role (param));
+                               g_object_unref (param);
+                       }
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_RSVP_PARAMETER);
-                       if (param)
-                               e_meeting_attendee_set_rsvp (attendee, icalparameter_get_rsvp (param) == 
ICAL_RSVP_TRUE);
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_RSVP_PARAMETER);
+                       if (param) {
+                               e_meeting_attendee_set_rsvp (attendee, i_cal_parameter_get_rsvp (param) == 
I_CAL_RSVP_TRUE);
+                               g_object_unref (param);
+                       }
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_DELEGATEDTO_PARAMETER);
-                       if (param)
-                               e_meeting_attendee_set_delto (attendee, icalparameter_get_delegatedto 
(param));
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_DELEGATEDTO_PARAMETER);
+                       if (param) {
+                               e_meeting_attendee_set_delto (attendee, i_cal_parameter_get_delegatedto 
(param));
+                               g_object_unref (param);
+                       }
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_DELEGATEDFROM_PARAMETER);
-                       if (param)
-                               e_meeting_attendee_set_delfrom (attendee, icalparameter_get_delegatedfrom 
(param));
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_DELEGATEDFROM_PARAMETER);
+                       if (param) {
+                               e_meeting_attendee_set_delfrom (attendee, i_cal_parameter_get_delegatedfrom 
(param));
+                               g_object_unref (param);
+                       }
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_PARTSTAT_PARAMETER);
-                       if (param)
-                               e_meeting_attendee_set_partstat (attendee, icalparameter_get_partstat 
(param));
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_PARTSTAT_PARAMETER);
+                       if (param) {
+                               e_meeting_attendee_set_partstat (attendee, i_cal_parameter_get_partstat 
(param));
+                               g_object_unref (param);
+                       }
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_SENTBY_PARAMETER);
-                       if (param)
-                               e_meeting_attendee_set_sentby (attendee, icalparameter_get_sentby (param));
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_SENTBY_PARAMETER);
+                       if (param) {
+                               e_meeting_attendee_set_sentby (attendee, i_cal_parameter_get_sentby (param));
+                               g_object_unref (param);
+                       }
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_CN_PARAMETER);
-                       if (param)
-                               e_meeting_attendee_set_cn (attendee, icalparameter_get_cn (param));
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_CN_PARAMETER);
+                       if (param) {
+                               e_meeting_attendee_set_cn (attendee, i_cal_parameter_get_cn (param));
+                               g_object_unref (param);
+                       }
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_LANGUAGE_PARAMETER);
-                       if (param)
-                               e_meeting_attendee_set_language (attendee, icalparameter_get_language 
(param));
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_LANGUAGE_PARAMETER);
+                       if (param) {
+                               e_meeting_attendee_set_language (attendee, i_cal_parameter_get_language 
(param));
+                               g_object_unref (param);
+                       }
 
                        e_meeting_store_add_attendee (page_general->priv->meeting_store, attendee);
                        e_meeting_list_view_add_attendee_to_name_selector (attendees_list_view, attendee);
@@ -1061,13 +1085,13 @@ ecep_general_fill_widgets (ECompEditorPage *page,
 
 static gboolean
 ecep_general_fill_component (ECompEditorPage *page,
-                            icalcomponent *component)
+                            ICalComponent *component)
 {
        ECompEditorPageGeneral *page_general;
-       icalproperty *prop;
+       ICalProperty *prop;
 
        g_return_val_if_fail (E_IS_COMP_EDITOR_PAGE_GENERAL (page), FALSE);
-       g_return_val_if_fail (component != NULL, FALSE);
+       g_return_val_if_fail (I_CAL_IS_COMPONENT (component), FALSE);
 
        page_general = E_COMP_EDITOR_PAGE_GENERAL (page);
 
@@ -1113,29 +1137,31 @@ ecep_general_fill_component (ECompEditorPage *page,
                if ((flags & (E_COMP_EDITOR_FLAG_IS_NEW | E_COMP_EDITOR_FLAG_ORGANIZER_IS_USER)) != 0 &&
                    ecep_general_get_organizer (page_general, &organizer_name, &organizer_mailto, NULL)) {
                        const gchar *cal_email_address;
-                       icalparameter *param;
+                       ICalParameter *param;
 
-                       prop = icalcomponent_get_first_property (component, ICAL_ORGANIZER_PROPERTY);
+                       prop = i_cal_component_get_first_property (component, I_CAL_ORGANIZER_PROPERTY);
                        if (!prop) {
-                               prop = icalproperty_new_organizer (organizer_mailto ? organizer_mailto : 
organizer_name);
-                               icalcomponent_add_property (component, prop);
+                               prop = i_cal_property_new_organizer (organizer_mailto ? organizer_mailto : 
organizer_name);
+                               i_cal_component_take_property (component, prop);
+                               prop = i_cal_component_get_first_property (component, 
I_CAL_ORGANIZER_PROPERTY);
                        } else {
-                               icalproperty_set_organizer (prop, organizer_mailto ? organizer_mailto : 
organizer_name);
+                               i_cal_property_set_organizer (prop, organizer_mailto ? organizer_mailto : 
organizer_name);
                        }
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_CN_PARAMETER);
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_CN_PARAMETER);
                        if (organizer_name && *organizer_name) {
                                if (!param) {
-                                       param = icalparameter_new_cn (organizer_name);
-                                       icalproperty_add_parameter (prop, param);
+                                       param = i_cal_parameter_new_cn (organizer_name);
+                                       i_cal_property_add_parameter (prop, param);
                                } else {
-                                       icalparameter_set_cn (param, organizer_name);
+                                       i_cal_parameter_set_cn (param, organizer_name);
                                }
                        } else if (param) {
-                               icalproperty_remove_parameter_by_kind (prop, ICAL_CN_PARAMETER);
+                               i_cal_property_remove_parameter_by_kind (prop, I_CAL_CN_PARAMETER);
                        }
+                       g_clear_object (&param);
 
-                       param = icalproperty_get_first_parameter (prop, ICAL_SENTBY_PARAMETER);
+                       param = i_cal_property_get_first_parameter (prop, I_CAL_SENTBY_PARAMETER);
                        cal_email_address = e_comp_editor_get_cal_email_address (comp_editor);
                        if (cal_email_address && *cal_email_address) {
                                gchar *sentby;
@@ -1146,19 +1172,22 @@ ecep_general_fill_component (ECompEditorPage *page,
 
                                if (differs) {
                                        if (!param) {
-                                               param = icalparameter_new_sentby (sentby);
-                                               icalproperty_add_parameter (prop, param);
+                                               param = i_cal_parameter_new_sentby (sentby);
+                                               i_cal_property_add_parameter (prop, param);
                                        } else {
-                                               icalparameter_set_sentby (param, sentby);
+                                               i_cal_parameter_set_sentby (param, sentby);
                                        }
                                } else if (param) {
-                                       icalproperty_remove_parameter_by_kind (prop, ICAL_SENTBY_PARAMETER);
+                                       i_cal_property_remove_parameter_by_kind (prop, 
I_CAL_SENTBY_PARAMETER);
                                }
 
                                g_free (sentby);
                        } else if (param) {
-                               icalproperty_remove_parameter_by_kind (prop, ICAL_SENTBY_PARAMETER);
+                               i_cal_property_remove_parameter_by_kind (prop, I_CAL_SENTBY_PARAMETER);
                        }
+                       g_clear_object (&param);
+
+                       g_object_unref (prop);
                }
 
                /* Attendees */
@@ -1171,7 +1200,7 @@ ecep_general_fill_component (ECompEditorPage *page,
 
                        address = itip_strip_mailto (e_meeting_attendee_get_address (attendee));
                        if (address) {
-                               icalparameter *param;
+                               ICalParameter *param;
 
                                if ((flags & E_COMP_EDITOR_FLAG_DELEGATE) != 0 &&
                                    (e_meeting_attendee_is_set_delfrom (attendee) || 
e_meeting_attendee_is_set_delto (attendee)) &&
@@ -1180,48 +1209,49 @@ ecep_general_fill_component (ECompEditorPage *page,
 
                                g_hash_table_insert (known_attendees, (gpointer) address, GINT_TO_POINTER 
(1));
 
-                               prop = icalproperty_new_attendee (e_meeting_attendee_get_address (attendee));
-                               icalcomponent_add_property (component, prop);
+                               prop = i_cal_property_new_attendee (e_meeting_attendee_get_address 
(attendee));
 
                                added_attendees++;
 
                                if (e_meeting_attendee_is_set_member (attendee)) {
-                                       param = icalparameter_new_member (e_meeting_attendee_get_member 
(attendee));
-                                       icalproperty_add_parameter (prop, param);
+                                       param = i_cal_parameter_new_member (e_meeting_attendee_get_member 
(attendee));
+                                       i_cal_property_take_parameter (prop, param);
                                }
 
-                               param = icalparameter_new_cutype (e_meeting_attendee_get_cutype (attendee));
-                               icalproperty_add_parameter (prop, param);
+                               param = i_cal_parameter_new_cutype (e_meeting_attendee_get_cutype (attendee));
+                               i_cal_property_take_parameter (prop, param);
 
-                               param = icalparameter_new_role (e_meeting_attendee_get_role (attendee));
-                               icalproperty_add_parameter (prop, param);
+                               param = i_cal_parameter_new_role (e_meeting_attendee_get_role (attendee));
+                               i_cal_property_take_parameter (prop, param);
 
-                               param = icalparameter_new_partstat (e_meeting_attendee_get_partstat 
(attendee));
-                               icalproperty_add_parameter (prop, param);
+                               param = i_cal_parameter_new_partstat (e_meeting_attendee_get_partstat 
(attendee));
+                               i_cal_property_take_parameter (prop, param);
 
-                               param = icalparameter_new_rsvp (e_meeting_attendee_get_rsvp (attendee) ? 
ICAL_RSVP_TRUE : ICAL_RSVP_FALSE);
-                               icalproperty_add_parameter (prop, param);
+                               param = i_cal_parameter_new_rsvp (e_meeting_attendee_get_rsvp (attendee) ? 
I_CAL_RSVP_TRUE : I_CAL_RSVP_FALSE);
+                               i_cal_property_take_parameter (prop, param);
 
                                if (e_meeting_attendee_is_set_delfrom (attendee)) {
-                                       param = icalparameter_new_delegatedfrom 
(e_meeting_attendee_get_delfrom (attendee));
-                                       icalproperty_add_parameter (prop, param);
+                                       param = i_cal_parameter_new_delegatedfrom 
(e_meeting_attendee_get_delfrom (attendee));
+                                       i_cal_property_take_parameter (prop, param);
                                }
                                if (e_meeting_attendee_is_set_delto (attendee)) {
-                                       param = icalparameter_new_delegatedto (e_meeting_attendee_get_delto 
(attendee));
-                                       icalproperty_add_parameter (prop, param);
+                                       param = i_cal_parameter_new_delegatedto (e_meeting_attendee_get_delto 
(attendee));
+                                       i_cal_property_take_parameter (prop, param);
                                }
                                if (e_meeting_attendee_is_set_sentby (attendee)) {
-                                       param = icalparameter_new_sentby (e_meeting_attendee_get_sentby 
(attendee));
-                                       icalproperty_add_parameter (prop, param);
+                                       param = i_cal_parameter_new_sentby (e_meeting_attendee_get_sentby 
(attendee));
+                                       i_cal_property_take_parameter (prop, param);
                                }
                                if (e_meeting_attendee_is_set_cn (attendee)) {
-                                       param = icalparameter_new_cn (e_meeting_attendee_get_cn (attendee));
-                                       icalproperty_add_parameter (prop, param);
+                                       param = i_cal_parameter_new_cn (e_meeting_attendee_get_cn (attendee));
+                                       i_cal_property_take_parameter (prop, param);
                                }
                                if (e_meeting_attendee_is_set_language (attendee)) {
-                                       param = icalparameter_new_language (e_meeting_attendee_get_language 
(attendee));
-                                       icalproperty_add_parameter (prop, param);
+                                       param = i_cal_parameter_new_language (e_meeting_attendee_get_language 
(attendee));
+                                       i_cal_property_take_parameter (prop, param);
                                }
+
+                               i_cal_component_take_property (component, prop);
                        }
                }
 
@@ -1443,7 +1473,6 @@ ecep_general_constructed (GObject *object)
        g_signal_connect (page_general->priv->source_combo_box, "changed",
                G_CALLBACK (ecep_general_source_combo_box_changed_cb), page_general);
 
-       /* Returns NULL when not supported by libical */
        part = e_comp_editor_property_part_color_new ();
        widget = e_comp_editor_property_part_get_edit_widget (part);
 
diff --git a/src/calendar/gui/e-comp-editor-page.c b/src/calendar/gui/e-comp-editor-page.c
index 018d21b15e..c82c9d8721 100644
--- a/src/calendar/gui/e-comp-editor-page.c
+++ b/src/calendar/gui/e-comp-editor-page.c
@@ -89,12 +89,12 @@ ecep_sensitize_widgets (ECompEditorPage *page,
 
 static void
 ecep_fill_widgets (ECompEditorPage *page,
-                  icalcomponent *component)
+                  ICalComponent *component)
 {
        GSList *link;
 
        g_return_if_fail (E_IS_COMP_EDITOR_PAGE (page));
-       g_return_if_fail (component != NULL);
+       g_return_if_fail (I_CAL_IS_COMPONENT (component));
 
        for (link = page->priv->parts; link; link = g_slist_next (link)) {
                PropertyPartData *ppd = link->data;
@@ -109,12 +109,12 @@ ecep_fill_widgets (ECompEditorPage *page,
 
 static gboolean
 ecep_fill_component (ECompEditorPage *page,
-                    icalcomponent *component)
+                    ICalComponent *component)
 {
        GSList *link;
 
        g_return_val_if_fail (E_IS_COMP_EDITOR_PAGE (page), FALSE);
-       g_return_val_if_fail (component != NULL, FALSE);
+       g_return_val_if_fail (I_CAL_IS_COMPONENT (component), FALSE);
 
        for (link = page->priv->parts; link; link = g_slist_next (link)) {
                PropertyPartData *ppd = link->data;
@@ -311,12 +311,12 @@ e_comp_editor_page_sensitize_widgets (ECompEditorPage *page,
 
 void
 e_comp_editor_page_fill_widgets (ECompEditorPage *page,
-                                icalcomponent *component)
+                                ICalComponent *component)
 {
        ECompEditorPageClass *klass;
 
        g_return_if_fail (E_IS_COMP_EDITOR_PAGE (page));
-       g_return_if_fail (component != NULL);
+       g_return_if_fail (I_CAL_IS_COMPONENT (component));
 
        klass = E_COMP_EDITOR_PAGE_GET_CLASS (page);
        g_return_if_fail (klass != NULL);
@@ -331,12 +331,12 @@ e_comp_editor_page_fill_widgets (ECompEditorPage *page,
 
 gboolean
 e_comp_editor_page_fill_component (ECompEditorPage *page,
-                                  icalcomponent *component)
+                                  ICalComponent *component)
 {
        ECompEditorPageClass *klass;
 
        g_return_val_if_fail (E_IS_COMP_EDITOR_PAGE (page), FALSE);
-       g_return_val_if_fail (component != NULL, FALSE);
+       g_return_val_if_fail (I_CAL_IS_COMPONENT (component), FALSE);
 
        klass = E_COMP_EDITOR_PAGE_GET_CLASS (page);
        g_return_val_if_fail (klass != NULL, FALSE);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]