[evolution/wip/mcrha/eds-libical-glib] Changes/fixes around src/calendar/gui/e-cal-model*



commit 5ee2cef61474d685a0de6b598e39ea80d7bc1c79
Author: Milan Crha <mcrha redhat com>
Date:   Wed Mar 20 15:18:19 2019 +0100

    Changes/fixes around src/calendar/gui/e-cal-model*

 src/calendar/gui/comp-util.c             | 20 +++-----
 src/calendar/gui/comp-util.h             |  6 +--
 src/calendar/gui/e-cal-data-model.c      | 87 ++++++++++++++++++++------------
 src/calendar/gui/e-cal-model-calendar.c  |  2 +-
 src/calendar/gui/e-cal-model-tasks.c     |  7 ++-
 src/calendar/gui/e-cal-model.c           | 65 +++++++++++++++---------
 src/calendar/gui/e-cell-date-edit-text.c |  7 +--
 src/calendar/gui/e-cell-date-edit-text.h |  2 +-
 src/calendar/gui/ea-cal-view-event.c     |  2 +-
 src/calendar/gui/tag-calendar.c          | 16 ++++--
 10 files changed, 128 insertions(+), 86 deletions(-)
---
diff --git a/src/calendar/gui/comp-util.c b/src/calendar/gui/comp-util.c
index 09487e5b60..fd82663867 100644
--- a/src/calendar/gui/comp-util.c
+++ b/src/calendar/gui/comp-util.c
@@ -853,10 +853,8 @@ void
 cal_comp_get_instance_times (ECalClient *client,
                             ICalComponent *icomp,
                             const ICalTimezone *default_zone,
-                            time_t *instance_start,
-                            gboolean *start_is_date,
-                            time_t *instance_end,
-                            gboolean *end_is_date,
+                            ICalTimetype **out_instance_start,
+                            ICalTimetype **out_instance_end,
                             GCancellable *cancellable)
 {
        ICalTimetype *start_time, *end_time;
@@ -864,8 +862,8 @@ cal_comp_get_instance_times (ECalClient *client,
 
        g_return_if_fail (E_IS_CAL_CLIENT (client));
        g_return_if_fail (icomp != NULL);
-       g_return_if_fail (instance_start != NULL);
-       g_return_if_fail (instance_end != NULL);
+       g_return_if_fail (out_instance_start != NULL);
+       g_return_if_fail (out_instance_end != NULL);
 
        start_time = i_cal_component_get_dtstart (icomp);
        end_time = i_cal_component_get_dtend (icomp);
@@ -904,9 +902,8 @@ cal_comp_get_instance_times (ECalClient *client,
                }
        }
 
-       *instance_start = i_cal_time_as_timet_with_zone (start_time, (ICalTimezone *) zone);
-       if (start_is_date)
-               *start_is_date = i_cal_time_is_date (start_time);
+       *out_instance_start = i_cal_timetype_new_clone (start_time);
+       i_cal_timetype_set_zone (*out_instance_start, zone);
 
        if (i_cal_timetype_get_zone (end_time)) {
                zone = i_cal_timetype_get_zone (end_time);
@@ -938,9 +935,8 @@ cal_comp_get_instance_times (ECalClient *client,
                }
        }
 
-       *instance_end = i_cal_time_as_timet_with_zone (end_time, (ICalTimezone *) zone);
-       if (end_is_date)
-               *end_is_date = i_cal_time_is_date (end_time);
+       *out_instance_end = i_cal_timetype_new_clone (end_time);
+       i_cal_timetype_set_zone (*out_instance_end, zone);
 
        g_clear_object (&start_time);
        g_clear_object (&end_time);
diff --git a/src/calendar/gui/comp-util.h b/src/calendar/gui/comp-util.h
index 107a1a1f32..1236afde04 100644
--- a/src/calendar/gui/comp-util.h
+++ b/src/calendar/gui/comp-util.h
@@ -113,10 +113,8 @@ gchar *            comp_util_suggest_filename      (ICalComponent *icomp,
 void           cal_comp_get_instance_times     (ECalClient *client,
                                                 ICalComponent *icomp,
                                                 const ICalTimezone *default_zone,
-                                                time_t *instance_start,
-                                                gboolean *start_is_date,
-                                                time_t *instance_end,
-                                                gboolean *end_is_date,
+                                                ICalTimetype **out_instance_start,
+                                                ICalTimetype **out_instance_end,
                                                 GCancellable *cancellable);
 time_t         cal_comp_gdate_to_timet         (const GDate *date,
                                                 const ICalTimezone *with_zone);
diff --git a/src/calendar/gui/e-cal-data-model.c b/src/calendar/gui/e-cal-data-model.c
index 2e2aab826e..d66ef47c00 100644
--- a/src/calendar/gui/e-cal-data-model.c
+++ b/src/calendar/gui/e-cal-data-model.c
@@ -1077,51 +1077,69 @@ typedef struct
 } GenerateInstancesData;
 
 static gboolean
-cal_data_model_instance_generated (ECalComponent *comp,
-                                  time_t instance_start,
-                                  time_t instance_end,
-                                  gpointer data)
+cal_data_model_instance_generated (ICalComponent *icomp,
+                                  ICalTimetype *instance_start,
+                                  ICalTimetype *instance_end,
+                                  gpointer user_data,
+                                  GCancellable *cancellable,
+                                  GError **error)
 {
-       GenerateInstancesData *gid = data;
+       GenerateInstancesData *gid = user_data;
        ComponentData *comp_data;
        ECalComponent *comp_copy;
-       icalproperty_status status = ICAL_STATUS_NONE;
-       icaltimetype tt, tt2;
+       ICalTimetype *tt, *tt2;
+       time_t start_tt, end_tt;
 
        g_return_val_if_fail (gid != NULL, FALSE);
 
-       e_cal_component_get_status (comp, &status);
-       if (gid->skip_cancelled && status == ICAL_STATUS_CANCELLED)
-               return TRUE;
+       if (gid->skip_cancelled) {
+               ICalProperty *prop;
+
+               prop = i_cal_component_get_first_property (icomp, I_CAL_STATUS_PROPERTY);
+               if (prop && i_cal_property_get_status (prop) == I_CAL_STATUS_CANCELLED) {
+                       g_object_unref (prop);
+                       return TRUE;
+               }
+
+               g_clear_object (&prop);
+       }
 
-       comp_copy = e_cal_component_clone (comp);
+       comp_copy = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (icomp));
        g_return_val_if_fail (comp_copy != NULL, FALSE);
 
-       tt = icalcomponent_get_dtstart (e_cal_component_get_icalcomponent (comp_copy));
-       tt2 = icaltime_from_timet_with_zone (instance_start, tt.is_date, gid->zone);
-       if (tt.is_date || !tt.zone || tt.zone == icaltimezone_get_utc_timezone ())
-               tt2.zone = NULL;
+       tt = i_cal_component_get_dtstart (e_cal_component_get_icalcomponent (comp_copy));
+       tt2 = i_cal_time_convert_to_zone (instance_start, gid->zone);
+       if (i_cal_time_is_date (tt) || !i_cal_time_get_timezone (tt) || i_cal_time_is_utc (tt))
+               i_cal_time_set_timezone (tt2, NULL);
        else
-               tt2.zone = gid->zone;
-       icalcomponent_set_dtstart (e_cal_component_get_icalcomponent (comp_copy), tt2);
-
-       tt = icalcomponent_get_dtend (e_cal_component_get_icalcomponent (comp_copy));
-       tt2 = icaltime_from_timet_with_zone (instance_end, tt.is_date, gid->zone);
-       if (tt.is_date || !tt.zone || tt.zone == icaltimezone_get_utc_timezone ())
-               tt2.zone = NULL;
+               i_cal_time_set_timezone (tt2, gid->zone);
+       i_cal_component_set_dtstart (e_cal_component_get_icalcomponent (comp_copy), tt2);
+       g_clear_object (&tt);
+       g_clear_object (&tt2);
+
+       tt = i_cal_component_get_dtend (e_cal_component_get_icalcomponent (comp_copy));
+       tt2 = i_cal_time_convert_to_zone (instance_end, gid->zone);
+       if (i_cal_time_is_date (tt) || !i_cal_time_get_timezone (tt) || i_cal_time_is_utc (tt))
+               i_cal_time_set_timezone (tt2, NULL);
        else
-               tt2.zone = gid->zone;
-       icalcomponent_set_dtend (e_cal_component_get_icalcomponent (comp_copy), tt2);
-
-       e_cal_component_rescan (comp_copy);
+               i_cal_time_set_timezone (tt2, gid->zone);
+       i_cal_component_set_dtend (e_cal_component_get_icalcomponent (comp_copy), tt2);
+       g_clear_object (&tt);
+       g_clear_object (&tt2);
 
        cal_comp_get_instance_times (gid->client, e_cal_component_get_icalcomponent (comp_copy),
-               gid->zone, &instance_start, NULL, &instance_end, NULL, NULL);
+               gid->zone, &tt, &tt2, cancellable);
+
+       start_tt = i_cal_time_as_timet (tt);
+       end_tt = i_cal_time_as_timet (tt2);
 
-       if (instance_end > instance_start)
-               instance_end--;
+       g_clear_object (&tt);
+       g_clear_object (&tt2);
 
-       comp_data = component_data_new (comp_copy, instance_start, instance_end, FALSE);
+       if (end_tt > start_tt)
+               end_tt--;
+
+       comp_data = component_data_new (comp_copy, start_tt, end_tt, FALSE);
        *gid->pexpanded_recurrences = g_slist_prepend (*gid->pexpanded_recurrences, comp_data);
 
        g_object_unref (comp_copy);
@@ -1275,6 +1293,7 @@ cal_data_model_process_modified_or_added_objects (ECalClientView *view,
                                /* Single or detached instance, the simple case */
                                ECalComponent *comp;
                                ComponentData *comp_data;
+                               ICalTimetype *start_tt = NULL, *end_tt = NULL;
                                time_t instance_start, instance_end;
 
                                if (data_model->priv->skip_cancelled &&
@@ -1285,7 +1304,13 @@ cal_data_model_process_modified_or_added_objects (ECalClientView *view,
                                if (!comp)
                                        continue;
 
-                               cal_comp_get_instance_times (client, icomp, data_model->priv->zone, 
&instance_start, NULL, &instance_end, NULL, NULL);
+                               cal_comp_get_instance_times (client, icomp, data_model->priv->zone, 
&start_tt, &end_tt, NULL);
+
+                               instance_start = i_cal_time_as_timet (start_tt);
+                               instance_end = i_cal_time_as_timet (end_tt);
+
+                               g_clear_object (&start_tt);
+                               g_clear_object (&end_tt);
 
                                if (instance_end > instance_start)
                                        instance_end--;
diff --git a/src/calendar/gui/e-cal-model-calendar.c b/src/calendar/gui/e-cal-model-calendar.c
index 2fef77526a..0fbb100ed3 100644
--- a/src/calendar/gui/e-cal-model-calendar.c
+++ b/src/calendar/gui/e-cal-model-calendar.c
@@ -161,7 +161,7 @@ get_transparency (ECalModelComponent *comp_data)
 
                g_clear_object (&prop);
 
-               return res;
+               return (gpointer) res;
        }
 
        return NULL;
diff --git a/src/calendar/gui/e-cal-model-tasks.c b/src/calendar/gui/e-cal-model-tasks.c
index ec468e5662..7e3a522e3e 100644
--- a/src/calendar/gui/e-cal-model-tasks.c
+++ b/src/calendar/gui/e-cal-model-tasks.c
@@ -318,7 +318,7 @@ static gpointer
 get_location (ECalModelComponent *comp_data)
 {
        ICalProperty *prop;
-       const gchar *localtion;
+       const gchar *location;
 
        prop = i_cal_component_get_first_property (comp_data->icalcomp, I_CAL_LOCATION_PROPERTY);
        if (prop) {
@@ -485,7 +485,7 @@ set_completed (ECalModelTasks *model,
                } else {
                        /* we assume that COMPLETED is entered in the current timezone,
                         * even though it gets stored in UTC */
-                       t = i_cal_time_as_timet_with_zone (tt, dv->zone);
+                       t = i_cal_time_as_timet_with_zone (tt, e_cell_date_edit_value_get_zone (dv));
                }
 
                ensure_task_complete (comp_data, t);
@@ -647,7 +647,7 @@ set_percent (ECalModelComponent *comp_data,
        } else {
                if (prop) {
                        i_cal_property_set_percentcomplete (prop, percent);
-                       g_object_urnef (prop);
+                       g_object_unref (prop);
                } else {
                        prop = i_cal_property_new_percentcomplete (percent);
                        i_cal_component_take_property (comp_data->icalcomp, prop);
@@ -666,7 +666,6 @@ set_percent (ECalModelComponent *comp_data,
                                set_status (comp_data, _("In Progress"));
                }
        }
-
 }
 
 static void
diff --git a/src/calendar/gui/e-cal-model.c b/src/calendar/gui/e-cal-model.c
index c482c3ae62..f394ba6aca 100644
--- a/src/calendar/gui/e-cal-model.c
+++ b/src/calendar/gui/e-cal-model.c
@@ -267,7 +267,7 @@ get_categories (ECalModelComponent *comp_data)
 
                for (prop = i_cal_component_get_first_property (comp_data->icalcomp, 
I_CAL_CATEGORIES_PROPERTY);
                     prop;
-                    g_object_urnef (prop), prop = i_cal_component_get_next_property (comp_data->icalcomp, 
I_CAL_CATEGORIES_PROPERTY)) {
+                    g_object_unref (prop), prop = i_cal_component_get_next_property (comp_data->icalcomp, 
I_CAL_CATEGORIES_PROPERTY)) {
                        const gchar *categories = i_cal_property_get_categories (prop);
                        if (!categories)
                                continue;
@@ -285,7 +285,7 @@ static gchar *
 get_classification (ECalModelComponent *comp_data)
 {
        ICalProperty *prop;
-       ICalPropertyClass class_prop;
+       ICalProperty_Class class_prop;
 
        prop = i_cal_component_get_first_property (comp_data->icalcomp, I_CAL_CLASS_PROPERTY);
 
@@ -296,7 +296,7 @@ get_classification (ECalModelComponent *comp_data)
 
        g_clear_object (&prop);
 
-       switch (class) {
+       switch (class_prop) {
        case I_CAL_CLASS_PUBLIC:
                return _("Public");
        case I_CAL_CLASS_PRIVATE:
@@ -362,10 +362,10 @@ get_dtstart (ECalModel *model,
                        gboolean is_date = i_cal_time_is_date (tt_start);
 
                        if (got_zone) {
-                               g_clear_obejct (&tt_start);
+                               g_clear_object (&tt_start);
                                tt_start = i_cal_time_from_timet_with_zone (comp_data->instance_start, 
is_date, zone);
                        } else if (priv->zone) {
-                               g_clear_obejct (&tt_start);
+                               g_clear_object (&tt_start);
                                tt_start = i_cal_time_from_timet_with_zone (comp_data->instance_start, 
is_date, priv->zone);
                        }
                }
@@ -387,7 +387,7 @@ static ECellDateEditValue *
 get_datetime_from_utc (ECalModel *model,
                        ECalModelComponent *comp_data,
                        ICalPropertyKind propkind,
-                       ICalTimetype (*get_value) (const ICalProperty *prop),
+                       ICalTimetype * (*get_value) (ICalProperty *prop),
                       ECellDateEditValue **buffer)
 {
        g_return_val_if_fail (buffer != NULL, NULL);
@@ -406,7 +406,7 @@ get_datetime_from_utc (ECalModel *model,
                tt_value = get_value (prop);
 
                /* these are always in UTC, thus convert to default zone, if any and done */
-               if (priv->zone) {
+               if (priv->zone)
                        i_cal_timezone_convert_time (tt_value, i_cal_timezone_get_utc_timezone (), 
priv->zone);
 
                g_object_unref (prop);
@@ -491,7 +491,7 @@ set_classification (ECalModelComponent *comp_data,
                        g_clear_object (&prop);
                }
        } else {
-               ICalPropertyClass ical_class;
+               ICalProperty_Class ical_class;
 
                if (!g_ascii_strcasecmp (value, "PUBLIC"))
                        ical_class = I_CAL_CLASS_PUBLIC;
@@ -1463,7 +1463,7 @@ cal_model_create_component_from_values_thread (EAlertSinkThreadJobData *job_data
 
                prop = i_cal_component_get_first_property (comp_data->icalcomp, I_CAL_CLASS_PROPERTY);
                if (!prop || i_cal_property_get_class (prop) == I_CAL_CLASS_NONE) {
-                       ICalPropertyClass ical_class = I_CAL_CLASS_PUBLIC;
+                       ICalProperty_Class ical_class = I_CAL_CLASS_PUBLIC;
                        GSettings *settings;
 
                        settings = e_util_ref_settings ("org.gnome.evolution.calendar");
@@ -1482,7 +1482,7 @@ cal_model_create_component_from_values_thread (EAlertSinkThreadJobData *job_data
                        g_clear_object (&prop);
                }
 
-               ccd->success = e_cal_client_create_object_sync (comp_data->client, comp_data->icalcomp, &uid, 
cancellable, error);
+               ccd->success = e_cal_client_create_object_sync (comp_data->client, comp_data->icalcomp, 
E_CAL_OPERATION_FLAG_NONE, &uid, cancellable, error);
 
                g_free (uid);
        }
@@ -1922,7 +1922,7 @@ e_cal_model_get_component_index (ECalModel *model,
                        const gchar *uid;
                        gchar *rid = NULL;
                        ICalTimetype *iclrid;
-                       gboolean has_rid = (id->rid && *id->rid);
+                       gboolean has_rid = e_cal_component_id_get_rid (id) != NULL;
 
                        uid = i_cal_component_get_uid (comp_data->icalcomp);
                        iclrid = i_cal_component_get_recurrenceid (comp_data->icalcomp);
@@ -1931,9 +1931,9 @@ e_cal_model_get_component_index (ECalModel *model,
                        g_clear_object (&iclrid);
 
                        if (uid && *uid) {
-                               if ((!client || comp_data->client == client) && strcmp (id->uid, uid) == 0) {
+                               if ((!client || comp_data->client == client) && strcmp 
(e_cal_component_id_get_uid (id), uid) == 0) {
                                        if (has_rid) {
-                                               if (!(rid && *rid && strcmp (rid, id->rid) == 0)) {
+                                               if (!(rid && *rid && strcmp (rid, e_cal_component_id_get_rid 
(id)) == 0)) {
                                                        g_free (rid);
                                                        continue;
                                                }
@@ -1969,7 +1969,7 @@ cal_model_data_subscriber_component_added_or_modified (ECalDataModelSubscriber *
 
        index = e_cal_model_get_component_index (model, client, id);
 
-       e_cal_component_free_id (id);
+       e_cal_component_id_free (id);
 
        if (index < 0 && !is_added)
                return;
@@ -4016,20 +4016,29 @@ typedef struct _GenerateInstacesData {
 } GenerateInstancesData;
 
 static gboolean
-ecm_generate_instances_cb (ECalComponent *comp,
-                          time_t instance_start,
-                          time_t instance_end,
-                          gpointer user_data)
+ecm_generate_instances_cb (ICalComponent *comp,
+                          ICalTimetype *instance_start,
+                          ICalTimetype *instance_end,
+                          gpointer user_data,
+                          GCancellable *cancellable,
+                          GError **error)
 {
        GenerateInstancesData *gid = user_data;
+       ICalTimetype *changed_instance_start = NULL, *changed_instance_end = NULL;
+       gboolean res;
 
        g_return_val_if_fail (gid != NULL, FALSE);
        g_return_val_if_fail (gid->mdata.comp_data != NULL, FALSE);
 
-       cal_comp_get_instance_times (gid->mdata.comp_data->client, e_cal_component_get_icalcomponent (comp),
-               gid->zone, &instance_start, NULL, &instance_end, NULL, NULL);
+       cal_comp_get_instance_times (gid->mdata.comp_data->client, comp,
+               gid->zone, &changed_instance_start, &changed_instance_end, cancellable);
+
+       res = gid->cb (comp, changed_instance_start, changed_instance_end, &gid->mdata, cancellable, error);
 
-       return gid->cb (comp, instance_start, instance_end, &gid->mdata);
+       g_clear_object (&changed_instance_start);
+       g_clear_object (&changed_instance_end);
+
+       return res;
 }
 
 /**
@@ -4083,6 +4092,8 @@ void
 e_cal_model_set_instance_times (ECalModelComponent *comp_data,
                                const ICalTimezone *zone)
 {
+       ICalTimetype *instance_start = NULL, *instance_end = NULL;
+
        if (i_cal_component_isa (comp_data->icalcomp) == I_CAL_VEVENT_COMPONENT) {
                ICalTimetype *start_time, *end_time;
 
@@ -4094,7 +4105,7 @@ e_cal_model_set_instance_times (ECalModelComponent *comp_data,
                         * just make start_time = end_time so that end_time
                         * will be a valid date
                         */
-                       end_time = i_cal_time_new_clone (start_time);
+                       end_time = i_cal_timetype_new_clone (start_time);
                        i_cal_time_adjust (end_time, 1, 0, 0, 0);
                        i_cal_component_set_dtend (comp_data->icalcomp, end_time);
                } else if (i_cal_time_is_date (start_time) && i_cal_time_is_date (end_time) &&
@@ -4103,7 +4114,7 @@ e_cal_model_set_instance_times (ECalModelComponent *comp_data,
                         * same day, we add 1 day to DTEND. This means that most
                         * events created with the old Evolution behavior will still
                         * work OK. */
-                       i_cal_time_adjust (&end_time, 1, 0, 0, 0);
+                       i_cal_time_adjust (end_time, 1, 0, 0, 0);
                        i_cal_component_set_dtend (comp_data->icalcomp, end_time);
                }
 
@@ -4112,7 +4123,13 @@ e_cal_model_set_instance_times (ECalModelComponent *comp_data,
        }
 
        cal_comp_get_instance_times (comp_data->client, comp_data->icalcomp, zone,
-               &comp_data->instance_start, NULL, &comp_data->instance_end, NULL, NULL);
+               &instance_start, &instance_end, NULL);
+
+       comp_data->instance_start = instance_start ? i_cal_time_as_timet (instance_start) : 
comp_data->instance_start;
+       comp_data->instance_end = instance_end ? i_cal_time_as_timet (instance_end) : comp_data->instance_end;
+
+       g_clear_object (&instance_start);
+       g_clear_object (&instance_end);
 }
 
 /**
diff --git a/src/calendar/gui/e-cell-date-edit-text.c b/src/calendar/gui/e-cell-date-edit-text.c
index afa5c47b3a..98b7ff8dd0 100644
--- a/src/calendar/gui/e-cell-date-edit-text.c
+++ b/src/calendar/gui/e-cell-date-edit-text.c
@@ -106,7 +106,7 @@ cell_date_edit_text_get_property (GObject *object,
 static void
 cell_date_edit_text_finalize (GObject *object)
 {
-       ECellDateEditText *ecd = E_CELL_DATE_EDIT_TEXT (cell);
+       ECellDateEditText *ecd = E_CELL_DATE_EDIT_TEXT (object);
 
        g_clear_object (&ecd->priv->timezone);
 
@@ -329,7 +329,7 @@ e_cell_date_edit_text_set_timezone (ECellDateEditText *ecd,
        if (ecd->priv->timezone == timezone)
                return;
 
-       g_clear_objct (&ecd->priv->timezone);
+       g_clear_object (&ecd->priv->timezone);
        ecd->priv->timezone = timezone ? e_cal_util_copy_timezone (timezone) : NULL;
 
        g_object_notify (G_OBJECT (ecd), "timezone");
@@ -378,7 +378,8 @@ e_cell_date_edit_compare_cb (gconstpointer a,
        }
 
        /* Copy the 2nd value and convert it to the same timezone as the first. */
-       tt = i_cal_timezone_convert_time (e_cell_date_edit_value_get_time (dv2), 
e_cell_date_edit_value_get_zone (dv2), e_cell_date_edit_value_get_zone (dv1));
+       tt = i_cal_timetype_new_clone (e_cell_date_edit_value_get_time (dv2));
+       i_cal_timezone_convert_time (tt, e_cell_date_edit_value_get_zone (dv2), 
e_cell_date_edit_value_get_zone (dv1));
 
        /* Now we can compare them. */
        res = i_cal_time_compare (e_cell_date_edit_value_get_time (dv1), tt);
diff --git a/src/calendar/gui/e-cell-date-edit-text.h b/src/calendar/gui/e-cell-date-edit-text.h
index cb1d68704d..5c13f0a7b5 100644
--- a/src/calendar/gui/e-cell-date-edit-text.h
+++ b/src/calendar/gui/e-cell-date-edit-text.h
@@ -89,7 +89,7 @@ ICalTimezone *        e_cell_date_edit_text_get_timezone
                                                (ECellDateEditText *ecd);
 void           e_cell_date_edit_text_set_timezone
                                                (ECellDateEditText *ecd,
-                                                ICalTimezone *timezone);
+                                                const ICalTimezone *timezone);
 gboolean       e_cell_date_edit_text_get_use_24_hour_format
                                                (ECellDateEditText *ecd);
 void           e_cell_date_edit_text_set_use_24_hour_format
diff --git a/src/calendar/gui/ea-cal-view-event.c b/src/calendar/gui/ea-cal-view-event.c
index 70fc590544..29529b949e 100644
--- a/src/calendar/gui/ea-cal-view-event.c
+++ b/src/calendar/gui/ea-cal-view-event.c
@@ -237,7 +237,7 @@ ea_cal_view_event_get_name (AtkObject *accessible)
                if (e_cal_util_component_has_organizer (event->comp_data->icalcomp))
                        meeting_string = _("It is a meeting.");
 
-               summary = icalcomponent_get_summary (event->comp_data->icalcomp);
+               summary = i_cal_component_get_summary (event->comp_data->icalcomp);
                if (summary)
                        summary_string = g_strdup_printf (_("Calendar Event: Summary is %s."), summary);
        }
diff --git a/src/calendar/gui/tag-calendar.c b/src/calendar/gui/tag-calendar.c
index bd8d1a2411..309d899e86 100644
--- a/src/calendar/gui/tag-calendar.c
+++ b/src/calendar/gui/tag-calendar.c
@@ -385,9 +385,9 @@ get_component_julian_range (ECalClient *client,
                            guint32 *start_julian,
                            guint32 *end_julian)
 {
-       time_t instance_start = 0, instance_end = 0;
-       gboolean start_is_date = FALSE, end_is_date = FALSE;
-       const icaltimezone *zone;
+       ICalTimetype *instance_start = NULL, *instance_end = NULL;
+       time_t start_tt, end_tt;
+       const ICalTimezone *zone;
 
        g_return_if_fail (client != NULL);
        g_return_if_fail (comp != NULL);
@@ -397,8 +397,14 @@ get_component_julian_range (ECalClient *client,
        cal_comp_get_instance_times (client, e_cal_component_get_icalcomponent (comp),
                zone, &instance_start, &start_is_date, &instance_end, &end_is_date, NULL);
 
-       *start_julian = encode_timet_to_julian (instance_start, start_is_date, zone);
-       *end_julian = encode_timet_to_julian (instance_end - (instance_end == instance_start ? 0 : 1), 
end_is_date, zone);
+       start_tt = i_cal_time_as_timet (instance_start);
+       end_tt = i_cal_time_as_timet (instance_end);
+
+       *start_julian = encode_timet_to_julian (start_tt, i_cal_time_is_date (instance_start), zone);
+       *end_julian = encode_timet_to_julian (end_tt - (end_tt == start_tt ? 0 : 1), i_cal_time_is_date 
(instance_end), zone);
+
+       g_clear_object (&instance_start);
+       g_clear_object (&instance_end);
 }
 
 static void


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