[evolution/wip/mcrha/eds-libical-glib] src/calendar/gui/ - e-day-view* and e-week-view*
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/mcrha/eds-libical-glib] src/calendar/gui/ - e-day-view* and e-week-view*
- Date: Thu, 21 Mar 2019 14:31:01 +0000 (UTC)
commit da4628a6e2cc1ca3c178a767d2ce5b4100722a1e
Author: Milan Crha <mcrha redhat com>
Date: Thu Mar 21 15:31:45 2019 +0100
src/calendar/gui/ - e-day-view* and e-week-view*
src/calendar/gui/e-cal-model.c | 18 +-
src/calendar/gui/e-calendar-view.c | 482 ++++++++++---------
src/calendar/gui/e-calendar-view.h | 2 +-
src/calendar/gui/e-day-view-main-item.c | 71 +--
src/calendar/gui/e-day-view-time-item.c | 68 +--
src/calendar/gui/e-day-view-top-item.c | 29 +-
src/calendar/gui/e-day-view.c | 756 ++++++++++++++++--------------
src/calendar/gui/e-week-view-event-item.c | 6 +-
src/calendar/gui/e-week-view-main-item.c | 14 +-
src/calendar/gui/e-week-view.c | 367 ++++++++-------
10 files changed, 962 insertions(+), 851 deletions(-)
---
diff --git a/src/calendar/gui/e-cal-model.c b/src/calendar/gui/e-cal-model.c
index f394ba6aca..5da5055c49 100644
--- a/src/calendar/gui/e-cal-model.c
+++ b/src/calendar/gui/e-cal-model.c
@@ -1920,18 +1920,14 @@ e_cal_model_get_component_index (ECalModel *model,
if (comp_data) {
const gchar *uid;
- gchar *rid = NULL;
- ICalTimetype *iclrid;
+ gchar *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);
- if (!i_cal_time_is_null_time (iclrid))
- rid = i_cal_time_as_ical_string_r (iclrid);
- g_clear_object (&iclrid);
+ rid = e_cal_util_component_get_recurid_as_string (comp_data->icalcomp);
if (uid && *uid) {
- if ((!client || comp_data->client == client) && strcmp
(e_cal_component_id_get_uid (id), uid) == 0) {
+ if ((!client || comp_data->client == client) && strcmp (uid,
e_cal_component_id_get_uid (id)) == 0) {
if (has_rid) {
if (!(rid && *rid && strcmp (rid, e_cal_component_id_get_rid
(id)) == 0)) {
g_free (rid);
@@ -3628,15 +3624,11 @@ search_by_id_and_client (ECalModelPrivate *priv,
if (comp_data) {
const gchar *uid;
- gchar *rid = NULL;
- ICalTimetype *iclrid;
+ gchar *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);
- if (!i_cal_time_is_null_time (iclrid))
- rid = i_cal_time_as_ical_string_r (iclrid);
- g_clear_object (&iclrid);
+ rid = e_cal_util_component_get_recurid_as_string (comp_data->icalcomp);
if (uid && *uid) {
if ((!client || comp_data->client == client) &&
diff --git a/src/calendar/gui/e-calendar-view.c b/src/calendar/gui/e-calendar-view.c
index c2cf72dcd2..2eb358388c 100644
--- a/src/calendar/gui/e-calendar-view.c
+++ b/src/calendar/gui/e-calendar-view.c
@@ -104,30 +104,30 @@ calendar_view_add_retract_data (ECalComponent *comp,
const gchar *retract_comment,
ECalObjModType mod)
{
- icalcomponent *icalcomp = NULL;
- icalproperty *icalprop = NULL;
+ ICalComponent *icomp;
+ ICalProperty *prop;
- icalcomp = e_cal_component_get_icalcomponent (comp);
+ icomp = e_cal_component_get_icalcomponent (comp);
if (retract_comment && *retract_comment)
- icalprop = icalproperty_new_x (retract_comment);
+ prop = i_cal_property_new_x (retract_comment);
else
- icalprop = icalproperty_new_x ("0");
- icalproperty_set_x_name (icalprop, "X-EVOLUTION-RETRACT-COMMENT");
- icalcomponent_add_property (icalcomp, icalprop);
+ prop = i_cal_property_new_x ("0");
+ i_cal_property_set_x_name (prop, "X-EVOLUTION-RETRACT-COMMENT");
+ i_cal_component_take_property (icomp, prop);
if (mod == E_CAL_OBJ_MOD_ALL)
- icalprop = icalproperty_new_x ("All");
+ prop = i_cal_property_new_x ("All");
else
- icalprop = icalproperty_new_x ("This");
- icalproperty_set_x_name (icalprop, "X-EVOLUTION-RECUR-MOD");
- icalcomponent_add_property (icalcomp, icalprop);
+ prop = i_cal_property_new_x ("This");
+ i_cal_property_set_x_name (prop, "X-EVOLUTION-RECUR-MOD");
+ i_cal_component_take_property (icomp, prop);
}
static gboolean
calendar_view_check_for_retract (ECalComponent *comp,
ECalClient *client)
{
- ECalComponentOrganizer organizer;
+ ECalComponentOrganizer *organizer;
const gchar *strip;
gchar *email = NULL;
gboolean ret_val;
@@ -138,8 +138,11 @@ calendar_view_check_for_retract (ECalComponent *comp,
if (!e_cal_client_check_save_schedules (client))
return FALSE;
- e_cal_component_get_organizer (comp, &organizer);
- strip = itip_strip_mailto (organizer.value);
+ organizer = e_cal_component_get_organizer (comp);
+ if (!organizer)
+ return FALSE;
+
+ strip = itip_strip_mailto (e_cal_component_organizer_get_value (organizer));
ret_val =
e_client_get_backend_property_sync (E_CLIENT (client),
E_CAL_BACKEND_PROPERTY_CAL_EMAIL_ADDRESS, &email, NULL, NULL) &&
@@ -147,6 +150,8 @@ calendar_view_check_for_retract (ECalComponent *comp,
g_free (email);
+ e_cal_component_organizer_free (organizer);
+
return ret_val;
}
@@ -168,7 +173,7 @@ calendar_view_delete_event (ECalendarView *cal_view,
registry = e_cal_model_get_registry (model);
comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ e_cal_component_set_icalcomponent (comp, i_cal_component_new_clone (event->comp_data->icalcomp));
vtype = e_cal_component_get_vtype (comp);
/*FIXME remove it once the we dont set the recurrence id for all the generated instances */
@@ -182,13 +187,13 @@ calendar_view_delete_event (ECalendarView *cal_view,
delete = e_cal_dialogs_prompt_retract (GTK_WIDGET (cal_view), comp, &retract_comment,
&retract);
if (retract) {
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
calendar_view_add_retract_data (comp, retract_comment, E_CAL_OBJ_MOD_ALL);
- icalcomp = e_cal_component_get_icalcomponent (comp);
- icalcomponent_set_method (icalcomp, ICAL_METHOD_CANCEL);
+ icomp = e_cal_component_get_icalcomponent (comp);
+ i_cal_component_set_method (icomp, I_CAL_METHOD_CANCEL);
- e_cal_ops_send_component (model, event->comp_data->client, icalcomp);
+ e_cal_ops_send_component (model, event->comp_data->client, icomp);
}
} else if (e_cal_model_get_confirm_delete (model))
delete = e_cal_dialogs_delete_component (
@@ -207,15 +212,17 @@ calendar_view_delete_event (ECalendarView *cal_view,
event->comp_data->client,
comp, TRUE)) {
if (only_occurrence && !e_cal_component_is_instance (comp)) {
- ECalComponentRange range;
+ ECalComponentRange *range;
+ ECalComponentDateTime *dtstart;
+
+ dtstart = e_cal_component_get_dtstart (comp);
+ i_cal_timetype_set_is_date (e_cal_component_datetime_get_value (dtstart), 1);
/* set the recurrence ID of the object we send */
- range.type = E_CAL_COMPONENT_RANGE_SINGLE;
- e_cal_component_get_dtstart (comp, &range.datetime);
- range.datetime.value->is_date = 1;
- e_cal_component_set_recurid (comp, &range);
+ range = e_cal_component_range_new_take (E_CAL_COMPONENT_RANGE_SINGLE,
dtstart);
+ e_cal_component_set_recurid (comp, range);
- e_cal_component_free_datetime (&range.datetime);
+ e_cal_component_range_free (range);
}
itip_send_component_with_model (model, E_CAL_COMPONENT_METHOD_CANCEL,
@@ -223,7 +230,7 @@ calendar_view_delete_event (ECalendarView *cal_view,
NULL, TRUE, FALSE, FALSE);
}
- e_cal_component_get_uid (comp, &uid);
+ uid = e_cal_component_get_uid (comp);
if (!uid || !*uid) {
g_object_unref (comp);
g_free (rid);
@@ -234,16 +241,19 @@ calendar_view_delete_event (ECalendarView *cal_view,
if (e_cal_component_is_instance (comp)) {
e_cal_ops_remove_component (model, event->comp_data->client, uid, rid,
E_CAL_OBJ_MOD_THIS, FALSE);
} else {
- struct icaltimetype instance_rid;
- ECalComponentDateTime dt;
- icaltimezone *zone = NULL;
+ ICalTimetype *instance_rid;
+ ICalTimezone *zone = NULL;
+ ECalComponentDateTime *dt;
- e_cal_component_get_dtstart (comp, &dt);
+ dt = e_cal_component_get_dtstart (comp);
- if (dt.tzid) {
+ if (dt && e_cal_component_datetime_get_tzid (dt)) {
GError *local_error = NULL;
- e_cal_client_get_timezone_sync (event->comp_data->client, dt.tzid,
&zone, NULL, &local_error);
+ if (!e_cal_client_get_timezone_sync (event->comp_data->client,
+ e_cal_component_datetime_get_tzid (dt), &zone, NULL,
&local_error))
+ zone = NULL;
+
if (local_error != NULL) {
zone = e_calendar_view_get_timezone (cal_view);
g_clear_error (&local_error);
@@ -252,14 +262,16 @@ calendar_view_delete_event (ECalendarView *cal_view,
zone = e_calendar_view_get_timezone (cal_view);
}
- e_cal_component_free_datetime (&dt);
+ e_cal_component_datetime_free (dt);
- instance_rid = icaltime_from_timet_with_zone (
+ instance_rid = i_cal_time_from_timet_with_zone (
event->comp_data->instance_start,
- TRUE, zone ? zone : icaltimezone_get_utc_timezone ());
+ TRUE, zone ? zone : i_cal_timezone_get_utc_timezone ());
e_cal_util_remove_instances (event->comp_data->icalcomp, instance_rid,
E_CAL_OBJ_MOD_THIS);
e_cal_ops_modify_component (model, event->comp_data->client,
event->comp_data->icalcomp,
E_CAL_OBJ_MOD_THIS, E_CAL_OPS_SEND_FLAG_DONT_SEND);
+
+ g_clear_object (&instance_rid);
}
} else if (e_cal_util_component_is_instance (event->comp_data->icalcomp) ||
e_cal_util_component_has_recurrences (event->comp_data->icalcomp))
@@ -437,19 +449,19 @@ calendar_view_update_actions (ESelectable *selectable,
for (iter = list; iter != NULL; iter = iter->next) {
ECalendarViewEvent *event = iter->data;
ECalClient *client;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
if (event == NULL || event->comp_data == NULL)
continue;
client = event->comp_data->client;
- icalcomp = event->comp_data->icalcomp;
+ icomp = event->comp_data->icalcomp;
sources_are_editable = sources_are_editable && !e_client_is_readonly (E_CLIENT (client));
recurring |=
- e_cal_util_component_is_instance (icalcomp) ||
- e_cal_util_component_has_recurrences (icalcomp);
+ e_cal_util_component_is_instance (icomp) ||
+ e_cal_util_component_has_recurrences (icomp);
}
g_list_free (list);
@@ -510,52 +522,64 @@ calendar_view_cut_clipboard (ESelectable *selectable)
}
static void
-add_related_timezones (icalcomponent *des_icalcomp,
- icalcomponent *src_icalcomp,
- ECalClient *client)
+add_related_timezones (ICalComponent *des_icomp,
+ ICalComponent *src_icomp,
+ ECalClient *client)
{
- icalproperty_kind look_in[] = {
- ICAL_DTSTART_PROPERTY,
- ICAL_DTEND_PROPERTY,
- ICAL_NO_PROPERTY
+ ICalPropertyKind look_in[] = {
+ I_CAL_DTSTART_PROPERTY,
+ I_CAL_DTEND_PROPERTY,
+ I_CAL_NO_PROPERTY
};
- gint i;
+ gint ii;
- g_return_if_fail (des_icalcomp != NULL);
- g_return_if_fail (src_icalcomp != NULL);
+ g_return_if_fail (des_icomp != NULL);
+ g_return_if_fail (src_icomp != NULL);
g_return_if_fail (client != NULL);
- for (i = 0; look_in[i] != ICAL_NO_PROPERTY; i++) {
- icalproperty *prop = icalcomponent_get_first_property (src_icalcomp, look_in[i]);
+ for (ii = 0; look_in[ii] != I_CAL_NO_PROPERTY; ii++) {
+ ICalProperty *prop = i_cal_component_get_first_property (src_icomp, look_in[ii]);
if (prop) {
- icalparameter *par = icalproperty_get_first_parameter (prop, ICAL_TZID_PARAMETER);
+ ICalParameter *par = i_cal_property_get_first_parameter (prop, I_CAL_TZID_PARAMETER);
if (par) {
- const gchar *tzid = icalparameter_get_tzid (par);
+ const gchar *tzid = i_cal_parameter_get_tzid (par);
if (tzid) {
GError *error = NULL;
- icaltimezone *zone = NULL;
+ ICalTimezone *zone = NULL;
- e_cal_client_get_timezone_sync (
- client, tzid, &zone, NULL, &error);
+ if (!e_cal_client_get_timezone_sync (client, tzid, &zone, NULL,
&error))
+ zone = NULL;
if (error != NULL) {
g_warning (
"%s: Cannot get timezone for '%s'. %s",
G_STRFUNC, tzid, error->message);
g_error_free (error);
- } else if (zone &&
- icalcomponent_get_timezone (des_icalcomp,
icaltimezone_get_tzid (zone)) == NULL) {
- /* do not duplicate timezones in the component */
- icalcomponent *vtz_comp;
+ } else if (zone) {
+ ICalTimezone *existing_zone;
- vtz_comp = icaltimezone_get_component (zone);
- if (vtz_comp)
- icalcomponent_add_component (des_icalcomp,
icalcomponent_new_clone (vtz_comp));
+ /* do not duplicate timezones in the component */
+ existing_zone = i_cal_component_get_timezone (des_icomp,
i_cal_timezone_get_tzid (zone));
+ if (existing_zone) {
+ g_object_unref (existing_zone);
+ } else {
+ ICalComponent *vtz_comp;
+
+ vtz_comp = i_cal_timezone_get_component (zone);
+ if (vtz_comp) {
+ i_cal_component_take_component (des_icomp,
i_cal_component_new_clone (vtz_comp));
+ g_object_unref (vtz_comp);
+ }
+ }
}
}
+
+ g_object_unref (par);
}
+
+ g_object_unref (prop);
}
}
}
@@ -567,8 +591,7 @@ calendar_view_copy_clipboard (ESelectable *selectable)
ECalendarViewPrivate *priv;
GList *selected, *l;
gchar *comp_str;
- icalcomponent *vcal_comp;
- icalcomponent *new_icalcomp;
+ ICalComponent *vcal_comp;
ECalendarViewEvent *event;
GtkClipboard *clipboard;
@@ -598,18 +621,20 @@ calendar_view_copy_clipboard (ESelectable *selectable)
}
for (l = selected; l != NULL; l = l->next) {
+ ICalComponent *new_icomp;
+
event = (ECalendarViewEvent *) l->data;
if (!is_comp_data_valid (event))
continue;
- new_icalcomp = icalcomponent_new_clone (event->comp_data->icalcomp);
+ new_icomp = i_cal_component_new_clone (event->comp_data->icalcomp);
/* do not remove RECURRENCE-IDs from copied objects */
- icalcomponent_add_component (vcal_comp, new_icalcomp);
+ i_cal_component_take_component (vcal_comp, new_icomp);
}
- comp_str = icalcomponent_as_ical_string_r (vcal_comp);
+ comp_str = i_cal_component_as_ical_string_r (vcal_comp);
/* copy the VCALENDAR to the clipboard */
clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
@@ -617,7 +642,7 @@ calendar_view_copy_clipboard (ESelectable *selectable)
gtk_clipboard_store (clipboard);
/* free memory */
- icalcomponent_free (vcal_comp);
+ g_object_unref (vcal_comp);
g_free (comp_str);
g_list_free (selected);
}
@@ -625,7 +650,7 @@ calendar_view_copy_clipboard (ESelectable *selectable)
static void
calendar_view_component_created_cb (ECalModel *model,
ECalClient *client,
- icalcomponent *original_icalcomp,
+ ICalComponent *original_icomp,
const gchar *new_uid,
gpointer user_data)
{
@@ -634,7 +659,7 @@ calendar_view_component_created_cb (ECalModel *model,
ESourceRegistry *registry;
GtkWidget *toplevel = user_data;
- comp = e_cal_component_new_from_icalcomponent (icalcomponent_new_clone (original_icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (original_icomp));
g_return_if_fail (comp != NULL);
registry = e_cal_model_get_registry (model);
@@ -657,17 +682,18 @@ static void
e_calendar_view_add_event_sync (ECalModel *model,
ECalClient *client,
time_t dtstart,
- icaltimezone *default_zone,
- icalcomponent *icalcomp,
+ ICalTimezone *default_zone,
+ ICalComponent *icomp,
gboolean all_day,
gboolean is_day_view,
gint time_division,
GtkWidget *top_level)
{
ECalComponent *comp;
- struct icaltimetype itime, old_dtstart, old_dtend;
+ ICalTimetype *itime, *btime, *old_dtstart, *old_dtend;
+ ICalDurationType *ic_dur, *ic_oneday;
+ ICalTimezone *old_dtstart_zone;
time_t tt_start, tt_end, new_dtstart = 0;
- struct icaldurationtype ic_dur, ic_oneday;
gchar *uid;
gint start_offset, end_offset;
gboolean all_day_event = FALSE;
@@ -675,30 +701,36 @@ e_calendar_view_add_event_sync (ECalModel *model,
start_offset = 0;
end_offset = 0;
- old_dtstart = icalcomponent_get_dtstart (icalcomp);
- tt_start = icaltime_as_timet (old_dtstart);
- old_dtend = icalcomponent_get_dtend (icalcomp);
- tt_end = icaltime_as_timet (old_dtend);
- ic_dur = icaldurationtype_from_int (tt_end - tt_start);
+ old_dtstart = i_cal_component_get_dtstart (icomp);
+ tt_start = i_cal_time_as_timet (old_dtstart);
+ old_dtend = i_cal_component_get_dtend (icomp);
+ tt_end = i_cal_time_as_timet (old_dtend);
+ ic_dur = i_cal_duration_type_from_int (tt_end - tt_start);
- if (icaldurationtype_as_int (ic_dur) > 60 *60 *24) {
+ if (i_cal_duration_type_as_int (ic_dur) > 60 * 60 * 24) {
/* This is a long event */
- start_offset = old_dtstart.hour * 60 + old_dtstart.minute;
- end_offset = old_dtstart.hour * 60 + old_dtend.minute;
+ start_offset = i_cal_timetype_get_hour (old_dtstart) * 60 + i_cal_timetype_get_minute
(old_dtstart);
+ end_offset = i_cal_timetype_get_hour (old_dtstart) * 60 + i_cal_timetype_get_minute
(old_dtend);
}
- ic_oneday = icaldurationtype_null_duration ();
- ic_oneday.days = 1;
+ ic_oneday = i_cal_duration_type_null_duration ();
+ i_cal_duration_type_set_days (ic_oneday, 1);
+
+ old_dtstart_zone = i_cal_time_get_timezone (old_dtstart);
+ if (!old_dtstart_zone)
+ old_dtstart_zone = default_zone;
if (is_day_view) {
if (start_offset == 0 && end_offset == 0 && all_day)
all_day_event = TRUE;
if (all_day_event) {
- ic_dur = ic_oneday;
- } else if (icaldurationtype_as_int (ic_dur) >= 60 *60 *24 && !all_day) {
+ g_clear_object (&ic_dur);
+ ic_dur = g_object_ref (ic_oneday);
+ } else if (i_cal_duration_type_as_int (ic_dur) >= 60 * 60 * 24 && !all_day) {
+ g_clear_object (&ic_dur);
/* copy & paste from top canvas to main canvas */
- ic_dur = icaldurationtype_from_int (time_division * 60);
+ ic_dur = i_cal_duration_type_from_int (time_division * 60);
}
if (all_day)
@@ -706,39 +738,46 @@ e_calendar_view_add_event_sync (ECalModel *model,
else
new_dtstart = dtstart;
} else {
- if (old_dtstart.is_date && old_dtend.is_date
- && memcmp (&ic_dur, &ic_oneday, sizeof (ic_dur)) == 0) {
+ if (i_cal_time_is_date (old_dtstart) && i_cal_time_is_date (old_dtend) &&
+ i_cal_duration_type_as_int (ic_dur) == i_cal_duration_type_as_int (ic_oneday)) {
all_day_event = TRUE;
new_dtstart = dtstart;
} else {
- icaltimetype new_time = icaltime_from_timet_with_zone (dtstart, FALSE, default_zone);
+ ICalTimetype *new_time = i_cal_time_from_timet_with_zone (dtstart, FALSE,
default_zone);
- new_time.hour = old_dtstart.hour;
- new_time.minute = old_dtstart.minute;
- new_time.second = old_dtstart.second;
+ i_cal_timetype_set_hour (new_time, i_cal_timetype_get_hour (old_dtstart));
+ i_cal_timetype_set_minute (new_time, i_cal_timetype_get_minute (old_dtstart));
+ i_cal_timetype_set_second (new_time, i_cal_timetype_get_second (old_dtstart));
- new_dtstart = icaltime_as_timet_with_zone (new_time, old_dtstart.zone ?
old_dtstart.zone : default_zone);
+ new_dtstart = i_cal_time_as_timet_with_zone (new_time, old_dtstart_zone);
+
+ g_clear_object (&new_time);
}
}
- itime = icaltime_from_timet_with_zone (new_dtstart, FALSE, old_dtstart.zone ? old_dtstart.zone :
default_zone);
+ itime = i_cal_time_from_timet_with_zone (new_dtstart, FALSE, old_dtstart_zone);
/* set the timezone properly */
- itime.zone = old_dtstart.zone ? old_dtstart.zone : default_zone;
+ i_cal_time_set_timezone (itime, old_dtstart_zone);
if (all_day_event)
- itime.is_date = TRUE;
- icalcomponent_set_dtstart (icalcomp, itime);
+ i_cal_timetype_set_is_date (itime, TRUE);
+ i_cal_component_set_dtstart (icomp, itime);
- itime.is_date = FALSE;
- itime = icaltime_add (itime, ic_dur);
+ i_cal_timetype_set_is_date (itime, FALSE);
+ btime = i_cal_time_add (itime, ic_dur);
if (all_day_event)
- itime.is_date = TRUE;
- icalcomponent_set_dtend (icalcomp, itime);
+ i_cal_timetype_set_is_date (itime, TRUE);
+ i_cal_component_set_dtend (icomp, itime);
+
+ g_clear_object (&itime);
+ g_clear_object (&btime);
+ g_clear_object (&old_dtstart);
+ g_clear_object (&old_dtend);
+ g_clear_object (&ic_dur);
+ g_clear_object (&ic_oneday);
/* The new uid stuff can go away once we actually set it in the backend */
uid = e_util_generate_uid ();
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (
- comp, icalcomponent_new_clone (icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (icomp));
e_cal_component_set_uid (comp, uid);
g_free (uid);
@@ -785,15 +824,14 @@ paste_clipboard_data_free (gpointer ptr)
GSList *found = NULL;
/* Remove them one by one after ensuring it has been copied to the
destination successfully */
- found = g_slist_find_custom (pcd->copied_uids, icalcomponent_get_uid
(comp_data->icalcomp), (GCompareFunc) strcmp);
+ found = g_slist_find_custom (pcd->copied_uids, i_cal_component_get_uid
(comp_data->icalcomp), (GCompareFunc) strcmp);
if (!found)
continue;
g_free (found->data);
pcd->copied_uids = g_slist_delete_link (pcd->copied_uids, found);
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone
(comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(comp_data->icalcomp));
if (itip_has_any_attendees (comp) &&
(itip_organizer_is_user (registry, comp, comp_data->client) ||
@@ -802,7 +840,7 @@ paste_clipboard_data_free (gpointer ptr)
itip_send_component_with_model (model, E_CAL_COMPONENT_METHOD_CANCEL,
comp, comp_data->client, NULL, NULL, NULL, TRUE, FALSE, TRUE);
- e_cal_component_get_uid (comp, &uid);
+ uid = e_cal_component_get_uid (comp);
if (e_cal_component_is_instance (comp)) {
gchar *rid = NULL;
@@ -842,9 +880,9 @@ cal_view_paste_clipboard_thread (EAlertSinkThreadJobData *job_data,
GError **error)
{
PasteClipboardData *pcd = user_data;
- icalcomponent *icalcomp;
- icalcomponent_kind kind;
- icaltimezone *default_zone;
+ ICalComponent *icomp;
+ ICalComponentKind kind;
+ ICalTimezone *default_zone;
ECalModel *model;
ESourceRegistry *registry;
ESource *source = NULL, *default_source = NULL;
@@ -860,8 +898,8 @@ cal_view_paste_clipboard_thread (EAlertSinkThreadJobData *job_data,
g_return_if_fail (pcd != NULL);
- icalcomp = icalparser_parse_string (pcd->ical_str);
- if (!icalcomp) {
+ icomp = i_cal_parser_parse_string (pcd->ical_str);
+ if (!icomp) {
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_DATA,
_("Pasted text doesn’t contain valid iCalendar data"));
return;
@@ -871,17 +909,17 @@ cal_view_paste_clipboard_thread (EAlertSinkThreadJobData *job_data,
registry = e_cal_model_get_registry (model);
switch (e_cal_model_get_component_kind (model)) {
- case ICAL_VEVENT_COMPONENT:
+ case I_CAL_VEVENT_COMPONENT:
default_source = e_source_registry_ref_default_calendar (registry);
extension_name = E_SOURCE_EXTENSION_CALENDAR;
message = _("Default calendar not found");
break;
- case ICAL_VJOURNAL_COMPONENT:
+ case I_CAL_VJOURNAL_COMPONENT:
default_source = e_source_registry_ref_default_memo_list (registry);
extension_name = E_SOURCE_EXTENSION_MEMO_LIST;
message = _("Default memo list not found");
break;
- case ICAL_VTODO_COMPONENT:
+ case I_CAL_VTODO_COMPONENT:
default_source = e_source_registry_ref_default_task_list (registry);
extension_name = E_SOURCE_EXTENSION_TASK_LIST;
message = _("Default task list not found");
@@ -918,38 +956,41 @@ cal_view_paste_clipboard_thread (EAlertSinkThreadJobData *job_data,
}
client = E_CAL_CLIENT (e_client);
- kind = icalcomponent_isa (icalcomp);
+ kind = i_cal_component_isa (icomp);
default_zone = e_cal_model_get_timezone (model);
all_day = pcd->selection_end - pcd->selection_start == 60 * 60 * 24;
copied_components = 0;
- if (kind == ICAL_VCALENDAR_COMPONENT) {
- icalcomponent *subcomp;
+ if (kind == I_CAL_VCALENDAR_COMPONENT) {
+ ICalComponent *subcomp;
/* add timezones first, to have them ready */
- for (subcomp = icalcomponent_get_first_component (icalcomp, ICAL_VTIMEZONE_COMPONENT);
+ for (subcomp = i_cal_component_get_first_component (icomp, I_CAL_VTIMEZONE_COMPONENT);
subcomp;
- subcomp = icalcomponent_get_next_component (icalcomp, ICAL_VTIMEZONE_COMPONENT)) {
- icaltimezone *zone;
+ g_object_unref (subcomp), subcomp = i_cal_component_get_next_component (icomp,
I_CAL_VTIMEZONE_COMPONENT)) {
+ ICalTimezone *zone;
- zone = icaltimezone_new ();
- icaltimezone_set_component (zone, subcomp);
+ zone = i_cal_timezone_new ();
+ i_cal_timezone_set_component (zone, i_cal_component_new_clone (subcomp));
if (!e_cal_client_add_timezone_sync (client, zone, cancellable, error)) {
- icaltimezone_free (zone, 1);
+ g_object_unref (subcomp);
+ g_object_unref (zone);
goto out;
}
- icaltimezone_free (zone, 1);
+ g_object_unref (zone);
}
- for (subcomp = icalcomponent_get_first_component (icalcomp, ICAL_VEVENT_COMPONENT);
+ for (subcomp = i_cal_component_get_first_component (icomp, I_CAL_VEVENT_COMPONENT);
subcomp;
- subcomp = icalcomponent_get_next_component (icalcomp, ICAL_VEVENT_COMPONENT)) {
+ g_object_unref (subcomp), subcomp = i_cal_component_get_next_component (icomp,
I_CAL_VEVENT_COMPONENT)) {
if (e_cal_util_component_has_recurrences (subcomp)) {
- icalproperty *icalprop = icalcomponent_get_first_property (subcomp,
ICAL_RRULE_PROPERTY);
- if (icalprop)
- icalproperty_remove_parameter_by_name (icalprop,
"X-EVOLUTION-ENDDATE");
+ ICalProperty *prop = i_cal_component_get_first_property (subcomp,
I_CAL_RRULE_PROPERTY);
+ if (prop) {
+ i_cal_property_remove_parameter_by_name (prop, "X-EVOLUTION-ENDDATE");
+ g_object_unref (prop);
+ }
}
e_calendar_view_add_event_sync (model, client, pcd->selection_start, default_zone,
subcomp, all_day,
@@ -957,15 +998,15 @@ cal_view_paste_clipboard_thread (EAlertSinkThreadJobData *job_data,
copied_components++;
if (pcd->selected_cut_list)
- pcd->copied_uids = g_slist_prepend (pcd->copied_uids, g_strdup
(icalcomponent_get_uid (subcomp)));
+ pcd->copied_uids = g_slist_prepend (pcd->copied_uids, g_strdup
(i_cal_component_get_uid (subcomp)));
}
} else if (kind == e_cal_model_get_component_kind (model)) {
- e_calendar_view_add_event_sync (model, client, pcd->selection_start, default_zone, icalcomp,
all_day,
+ e_calendar_view_add_event_sync (model, client, pcd->selection_start, default_zone, icomp,
all_day,
pcd->is_day_view, pcd->time_division, pcd->top_level);
copied_components++;
if (pcd->selected_cut_list)
- pcd->copied_uids = g_slist_prepend (pcd->copied_uids, g_strdup (icalcomponent_get_uid
(icalcomp)));
+ pcd->copied_uids = g_slist_prepend (pcd->copied_uids, g_strdup
(i_cal_component_get_uid (icomp)));
}
pcd->success = !g_cancellable_is_cancelled (cancellable);
@@ -975,7 +1016,7 @@ cal_view_paste_clipboard_thread (EAlertSinkThreadJobData *job_data,
if (!copied_components && !g_cancellable_is_cancelled (cancellable) && error && !*error)
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, _("No suitable component
found"));
- icalcomponent_free (icalcomp);
+ g_clear_object (&icomp);
g_clear_object (&source);
g_clear_object (&default_source);
g_clear_object (&client);
@@ -1191,10 +1232,10 @@ e_calendar_view_class_init (ECalendarViewClass *class)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ECalendarViewClass, timezone_changed),
NULL, NULL,
- e_marshal_VOID__POINTER_POINTER,
+ e_marshal_VOID__OBJECT_OBJECT,
G_TYPE_NONE, 2,
- G_TYPE_POINTER,
- G_TYPE_POINTER);
+ I_CAL_TYPE_TIMEZONE,
+ I_CAL_TYPE_TIMEZONE);
signals[EVENT_CHANGED] = g_signal_new (
"event-changed",
@@ -1293,18 +1334,19 @@ e_calendar_view_get_model (ECalendarView *cal_view)
return cal_view->priv->model;
}
-icaltimezone *
+ICalTimezone *
e_calendar_view_get_timezone (ECalendarView *cal_view)
{
g_return_val_if_fail (E_IS_CALENDAR_VIEW (cal_view), NULL);
+
return e_cal_model_get_timezone (cal_view->priv->model);
}
void
e_calendar_view_set_timezone (ECalendarView *cal_view,
- icaltimezone *zone)
+ const ICalTimezone *zone)
{
- icaltimezone *old_zone;
+ ICalTimezone *old_zone;
g_return_if_fail (E_IS_CALENDAR_VIEW (cal_view));
@@ -1312,10 +1354,15 @@ e_calendar_view_set_timezone (ECalendarView *cal_view,
if (old_zone == zone)
return;
+ if (old_zone)
+ g_object_ref (old_zone);
+
e_cal_model_set_timezone (cal_view->priv->model, zone);
g_signal_emit (
cal_view, signals[TIMEZONE_CHANGED], 0,
old_zone, zone);
+
+ g_clear_object (&old_zone);
}
GtkTargetList *
@@ -1576,9 +1623,9 @@ object_created_cb (ECompEditor *comp_editor,
ECompEditor *
e_calendar_view_open_event_with_flags (ECalendarView *cal_view,
- ECalClient *client,
- icalcomponent *icalcomp,
- guint32 flags)
+ ECalClient *client,
+ ICalComponent *icomp,
+ guint32 flags)
{
ECompEditor *comp_editor;
EShell *shell;
@@ -1586,7 +1633,7 @@ e_calendar_view_open_event_with_flags (ECalendarView *cal_view,
/* FIXME ECalendarView should own an EShell pointer. */
shell = e_shell_get_default ();
- comp_editor = e_comp_editor_find_existing_for (e_client_get_source (E_CLIENT (client)), icalcomp);
+ comp_editor = e_comp_editor_find_existing_for (e_client_get_source (E_CLIENT (client)), icomp);
if (!comp_editor) {
GtkWidget *toplevel;
@@ -1595,7 +1642,7 @@ e_calendar_view_open_event_with_flags (ECalendarView *cal_view,
toplevel = NULL;
comp_editor = e_comp_editor_open_for_component (GTK_WINDOW (toplevel),
- shell, e_client_get_source (E_CLIENT (client)), icalcomp, flags);
+ shell, e_client_get_source (E_CLIENT (client)), icomp, flags);
g_signal_connect (
comp_editor, "object-created",
@@ -1611,7 +1658,7 @@ e_calendar_view_open_event_with_flags (ECalendarView *cal_view,
* e_calendar_view_edit_appointment
* @cal_view: A calendar view.
* @client: Calendar client.
- * @icalcomp: The object to be edited.
+ * @icomp: The object to be edited.
* @mode: one of #EEditEventMode
*
* Opens an editor window to allow the user to edit the selected
@@ -1619,9 +1666,9 @@ e_calendar_view_open_event_with_flags (ECalendarView *cal_view,
*/
void
e_calendar_view_edit_appointment (ECalendarView *cal_view,
- ECalClient *client,
- icalcomponent *icalcomp,
- EEditEventMode mode)
+ ECalClient *client,
+ ICalComponent *icomp,
+ EEditEventMode mode)
{
ECalModel *model;
ESourceRegistry *registry;
@@ -1629,15 +1676,14 @@ e_calendar_view_edit_appointment (ECalendarView *cal_view,
g_return_if_fail (E_IS_CALENDAR_VIEW (cal_view));
g_return_if_fail (E_IS_CAL_CLIENT (client));
- g_return_if_fail (icalcomp != NULL);
+ g_return_if_fail (icomp != NULL);
model = e_calendar_view_get_model (cal_view);
registry = e_cal_model_get_registry (model);
- if ((mode == EDIT_EVENT_AUTODETECT && icalcomponent_get_first_property (icalcomp,
ICAL_ATTENDEE_PROPERTY) != NULL)
+ if ((mode == EDIT_EVENT_AUTODETECT && e_cal_util_component_has_attendee (icomp))
|| mode == EDIT_EVENT_FORCE_MEETING) {
- ECalComponent *comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (icalcomp));
+ ECalComponent *comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(icomp));
flags |= E_COMP_EDITOR_FLAG_WITH_ATTENDEES;
if (itip_organizer_is_user (registry, comp, client) ||
itip_sentby_is_user (registry, comp, client) ||
@@ -1646,7 +1692,7 @@ e_calendar_view_edit_appointment (ECalendarView *cal_view,
g_object_unref (comp);
}
- e_calendar_view_open_event_with_flags (cal_view, client, icalcomp, flags);
+ e_calendar_view_open_event_with_flags (cal_view, client, icomp, flags);
}
static void
@@ -1682,15 +1728,15 @@ tooltip_key_event (GtkWidget *tooltip,
}
static gchar *
-get_label (struct icaltimetype *tt,
- icaltimezone *f_zone,
- icaltimezone *t_zone)
+get_label (ICalTimetype *tt,
+ ICalTimezone *f_zone,
+ ICalTimezone *t_zone)
{
struct tm tmp_tm;
tmp_tm = icaltimetype_to_tm_with_zone (tt, f_zone, t_zone);
- return e_datetime_format_format_tm ("calendar", "table", tt->is_date ? DTFormatKindDate :
DTFormatKindDateTime, &tmp_tm);
+ return e_datetime_format_format_tm ("calendar", "table", i_cal_time_is_date (tt) ? DTFormatKindDate :
DTFormatKindDateTime, &tmp_tm);
}
void
@@ -1764,11 +1810,9 @@ gboolean
e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
{
GtkWidget *label, *box, *hbox, *ebox, *frame, *toplevel;
- const gchar *str;
gchar *tmp, *tmp1 = NULL, *tmp2 = NULL;
- ECalComponentOrganizer organiser;
- ECalComponentDateTime dtstart, dtend;
- icalcomponent *clone_comp;
+ ECalComponentOrganizer *organizer;
+ ECalComponentDateTime *dtstart, *dtend;
time_t t_start, t_end;
ECalendarViewEvent *pevent;
GtkWidget *widget;
@@ -1777,8 +1821,8 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
GdkDeviceManager *device_manager;
GdkRGBA bg_rgba, fg_rgba;
GQueue *grabbed_keyboards;
- ECalComponent *newcomp = e_cal_component_new ();
- icaltimezone *zone, *default_zone;
+ ECalComponent *newcomp;
+ ICalTimezone *zone, *default_zone;
ECalModel *model;
ECalClient *client = NULL;
GList *list, *link;
@@ -1799,7 +1843,7 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
if (GTK_IS_WIDGET (widget))
gtk_widget_destroy (widget);
- default_zone = e_calendar_view_get_timezone (data->cal_view);
+ default_zone = e_calendar_view_get_timezone (data->cal_view);
pevent = data->get_view_event (data->cal_view, data->day, data->event_num);
if (!is_comp_data_valid (pevent))
@@ -1807,9 +1851,11 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
client = pevent->comp_data->client;
- clone_comp = icalcomponent_new_clone (pevent->comp_data->icalcomp);
- if (!e_cal_component_set_icalcomponent (newcomp, clone_comp))
+ newcomp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(pevent->comp_data->icalcomp));
+ if (!newcomp) {
g_warning ("couldn't update calendar component with modified data from backend\n");
+ return FALSE;
+ }
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
@@ -1841,19 +1887,19 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
gtk_box_pack_start ((GtkBox *) box, ebox, FALSE, FALSE, 0);
g_free (tmp);
- e_cal_component_get_organizer (newcomp, &organiser);
- if (organiser.cn) {
- gchar *ptr;
- ptr = strchr (organiser.value, ':');
+ organizer = e_cal_component_get_organizer (newcomp);
+ if (organizer && e_cal_component_organizer_get_cn (organizer)) {
+ const gchar *email;
+
+ email = itip_strip_mailto (e_cal_component_organizer_get_value (organizer));
- if (ptr) {
- ptr++;
+ if (email) {
/* To Translators: It will display "Organiser: NameOfTheUser <email ofuser com>" */
- tmp = g_strdup_printf (_("Organizer: %s <%s>"), organiser.cn, ptr);
- }
- else
+ tmp = g_strdup_printf (_("Organizer: %s <%s>"), e_cal_component_organizer_get_cn
(organizer), email);
+ } else {
/* With SunOne accouts, there may be no ':' in organiser.value*/
- tmp = g_strdup_printf (_("Organizer: %s"), organiser.cn);
+ tmp = g_strdup_printf (_("Organizer: %s"), e_cal_component_organizer_get_cn
(organizer));
+ }
label = gtk_label_new (tmp);
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
@@ -1865,11 +1911,13 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
g_free (tmp);
}
- e_cal_component_get_location (newcomp, &str);
+ e_cal_component_organizer_free (organizer);
+
+ tmp1 = e_cal_component_get_location (newcomp);
- if (str) {
+ if (tmp1) {
/* Translators: It will display "Location: PlaceOfTheMeeting" */
- tmp = g_markup_printf_escaped (_("Location: %s"), str);
+ tmp = g_markup_printf_escaped (_("Location: %s"), tmp1);
label = gtk_label_new (NULL);
gtk_widget_set_halign (label, GTK_ALIGN_START);
gtk_misc_set_alignment ((GtkMisc *) label, 0.0, 0.0);
@@ -1883,13 +1931,18 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
gtk_box_pack_start ((GtkBox *) box, ebox, FALSE, FALSE, 0);
g_free (tmp);
}
- e_cal_component_get_dtstart (newcomp, &dtstart);
- e_cal_component_get_dtend (newcomp, &dtend);
- if (dtstart.tzid) {
- zone = icalcomponent_get_timezone (e_cal_component_get_icalcomponent (newcomp), dtstart.tzid);
- if (!zone)
- e_cal_client_get_timezone_sync (client, dtstart.tzid, &zone, NULL, NULL);
+ g_free (tmp1);
+ tmp1 = NULL;
+
+ dtstart = e_cal_component_get_dtstart (newcomp);
+ dtend = e_cal_component_get_dtend (newcomp);
+
+ if (dtstart && e_cal_component_datetime_get_tzid (dtstart)) {
+ zone = i_cal_component_get_timezone (e_cal_component_get_icalcomponent (newcomp),
e_cal_component_datetime_get_tzid (dtstart));
+ if (!zone &&
+ !e_cal_client_get_timezone_sync (client, e_cal_component_datetime_get_tzid (dtstart),
&zone, NULL, NULL))
+ zone = NULL;
if (!zone)
zone = default_zone;
@@ -1898,14 +1951,14 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
zone = NULL;
}
- if (dtstart.value) {
- t_start = icaltime_as_timet_with_zone (*dtstart.value, zone);
- if (dtend.value)
- t_end = icaltime_as_timet_with_zone (*dtend.value, zone);
+ if (dtstart && e_cal_component_datetime_get_value (dtstart)) {
+ t_start = i_cal_time_as_timet_with_zone (e_cal_component_datetime_get_value (dtstart), zone);
+ if (dtend && e_cal_component_datetime_get_value (dtend))
+ t_end = i_cal_time_as_timet_with_zone (e_cal_component_datetime_get_value (dtend),
zone);
else
t_end = t_start;
- tmp1 = get_label (dtstart.value, zone, default_zone);
+ tmp1 = get_label (e_cal_component_datetime_get_value (dtstart), zone, default_zone);
tmp = calculate_time (t_start, t_end);
/* To Translators: It will display "Time: ActualStartDateAndTime (DurationOfTheMeeting)"*/
@@ -1914,8 +1967,8 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
g_free (tmp);
g_free (tmp1);
- tmp1 = get_label (dtstart.value, zone, zone);
- tmp = g_strconcat (tmp2, "\n\t[ ", tmp1, " ", icaltimezone_get_display_name (zone), "
]", NULL);
+ tmp1 = get_label (e_cal_component_datetime_get_value (dtstart), zone, zone);
+ tmp = g_strconcat (tmp2, "\n\t[ ", tmp1, " ", i_cal_timezone_get_display_name (zone),
" ]", NULL);
} else {
g_free (tmp);
tmp = tmp2;
@@ -1925,8 +1978,8 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
tmp = NULL;
}
- e_cal_component_free_datetime (&dtstart);
- e_cal_component_free_datetime (&dtend);
+ e_cal_component_datetime_free (dtstart);
+ e_cal_component_datetime_free (dtend);
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_pack_start ((GtkBox *) hbox, gtk_label_new_with_mnemonic (tmp), FALSE, FALSE, 0);
@@ -2077,7 +2130,7 @@ e_calendar_view_dup_component_summary (ICalComponent *icomp)
gint since_year;
gchar *res = NULL;
- since_year = atoi (since_year_str) : 0;
+ since_year = atoi (since_year_str);
dtstart = i_cal_component_get_dtstart (icomp);
@@ -2104,7 +2157,7 @@ e_calendar_view_dup_component_summary (ICalComponent *icomp)
void
e_calendar_view_component_created_cb (ECalModel *model,
ECalClient *client,
- icalcomponent *original_icalcomp,
+ ICalComponent *original_icomp,
const gchar *new_uid,
gpointer user_data)
{
@@ -2115,7 +2168,6 @@ e_calendar_view_component_created_cb (ECalModel *model,
e_cal_model_emit_object_created (model, client);
}
-
void
draw_curved_rectangle (cairo_t *cr,
gdouble x0,
@@ -2261,8 +2313,8 @@ e_calendar_view_get_description_text (ECalendarView *cal_view)
{
time_t start_time, end_time;
struct tm start_tm, end_tm;
- struct icaltimetype start_tt, end_tt;
- icaltimezone *zone;
+ ICalTimetype *tt;
+ ICalTimezone *zone;
gchar start_buffer[512] = { 0 };
gchar end_buffer[512] = { 0 };
@@ -2273,26 +2325,14 @@ e_calendar_view_get_description_text (ECalendarView *cal_view)
zone = e_cal_model_get_timezone (cal_view->priv->model);
- start_tt = icaltime_from_timet_with_zone (start_time, FALSE, zone);
- start_tm.tm_year = start_tt.year - 1900;
- start_tm.tm_mon = start_tt.month - 1;
- start_tm.tm_mday = start_tt.day;
- start_tm.tm_hour = start_tt.hour;
- start_tm.tm_min = start_tt.minute;
- start_tm.tm_sec = start_tt.second;
- start_tm.tm_isdst = -1;
- start_tm.tm_wday = time_day_of_week (start_tt.day, start_tt.month - 1, start_tt.year);
+ tt = i_cal_time_from_timet_with_zone (start_time, FALSE, zone);
+ start_tm = icaltimetype_to_tm (tt);
+ g_clear_object (&tt);
/* Subtract one from end_time so we don't get an extra day. */
- end_tt = icaltime_from_timet_with_zone (end_time - 1, FALSE, zone);
- end_tm.tm_year = end_tt.year - 1900;
- end_tm.tm_mon = end_tt.month - 1;
- end_tm.tm_mday = end_tt.day;
- end_tm.tm_hour = end_tt.hour;
- end_tm.tm_min = end_tt.minute;
- end_tm.tm_sec = end_tt.second;
- end_tm.tm_isdst = -1;
- end_tm.tm_wday = time_day_of_week (end_tt.day, end_tt.month - 1, end_tt.year);
+ tt = i_cal_time_from_timet_with_zone (end_time - 1, FALSE, zone);
+ end_tm = icaltimetype_to_tm (tt);
+ g_clear_object (&tt);
if (E_IS_MONTH_VIEW (cal_view) || E_IS_CAL_LIST_VIEW (cal_view)) {
if (start_tm.tm_year == end_tm.tm_year) {
diff --git a/src/calendar/gui/e-calendar-view.h b/src/calendar/gui/e-calendar-view.h
index a70043dd29..7455d6db3b 100644
--- a/src/calendar/gui/e-calendar-view.h
+++ b/src/calendar/gui/e-calendar-view.h
@@ -181,7 +181,7 @@ GType e_calendar_view_get_type (void);
ECalModel * e_calendar_view_get_model (ECalendarView *cal_view);
ICalTimezone * e_calendar_view_get_timezone (ECalendarView *cal_view);
void e_calendar_view_set_timezone (ECalendarView *cal_view,
- ICalTimezone *zone);
+ const ICalTimezone *zone);
gint e_calendar_view_get_time_divisions
(ECalendarView *cal_view);
void e_calendar_view_set_time_divisions
diff --git a/src/calendar/gui/e-day-view-main-item.c b/src/calendar/gui/e-day-view-main-item.c
index 05f9f2e795..91f2f2a7f1 100644
--- a/src/calendar/gui/e-day-view-main-item.c
+++ b/src/calendar/gui/e-day-view-main-item.c
@@ -72,18 +72,20 @@ can_draw_in_region (cairo_region_t *draw_region,
}
static gboolean
-icalcomp_is_transparent (icalcomponent *icalcomp)
+icomp_is_transparent (ICalComponent *icomp)
{
- icalproperty *transp_prop;
- icalproperty_transp ical_transp = ICAL_TRANSP_NONE;
+ ICalProperty *transp_prop;
+ ICalPropertyTransp transp = I_CAL_TRANSP_NONE;
- g_return_val_if_fail (icalcomp != NULL, TRUE);
+ g_return_val_if_fail (icomp != NULL, TRUE);
- transp_prop = icalcomponent_get_first_property (icalcomp, ICAL_TRANSP_PROPERTY);
- if (transp_prop)
- ical_transp = icalproperty_get_transp (transp_prop);
+ transp_prop = i_cal_component_get_first_property (icomp, I_CAL_TRANSP_PROPERTY);
+ if (transp_prop) {
+ transp = i_cal_property_get_transp (transp_prop);
+ g_object_unref (transp_prop);
+ }
- return transp_prop && (ical_transp == ICAL_TRANSP_TRANSPARENT || ical_transp ==
ICAL_TRANSP_TRANSPARENTNOCONFLICT);
+ return transp_prop && (transp == I_CAL_TRANSP_TRANSPARENT || transp ==
I_CAL_TRANSP_TRANSPARENTNOCONFLICT);
}
static void
@@ -114,7 +116,7 @@ day_view_main_item_draw_long_events_in_vbars (EDayViewMainItem *main_item,
continue;
/* If the event is TRANSPARENT, skip it. */
- if (icalcomp_is_transparent (event->comp_data->icalcomp)) {
+ if (icomp_is_transparent (event->comp_data->icalcomp)) {
continue;
}
@@ -198,14 +200,12 @@ day_view_main_item_draw_day_event (EDayViewMainItem *main_item,
gdouble date_fraction;
gboolean short_event = FALSE, resize_flag = FALSE, is_editing;
const gchar *end_resize_suffix;
- gchar *end_regsizeime;
gint start_hour, start_display_hour, start_minute, start_suffix_width;
gint end_hour, end_display_hour, end_minute, end_suffix_width;
gboolean show_span = FALSE, format_time;
gint offset, interval;
const gchar *start_suffix;
const gchar *end_suffix;
- gchar *text = NULL;
gint scroll_flag = 0;
gint row_y;
PangoLayout *layout;
@@ -547,6 +547,7 @@ day_view_main_item_draw_day_event (EDayViewMainItem *main_item,
else if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_BOTTOM_EDGE) {
GdkRGBA fg_rgba;
+ gchar *end_regsizeime;
bar_y2 = item_y + item_h - 1;
@@ -590,6 +591,7 @@ day_view_main_item_draw_day_event (EDayViewMainItem *main_item,
pango_cairo_update_layout (cr, layout);
pango_cairo_show_layout (cr, layout);
g_object_unref (layout);
+ g_free (end_regsizeime);
cairo_close_path (cr);
cairo_restore (cr);
@@ -599,11 +601,12 @@ day_view_main_item_draw_day_event (EDayViewMainItem *main_item,
else if (bar_y2 < scroll_flag)
event->end_minute -= time_divisions;
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
/* Only fill it in if the event isn't TRANSPARENT. */
- e_cal_component_get_transparency (comp, &transparency);
+ transparency = e_cal_component_get_transparency (comp);
if (transparency != E_CAL_COMPONENT_TRANSP_TRANSPARENT) {
cairo_save (cr);
pat = cairo_pattern_create_linear (
@@ -745,6 +748,7 @@ day_view_main_item_draw_day_event (EDayViewMainItem *main_item,
if (!short_event) {
GdkRGBA fg_rgba;
+ gchar *text;
if (event->start_minute % time_divisions != 0
|| (day_view->show_event_end_times
@@ -833,12 +837,12 @@ day_view_main_item_draw_day_event (EDayViewMainItem *main_item,
pango_cairo_update_layout (cr, layout);
pango_cairo_show_layout (cr, layout);
g_object_unref (layout);
+ g_free (text);
cairo_close_path (cr);
cairo_restore (cr);
}
- g_free (text);
g_object_unref (comp);
}
@@ -912,7 +916,7 @@ day_view_main_item_draw_events_in_vbars (EDayViewMainItem *main_item,
}
/* If the event is TRANSPARENT, skip it. */
- if (icalcomp_is_transparent (event->comp_data->icalcomp)) {
+ if (icomp_is_transparent (event->comp_data->icalcomp)) {
continue;
}
@@ -1019,7 +1023,7 @@ day_view_main_item_draw (GnomeCanvasItem *canvas_item,
gint day_x, day_w;
gint start_row, end_row, rect_x, rect_y, rect_width, rect_height;
gint days_shown;
- struct icaltimetype day_start_tt, today_tt;
+ ICalTimetype *day_start_tt, *today_tt;
gboolean today = FALSE;
cairo_region_t *draw_region;
GdkRectangle rect;
@@ -1050,18 +1054,18 @@ day_view_main_item_draw (GnomeCanvasItem *canvas_item,
/* Paint the background colors. */
- today_tt = icaltime_from_timet_with_zone (
+ today_tt = i_cal_time_from_timet_with_zone (
time (NULL), FALSE,
e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
for (day = 0; day < days_shown; day++) {
GDateWeekday weekday;
- day_start_tt = icaltime_from_timet_with_zone (
+ day_start_tt = i_cal_time_from_timet_with_zone (
day_view->day_starts[day], FALSE,
e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
- switch (icaltime_day_of_week (day_start_tt)) {
+ switch (i_cal_time_day_of_week (day_start_tt)) {
case 1:
weekday = G_DATE_SUNDAY;
break;
@@ -1118,9 +1122,7 @@ day_view_main_item_draw (GnomeCanvasItem *canvas_item,
if (days_shown > 1) {
/* Check if we are drawing today */
- today = day_start_tt.year == today_tt.year
- && day_start_tt.month == today_tt.month
- && day_start_tt.day == today_tt.day;
+ today = i_cal_time_compare_date_only (day_start_tt, today_tt) == 0;
} else {
today = FALSE;
}
@@ -1147,8 +1149,12 @@ day_view_main_item_draw (GnomeCanvasItem *canvas_item,
cairo_fill (cr);
cairo_restore (cr);
}
+
+ g_clear_object (&day_start_tt);
}
+ g_clear_object (&today_tt);
+
/* Paint the selection background. */
if (day_view->selection_start_day != -1
&& !day_view->selection_in_top_canvas) {
@@ -1257,8 +1263,8 @@ day_view_main_item_draw (GnomeCanvasItem *canvas_item,
width, height, day, draw_region);
if (e_day_view_marcus_bains_get_show_line (day_view)) {
- icaltimezone *zone;
- struct icaltimetype time_now, day_start;
+ ICalTimezone *zone;
+ ICalTimetype *time_now, *day_start;
const gchar *marcus_bains_day_view_color;
gint marcus_bains_y;
GdkColor mb_color;
@@ -1277,25 +1283,26 @@ day_view_main_item_draw (GnomeCanvasItem *canvas_item,
gdk_cairo_set_source_color (cr, &mb_color);
zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view));
- time_now = icaltime_current_time_with_zone (zone);
+ time_now = i_cal_time_current_time_with_zone (zone);
for (day = 0; day < days_shown; day++) {
- day_start = icaltime_from_timet_with_zone (day_view->day_starts[day], FALSE, zone);
-
- if ((day_start.year == time_now.year) &&
- (day_start.month == time_now.month) &&
- (day_start.day == time_now.day)) {
+ day_start = i_cal_time_from_timet_with_zone (day_view->day_starts[day], FALSE, zone);
+ if (i_cal_time_compare_date_only (day_start, time_now) == 0) {
grid_x1 = day_view->day_offsets[day] - x + E_DAY_VIEW_BAR_WIDTH;
grid_x2 = day_view->day_offsets[day + 1] - x - 1;
- marcus_bains_y = (time_now.hour * 60 + time_now.minute) *
day_view->row_height / time_divisions - y;
+ marcus_bains_y = (i_cal_timetype_get_hour (time_now) * 60 +
i_cal_timetype_get_minute (time_now)) * day_view->row_height / time_divisions - y;
cairo_set_line_width (cr, 1.5);
cairo_move_to (cr, grid_x1, marcus_bains_y);
cairo_line_to (cr, grid_x2, marcus_bains_y);
cairo_stroke (cr);
}
+
+ g_clear_object (&day_start);
}
cairo_restore (cr);
+
+ g_clear_object (&time_now);
}
cairo_region_destroy (draw_region);
}
diff --git a/src/calendar/gui/e-day-view-time-item.c b/src/calendar/gui/e-day-view-time-item.c
index 91758968d8..0df2450c84 100644
--- a/src/calendar/gui/e-day-view-time-item.c
+++ b/src/calendar/gui/e-day-view-time-item.c
@@ -64,7 +64,7 @@ struct _EDayViewTimeItemPrivate {
gboolean dragging_selection;
/* The second timezone if shown, or else NULL. */
- icaltimezone *second_zone;
+ ICalTimezone *second_zone;
};
static void e_day_view_time_item_update (GnomeCanvasItem *item,
@@ -229,7 +229,7 @@ e_day_view_time_item_init (EDayViewTimeItem *time_item)
if (last) {
if (*last)
time_item->priv->second_zone =
- icaltimezone_get_builtin_timezone (last);
+ i_cal_timezone_get_builtin_timezone (last);
g_free (last);
}
@@ -258,13 +258,13 @@ e_day_view_time_item_update (GnomeCanvasItem *item,
*/
static void
edvti_draw_zone (GnomeCanvasItem *canvas_item,
- cairo_t *cr,
- gint x,
- gint y,
- gint width,
- gint height,
- gint x_offset,
- icaltimezone *use_zone)
+ cairo_t *cr,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gint x_offset,
+ ICalTimezone *use_zone)
{
EDayView *day_view;
EDayViewTimeItem *time_item;
@@ -351,31 +351,37 @@ edvti_draw_zone (GnomeCanvasItem *canvas_item,
if (use_zone) {
/* shift time with a difference between
* local time and the other timezone */
- icaltimezone *cal_zone;
- struct icaltimetype tt;
+ ICalTimezone *cal_zone;
+ ICalTimetype *tt,*tt2;
gint diff;
struct tm mn;
cal_zone = e_calendar_view_get_timezone (
E_CALENDAR_VIEW (day_view));
- tt = icaltime_from_timet_with_zone (
+ tt = i_cal_time_from_timet_with_zone (
day_view->day_starts[0], 0, cal_zone);
/* diff is number of minutes */
- diff =(icaltimezone_get_utc_offset (use_zone, &tt, NULL) -
- icaltimezone_get_utc_offset (cal_zone, &tt, NULL)) / 60;
+ diff = (i_cal_timezone_get_utc_offset (use_zone, tt, NULL) -
+ i_cal_timezone_get_utc_offset (cal_zone, tt, NULL)) / 60;
- tt = icaltime_from_timet_with_zone (day_view->day_starts[0], 0, cal_zone);
- tt.is_date = FALSE;
- icaltime_set_timezone (&tt, cal_zone);
- tt = icaltime_convert_to_zone (tt, use_zone);
+ g_clear_object (&tt);
+
+ tt = i_cal_time_from_timet_with_zone (day_view->day_starts[0], 0, cal_zone);
+ i_cal_timetype_set_is_date (tt, FALSE);
+ i_cal_time_set_timezone (tt, cal_zone);
+ tt2 = i_cal_time_convert_to_zone (tt, use_zone);
+ g_object_unref (tt);
+ tt = tt2;
if (diff != 0) {
/* shows the next midnight */
- icaltime_adjust (&tt, 1, 0, 0, 0);
+ i_cal_time_adjust (tt, 1, 0, 0, 0);
}
- mn = icaltimetype_to_tm (&tt);
+ mn = icaltimetype_to_tm (tt);
+
+ g_clear_object (&tt);
/* up to two characters/numbers */
e_utf8_strftime (buffer, sizeof (buffer), "%d", &mn);
@@ -412,7 +418,7 @@ edvti_draw_zone (GnomeCanvasItem *canvas_item,
/* Draw the Marcus Bains Line first, so it appears under other elements. */
if (e_day_view_marcus_bains_get_show_line (day_view)) {
- struct icaltimetype time_now;
+ ICalTimetype *time_now;
const gchar *marcus_bains_time_bar_color;
gint marcus_bains_y;
@@ -431,11 +437,11 @@ edvti_draw_zone (GnomeCanvasItem *canvas_item,
mb_color = day_view->colors[E_DAY_VIEW_COLOR_MARCUS_BAINS_LINE];
}
- time_now = icaltime_current_time_with_zone (
+ time_now = i_cal_time_current_time_with_zone (
e_calendar_view_get_timezone (
E_CALENDAR_VIEW (day_view)));
marcus_bains_y =
- (time_now.hour * 60 + time_now.minute) *
+ (i_cal_timetype_get_hour (time_now) * 60 + i_cal_timetype_get_minute (time_now)) *
day_view->row_height / time_divisions - y;
cairo_set_line_width (cr, 1.5);
cairo_move_to (
@@ -445,6 +451,8 @@ edvti_draw_zone (GnomeCanvasItem *canvas_item,
cairo_line_to (cr, long_line_x2, marcus_bains_y);
cairo_stroke (cr);
cairo_restore (cr);
+
+ g_clear_object (&time_now);
} else {
const gchar *marcus_bains_time_bar_color;
@@ -724,14 +732,14 @@ edvti_second_zone_changed_cb (GSettings *settings,
{
EDayViewTimeItem *time_item = user_data;
EDayView *day_view;
- icaltimezone *second_zone;
+ ICalTimezone *second_zone;
gchar *location;
g_return_if_fail (user_data != NULL);
g_return_if_fail (E_IS_DAY_VIEW_TIME_ITEM (time_item));
location = calendar_config_get_day_second_zone ();
- second_zone = location ? icaltimezone_get_builtin_timezone (location) : NULL;
+ second_zone = location ? i_cal_timezone_get_builtin_timezone (location) : NULL;
g_free (location);
if (second_zone == time_item->priv->second_zone)
@@ -777,7 +785,7 @@ e_day_view_time_item_show_popup_menu (EDayViewTimeItem *time_item,
gchar buffer[256];
GSList *group = NULL, *recent_zones, *s;
gint current_divisions, i;
- icaltimezone *zone;
+ ICalTimezone *zone;
day_view = e_day_view_time_item_get_day_view (time_item);
g_return_if_fail (day_view != NULL);
@@ -833,7 +841,7 @@ e_day_view_time_item_show_popup_menu (EDayViewTimeItem *time_item,
zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view));
if (zone)
- item = gtk_menu_item_new_with_label (icaltimezone_get_display_name (zone));
+ item = gtk_menu_item_new_with_label (i_cal_timezone_get_display_name (zone));
else
item = gtk_menu_item_new_with_label ("---");
gtk_widget_set_sensitive (item, FALSE);
@@ -854,12 +862,12 @@ e_day_view_time_item_show_popup_menu (EDayViewTimeItem *time_item,
recent_zones = calendar_config_get_day_second_zones ();
for (s = recent_zones; s != NULL; s = s->next) {
- zone = icaltimezone_get_builtin_timezone (s->data);
+ zone = i_cal_timezone_get_builtin_timezone (s->data);
if (!zone)
continue;
item = gtk_radio_menu_item_new_with_label (
- group, icaltimezone_get_display_name (zone));
+ group, i_cal_timezone_get_display_name (zone));
group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item));
/* both comes from builtin, thus no problem to compare pointers */
if (zone == time_item->priv->second_zone)
@@ -1128,7 +1136,7 @@ e_day_view_time_item_get_column_width (EDayViewTimeItem *time_item)
return time_item->priv->column_width;
}
-icaltimezone *
+ICalTimezone *
e_day_view_time_item_get_second_zone (EDayViewTimeItem *time_item)
{
g_return_val_if_fail (E_IS_DAY_VIEW_TIME_ITEM (time_item), NULL);
diff --git a/src/calendar/gui/e-day-view-top-item.c b/src/calendar/gui/e-day-view-top-item.c
index 0586681335..05017d0d80 100644
--- a/src/calendar/gui/e-day-view-top-item.c
+++ b/src/calendar/gui/e-day-view-top-item.c
@@ -178,9 +178,9 @@ day_view_top_item_draw_long_event (EDayViewTopItem *top_item,
if (!is_comp_data_valid (event))
return;
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (
- comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
if (!e_cal_model_get_rgba_for_component (e_calendar_view_get_model (E_CALENDAR_VIEW (day_view)),
event->comp_data, &bg_rgba)) {
bg_rgba.red = day_view->colors[E_DAY_VIEW_COLOR_LONG_EVENT_BACKGROUND].red / 65535.0;
@@ -453,7 +453,7 @@ day_view_top_item_draw_long_event (EDayViewTopItem *top_item,
}
/* draw categories icons */
- e_cal_component_get_categories_list (comp, &categories_list);
+ categories_list = e_cal_component_get_categories_list (comp);
for (elem = categories_list; elem; elem = elem->next) {
gchar *category;
gchar *file;
@@ -483,7 +483,7 @@ day_view_top_item_draw_long_event (EDayViewTopItem *top_item,
}
}
- e_cal_component_free_categories_list (categories_list);
+ g_slist_free_full (categories_list, g_free);
g_object_unref (comp);
}
@@ -831,25 +831,18 @@ e_day_view_top_item_get_day_label (EDayView *day_view,
gint buffer_len)
{
ECalendarView *view;
- struct icaltimetype day_start_tt;
- const icaltimezone *zone;
- struct tm day_start = { 0 };
+ ICalTimetype *day_start_tt;
+ ICalTimezone *zone;
+ struct tm day_start;
const gchar *format;
view = E_CALENDAR_VIEW (day_view);
zone = e_calendar_view_get_timezone (view);
- day_start_tt = icaltime_from_timet_with_zone (
+ day_start_tt = i_cal_time_from_timet_with_zone (
day_view->day_starts[day], FALSE, zone);
- day_start.tm_year = day_start_tt.year - 1900;
- day_start.tm_mon = day_start_tt.month - 1;
- day_start.tm_mday = day_start_tt.day;
- day_start.tm_isdst = -1;
-
- day_start.tm_wday = time_day_of_week (
- day_start_tt.day,
- day_start_tt.month - 1,
- day_start_tt.year);
+ day_start = icaltimetype_to_tm (day_start_tt);
+ g_clear_object (&day_start_tt);
if (day_view->date_format == E_DAY_VIEW_DATE_FULL)
/* strftime format %A = full weekday name, %d = day of month,
diff --git a/src/calendar/gui/e-day-view.c b/src/calendar/gui/e-day-view.c
index 06c8f9b596..025db92730 100644
--- a/src/calendar/gui/e-day-view.c
+++ b/src/calendar/gui/e-day-view.c
@@ -575,12 +575,12 @@ e_day_view_get_work_day_range_for_day (EDayView *day_view,
if (day >= 0 && day < e_day_view_get_days_shown (day_view)) {
GDateWeekday weekday;
- struct icaltimetype tt;
+ ICalTimetype *tt;
- tt = icaltime_from_timet_with_zone (day_view->day_starts[day], FALSE,
+ tt = i_cal_time_from_timet_with_zone (day_view->day_starts[day], FALSE,
e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
- switch (icaltime_day_of_week (tt)) {
+ switch (i_cal_time_day_of_week (tt)) {
case 1:
weekday = G_DATE_SUNDAY;
break;
@@ -607,6 +607,8 @@ e_day_view_get_work_day_range_for_day (EDayView *day_view,
break;
}
+ g_clear_object (&tt);
+
e_cal_model_get_work_day_range_for (model, weekday,
start_hour, start_minute,
end_hour, end_minute);
@@ -750,18 +752,18 @@ new_event_in_rage_data_free (gpointer ptr)
static void
day_view_new_event_in_selected_range_cb (ECalModel *model,
ECalClient *client,
- icalcomponent *default_component,
+ ICalComponent *default_component,
gpointer user_data)
{
NewEventInRangeData *ned = user_data;
ECalComponent *comp = NULL;
gint day, event_num;
- ECalComponentDateTime start_dt, end_dt;
- struct icaltimetype start_tt, end_tt;
- const gchar *uid;
+ ECalComponentDateTime *start_dt, *end_dt;
+ ICalTimetype *start_tt, *end_tt;
+ const gchar *uid, *use_tzid;
AddEventData add_event_data;
ESourceRegistry *registry;
- icaltimezone *zone;
+ ICalTimezone *zone;
g_return_if_fail (ned != NULL);
g_return_if_fail (E_IS_CAL_MODEL (model));
@@ -774,33 +776,36 @@ day_view_new_event_in_selected_range_cb (ECalModel *model,
registry = e_cal_model_get_registry (model);
zone = e_cal_model_get_timezone (model);
- uid = icalcomponent_get_uid (default_component);
+ uid = i_cal_component_get_uid (default_component);
- comp = e_cal_component_new_from_icalcomponent (icalcomponent_new_clone (default_component));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (default_component));
g_return_if_fail (comp != NULL);
- start_tt = icaltime_from_timet_with_zone (ned->dtstart, FALSE, zone);
- end_tt = icaltime_from_timet_with_zone (ned->dtend, FALSE, zone);
+ start_tt = i_cal_time_from_timet_with_zone (ned->dtstart, FALSE, zone);
+ end_tt = i_cal_time_from_timet_with_zone (ned->dtend, FALSE, zone);
if (ned->in_top_canvas) {
- start_dt.tzid = NULL;
- start_tt.is_date = 1;
- end_tt.is_date = 1;
+ use_tzid = NULL;
+ i_cal_timetype_set_is_date (start_tt, 1);
+ i_cal_timetype_set_is_date (end_tt, 1);
/* Editor default in day/work-week view - top canvas */
e_cal_component_set_transparency (comp, E_CAL_COMPONENT_TRANSP_TRANSPARENT);
} else {
- start_dt.tzid = icaltimezone_get_tzid (zone);
+ use_tzid = i_cal_timezone_get_tzid (zone);
/* Editor default in day/work-week view - main canvas */
e_cal_component_set_transparency (comp, E_CAL_COMPONENT_TRANSP_OPAQUE);
}
- start_dt.value = &start_tt;
- end_dt.value = &end_tt;
- end_dt.tzid = start_dt.tzid;
- e_cal_component_set_dtstart (comp, &start_dt);
- e_cal_component_set_dtend (comp, &end_dt);
+ start_dt = e_cal_component_datetime_new_take (start_tt, g_strdup (use_tzid));
+ end_dt = e_cal_component_datetime_new_take (end_tt, g_strdup (use_tzid));
+
+ e_cal_component_set_dtstart (comp, start_dt);
+ e_cal_component_set_dtend (comp, end_dt);
+
+ e_cal_component_datetime_free (start_dt);
+ e_cal_component_datetime_free (end_dt);
/* We add the event locally and start editing it. We don't send it
* to the server until the user finishes editing it. */
@@ -2534,7 +2539,7 @@ e_day_view_precalc_visible_time_range (ECalendarView *cal_view,
EDayView *day_view;
gint days_shown;
time_t lower;
- icaltimezone *zone;
+ ICalTimezone *zone;
g_return_if_fail (E_IS_DAY_VIEW (cal_view));
g_return_if_fail (out_start_time != NULL);
@@ -2622,8 +2627,6 @@ static void
process_component (EDayView *day_view,
ECalModelComponent *comp_data)
{
- const gchar *uid;
- gchar *rid = NULL;
ECalModel *model;
ECalComponent *comp;
ESourceRegistry *registry;
@@ -2636,21 +2639,12 @@ process_component (EDayView *day_view,
if (day_view->lower == 0 && day_view->upper == 0)
return;
- comp = e_cal_component_new ();
- if (!e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (comp_data->icalcomp))) {
- g_object_unref (comp);
-
- g_message (G_STRLOC ": Could not set icalcomponent on ECalComponent");
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
+ if (!comp) {
+ g_message (G_STRLOC ": Could not set ICalComponent on ECalComponent");
return;
}
- e_cal_component_get_uid (comp, &uid);
- if (e_cal_component_is_instance (comp))
- rid = e_cal_component_get_recurid_as_string (comp);
- else
- rid = NULL;
- /* rid is never used below here, why? */
-
/* Add the object */
add_event_data.day_view = day_view;
add_event_data.comp_data = comp_data;
@@ -2659,7 +2653,6 @@ process_component (EDayView *day_view,
comp_data->instance_end, &add_event_data);
g_object_unref (comp);
- g_free (rid);
}
static void
@@ -2670,8 +2663,8 @@ update_row (EDayView *day_view,
ECalModelComponent *comp_data;
ECalModel *model;
gint day, event_num;
- const gchar *uid = NULL;
- gchar *rid = NULL;
+ const gchar *uid;
+ gchar *rid;
if (do_cancel_editing)
cancel_editing (day_view);
@@ -2682,14 +2675,8 @@ update_row (EDayView *day_view,
comp_data = e_cal_model_get_component_at (model, row);
g_return_if_fail (comp_data != NULL);
- uid = icalcomponent_get_uid (comp_data->icalcomp);
- if (e_cal_util_component_is_instance (comp_data->icalcomp)) {
- icalproperty *prop;
-
- prop = icalcomponent_get_first_property (comp_data->icalcomp, ICAL_RECURRENCEID_PROPERTY);
- if (prop)
- rid = icaltime_as_ical_string_r (icalcomponent_get_recurrenceid
(comp_data->icalcomp));
- }
+ uid = i_cal_component_get_uid (comp_data->icalcomp);
+ rid = e_cal_util_component_get_recurid_as_string (comp_data->icalcomp);
if (e_day_view_find_event_from_uid (day_view, comp_data->client, uid, rid, &day, &event_num))
e_day_view_remove_event_cb (day_view, day, event_num, NULL);
@@ -2791,17 +2778,11 @@ model_comps_deleted_cb (ETableModel *etm,
for (l = list; l != NULL; l = g_slist_next (l)) {
ECalModelComponent *comp_data = l->data;
gint day, event_num;
- const gchar *uid = NULL;
- gchar *rid = NULL;
-
- uid = icalcomponent_get_uid (comp_data->icalcomp);
- if (e_cal_util_component_is_instance (comp_data->icalcomp)) {
- icalproperty *prop;
+ const gchar *uid;
+ gchar *rid;
- prop = icalcomponent_get_first_property (comp_data->icalcomp,
ICAL_RECURRENCEID_PROPERTY);
- if (prop)
- rid = icaltime_as_ical_string_r (icalcomponent_get_recurrenceid
(comp_data->icalcomp));
- }
+ uid = i_cal_component_get_uid (comp_data->icalcomp);
+ rid = e_cal_util_component_get_recurid_as_string (comp_data->icalcomp);
if (e_day_view_find_event_from_uid (day_view, comp_data->client, uid, rid, &day, &event_num))
e_day_view_remove_event_cb (day_view, day, event_num, NULL);
@@ -2816,11 +2797,11 @@ model_comps_deleted_cb (ETableModel *etm,
static void
timezone_changed_cb (ECalModel *cal_model,
- icaltimezone *old_zone,
- icaltimezone *new_zone,
- gpointer user_data)
+ ICalTimezone *old_zone,
+ ICalTimezone *new_zone,
+ gpointer user_data)
{
- struct icaltimetype tt;
+ ICalTimetype *tt;
time_t lower;
EDayView *day_view = (EDayView *) user_data;
ECalendarView *cal_view = (ECalendarView *) day_view;
@@ -2839,11 +2820,13 @@ timezone_changed_cb (ECalModel *cal_model,
/* Recalculate the new start of the first day. We just use exactly
* the same time, but with the new timezone. */
- tt = icaltime_from_timet_with_zone (
+ tt = i_cal_time_from_timet_with_zone (
day_view->lower, FALSE,
old_zone);
- lower = icaltime_as_timet_with_zone (tt, new_zone);
+ lower = i_cal_time_as_timet_with_zone (tt, new_zone);
+
+ g_clear_object (&tt);
e_day_view_recalc_day_starts (day_view, lower);
e_day_view_update_query (day_view);
@@ -3167,7 +3150,7 @@ e_day_view_foreach_event_with_uid (EDayView *day_view,
if (!is_comp_data_valid (event))
continue;
- u = icalcomponent_get_uid (event->comp_data->icalcomp);
+ u = i_cal_component_get_uid (event->comp_data->icalcomp);
if (u && !strcmp (uid, u)) {
if (!(*callback) (day_view, day, event_num, data))
return;
@@ -3184,7 +3167,7 @@ e_day_view_foreach_event_with_uid (EDayView *day_view,
if (!is_comp_data_valid (event))
continue;
- u = icalcomponent_get_uid (event->comp_data->icalcomp);
+ u = i_cal_component_get_uid (event->comp_data->icalcomp);
if (u && !strcmp (uid, u)) {
if (!(*callback) (day_view, E_DAY_VIEW_LONG_EVENT, event_num, data))
return;
@@ -3308,42 +3291,52 @@ set_style_from_attendee (EDayViewEvent *event,
ECalComponent *comp;
GSList *attendees = NULL, *l;
gchar *address;
- ECalComponentAttendee *at = NULL;
+ ICalParameterPartstat partstat = I_CAL_PARTSTAT_NONE;
if (!is_comp_data_valid (event))
return;
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
- address = itip_get_comp_attendee (
- registry, comp, event->comp_data->client);
- e_cal_component_get_attendee_list (comp, &attendees);
- for (l = attendees; l; l = l->next) {
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
+
+ address = itip_get_comp_attendee (registry, comp, event->comp_data->client);
+ attendees = e_cal_component_get_attendees (comp);
+ for (l = attendees; l && address; l = l->next) {
ECalComponentAttendee *attendee = l->data;
+ const gchar *value, *sentby;
+
+ value = e_cal_component_attendee_get_value (attendee);
+ if (value)
+ value = itip_strip_mailto (value);
+
+ sentby = e_cal_component_attendee_get_sentby (attendee);
+ if (sentby)
+ value = itip_strip_mailto (sentby);
- if ((attendee->value && g_strcmp0 (itip_strip_mailto (attendee->value), address) == 0)
- || (attendee->sentby && g_strcmp0 (itip_strip_mailto (attendee->sentby), address) == 0)) {
- at = attendee;
+ if ((value && g_ascii_strcasecmp (value, address) == 0) ||
+ (sentby && g_ascii_strcasecmp (sentby, address) == 0)) {
+ partstat = e_cal_component_attendee_get_partstat (attendee);
break;
}
}
- if (icalcomponent_get_status (event->comp_data->icalcomp) == ICAL_STATUS_CANCELLED)
+ if (i_cal_component_get_status (event->comp_data->icalcomp) == I_CAL_STATUS_CANCELLED)
gnome_canvas_item_set (event->canvas_item, "strikeout", TRUE, NULL);
/* The attendee has not yet accepted the meeting, display the summary as bolded.
* If the attendee is not present, it might have come through a mailing list.
* In that case, we never show the meeting as bold even if it is unaccepted. */
- if (at && (at->status == ICAL_PARTSTAT_NEEDSACTION))
+ if (partstat == I_CAL_PARTSTAT_NEEDSACTION)
gnome_canvas_item_set (event->canvas_item, "bold", TRUE, NULL);
- else if (at && at->status == ICAL_PARTSTAT_DECLINED)
+ else if (partstat == I_CAL_PARTSTAT_DECLINED)
gnome_canvas_item_set (event->canvas_item, "strikeout", TRUE, NULL);
- else if (at && at->status == ICAL_PARTSTAT_TENTATIVE)
+ else if (partstat == I_CAL_PARTSTAT_TENTATIVE)
gnome_canvas_item_set (event->canvas_item, "italic", TRUE, NULL);
- else if (at && at->status == ICAL_PARTSTAT_DELEGATED)
+ else if (partstat == I_CAL_PARTSTAT_DELEGATED)
gnome_canvas_item_set (event->canvas_item, "italic", TRUE, "strikeout", TRUE, NULL);
- e_cal_component_free_attendee_list (attendees);
+ g_slist_free_full (attendees, e_cal_component_attendee_free);
g_free (address);
g_object_unref (comp);
}
@@ -3374,7 +3367,7 @@ e_day_view_update_event_label (EDayView *day_view,
if (!event->canvas_item || !is_comp_data_valid (event))
return;
- summary = icalcomponent_get_summary (event->comp_data->icalcomp);
+ summary = i_cal_component_get_summary (event->comp_data->icalcomp);
text = summary ? (gchar *) summary : (gchar *) "";
if (day_view->editing_event_day == day
@@ -3405,8 +3398,8 @@ e_day_view_update_event_label (EDayView *day_view,
gint days_shown;
days_shown = e_day_view_get_days_shown (day_view);
- description = icalcomponent_get_description (event->comp_data->icalcomp);
- location = icalcomponent_get_location (event->comp_data->icalcomp);
+ description = i_cal_component_get_description (event->comp_data->icalcomp);
+ location = i_cal_component_get_location (event->comp_data->icalcomp);
if (description && *description) {
if (location && *location)
@@ -3429,7 +3422,7 @@ e_day_view_update_event_label (EDayView *day_view,
if (e_cal_util_component_has_attendee (event->comp_data->icalcomp))
set_style_from_attendee (event, registry);
- else if (icalcomponent_get_status (event->comp_data->icalcomp) == ICAL_STATUS_CANCELLED)
+ else if (i_cal_component_get_status (event->comp_data->icalcomp) == I_CAL_STATUS_CANCELLED)
gnome_canvas_item_set (event->canvas_item, "strikeout", TRUE, NULL);
if (free_text)
@@ -3472,7 +3465,7 @@ e_day_view_update_long_event_label (EDayView *day_view,
if (e_cal_util_component_has_attendee (event->comp_data->icalcomp))
set_style_from_attendee (event, registry);
- else if (icalcomponent_get_status (event->comp_data->icalcomp) == ICAL_STATUS_CANCELLED)
+ else if (i_cal_component_get_status (event->comp_data->icalcomp) == I_CAL_STATUS_CANCELLED)
gnome_canvas_item_set (event->canvas_item, "strikeout", TRUE, NULL);
}
@@ -3556,16 +3549,16 @@ e_day_view_find_event_from_uid (EDayView *day_view,
if (event->comp_data->client != client)
continue;
- u = icalcomponent_get_uid (event->comp_data->icalcomp);
+ u = i_cal_component_get_uid (event->comp_data->icalcomp);
if (u && !strcmp (uid, u)) {
if (rid && *rid) {
- r = icaltime_as_ical_string_r (icalcomponent_get_recurrenceid
(event->comp_data->icalcomp));
- if (!r || !*r)
- continue;
- if (strcmp (rid, r) != 0) {
+ r = e_cal_util_component_get_recurid_as_string
(event->comp_data->icalcomp);
+
+ if (!r || !*r || strcmp (rid, r) != 0) {
g_free (r);
continue;
}
+
g_free (r);
}
@@ -3587,7 +3580,7 @@ e_day_view_find_event_from_uid (EDayView *day_view,
if (event->comp_data->client != client)
continue;
- u = icalcomponent_get_uid (event->comp_data->icalcomp);
+ u = i_cal_component_get_uid (event->comp_data->icalcomp);
if (u && !strcmp (uid, u)) {
*day_return = E_DAY_VIEW_LONG_EVENT;
*event_num_return = event_num;
@@ -3724,8 +3717,9 @@ e_day_view_find_work_week_start (EDayView *day_view,
guint offset;
GDateWeekday weekday;
GDateWeekday first_work_day;
- struct icaltimetype tt = icaltime_null_time ();
- icaltimezone *zone;
+ ICalTimetype *tt = NULL;
+ ICalTimezone *zone;
+ time_t res;
model = e_calendar_view_get_model (E_CALENDAR_VIEW (day_view));
zone = e_cal_model_get_timezone (model);
@@ -3752,11 +3746,18 @@ e_day_view_find_work_week_start (EDayView *day_view,
if (offset > 0)
g_date_subtract_days (&date, offset);
- tt.year = g_date_get_year (&date);
- tt.month = g_date_get_month (&date);
- tt.day = g_date_get_day (&date);
+ tt = i_cal_time_null_time ();
+
+ i_cal_timetype_set_date (tt,
+ g_date_get_year (&date),
+ g_date_get_month (&date),
+ g_date_get_day (&date));
+
+ res = i_cal_time_as_timet_with_zone (tt, zone);
+
+ g_clear_object (&tt);
- return icaltime_as_timet_with_zone (tt, zone);
+ return res;
}
static void
@@ -3766,7 +3767,7 @@ e_day_view_recalc_day_starts (EDayView *day_view,
gint day;
gchar *str;
gint days_shown;
- struct icaltimetype tt;
+ ICalTimetype *tt;
GDate dt;
days_shown = e_day_view_get_days_shown (day_view);
@@ -3781,15 +3782,17 @@ e_day_view_recalc_day_starts (EDayView *day_view,
day_view->lower = start_time;
day_view->upper = day_view->day_starts[days_shown];
- tt = icaltime_from_timet_with_zone (day_view->day_starts[0], FALSE, e_calendar_view_get_timezone
(E_CALENDAR_VIEW (day_view)));
+ tt = i_cal_time_from_timet_with_zone (day_view->day_starts[0], FALSE, e_calendar_view_get_timezone
(E_CALENDAR_VIEW (day_view)));
g_date_clear (&dt, 1);
- g_date_set_dmy (&dt, tt.day, tt.month, tt.year);
+ g_date_set_dmy (&dt, i_cal_timetype_get_day (tt), i_cal_timetype_get_month (tt),
i_cal_timetype_get_year (tt));
/* To Translators: the %d stands for a week number, it's value between 1 and 52/53 */
str = g_strdup_printf (_("Week %d"), g_date_get_iso8601_week_of_year (&dt));
gtk_label_set_text (GTK_LABEL (day_view->week_number_label), str);
g_free (str);
e_day_view_recalc_work_week (day_view);
+
+ g_clear_object (&tt);
}
/* Whether we are displaying a work-week, in which case the display always
@@ -5406,13 +5409,13 @@ e_day_view_finish_long_event_resize (EDayView *day_view)
EDayViewEvent *event;
gint event_num;
ECalComponent *comp;
- ECalComponentDateTime date;
- struct icaltimetype itt;
+ ECalComponentDateTime *date = NULL;
time_t dt;
ECalModel *model;
ECalClient *client;
ESourceRegistry *registry;
ECalObjModType mod = E_CAL_OBJ_MOD_ALL;
+ ICalTimezone *zone;
gint is_date;
model = e_calendar_view_get_model (E_CALENDAR_VIEW (day_view));
@@ -5434,8 +5437,9 @@ e_day_view_finish_long_event_resize (EDayView *day_view)
/* We use a temporary copy of the comp since we don't want to
* change the original comp here. Otherwise we would not detect that
* the event's time had changed in the "update_event" callback. */
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
if (e_cal_component_has_attendees (comp) &&
!itip_organizer_is_user (registry, comp, client)) {
@@ -5444,35 +5448,42 @@ e_day_view_finish_long_event_resize (EDayView *day_view)
return;
}
- date.value = &itt;
- date.tzid = NULL;
+ zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view));
if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_LEFT_EDGE) {
- ECalComponentDateTime ecdt;
+ ECalComponentDateTime *ecdt;
+
+ ecdt = e_cal_component_get_dtstart (comp);
+ is_date = ecdt && e_cal_component_datetime_get_value (ecdt) &&
+ i_cal_time_is_date (e_cal_component_datetime_get_value (ecdt));
- e_cal_component_get_dtstart (comp, &ecdt);
- is_date = ecdt.value && ecdt.value->is_date;
- if (!is_date)
- date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
dt = day_view->day_starts[day_view->resize_start_row];
- *date.value = icaltime_from_timet_with_zone (dt, is_date,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
- cal_comp_set_dtstart_with_oldzone (client, comp, &date);
- e_cal_component_free_datetime (&ecdt);
- date.tzid = NULL; /* do not reuse it later */
+ date = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone (dt, is_date, zone),
+ (zone && !is_date) ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
+ cal_comp_set_dtstart_with_oldzone (client, comp, date);
+
+ e_cal_component_datetime_free (ecdt);
+
+ /* do not reuse it later */
+ e_cal_component_datetime_set_tzid (date, NULL);
} else {
- ECalComponentDateTime ecdt;
+ ECalComponentDateTime *ecdt;
+
+ ecdt = e_cal_component_get_dtend (comp);
+ is_date = ecdt && e_cal_component_datetime_get_value (ecdt) &&
+ i_cal_time_is_date (e_cal_component_datetime_get_value (ecdt));
- e_cal_component_get_dtend (comp, &ecdt);
- is_date = ecdt.value && ecdt.value->is_date;
- if (!is_date)
- date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
dt = day_view->day_starts[day_view->resize_end_row + 1];
- *date.value = icaltime_from_timet_with_zone (dt, is_date,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
- cal_comp_set_dtend_with_oldzone (client, comp, &date);
- e_cal_component_free_datetime (&ecdt);
- date.tzid = NULL; /* do not reuse it later */
+ date = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone (dt, is_date, zone),
+ (zone && !is_date) ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
+ cal_comp_set_dtend_with_oldzone (client, comp, date);
+
+ e_cal_component_datetime_free (ecdt);
+
+ /* do not reuse it later */
+ e_cal_component_datetime_set_tzid (date, NULL);
}
e_cal_component_commit_sequence (comp);
@@ -5485,24 +5496,23 @@ e_day_view_finish_long_event_resize (EDayView *day_view)
if (mod == E_CAL_OBJ_MOD_THIS) {
/* set the correct DTSTART/DTEND on the individual recurrence */
if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_TOP_EDGE) {
- *date.value = icaltime_from_timet_with_zone (
- event->comp_data->instance_end, FALSE,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
- cal_comp_set_dtend_with_oldzone (client, comp, &date);
+ e_cal_component_datetime_take_value (date,
+ i_cal_time_from_timet_with_zone (event->comp_data->instance_end,
FALSE, zone));
+ cal_comp_set_dtend_with_oldzone (client, comp, date);
} else {
- *date.value = icaltime_from_timet_with_zone (
- event->comp_data->instance_start, FALSE,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
- cal_comp_set_dtstart_with_oldzone (client, comp, &date);
+ e_cal_component_datetime_take_value (date,
+ i_cal_time_from_timet_with_zone (event->comp_data->instance_start,
FALSE, zone));
+ cal_comp_set_dtstart_with_oldzone (client, comp, date);
}
- e_cal_component_set_rdate_list (comp, NULL);
- e_cal_component_set_rrule_list (comp, NULL);
- e_cal_component_set_exdate_list (comp, NULL);
- e_cal_component_set_exrule_list (comp, NULL);
+ e_cal_component_set_rdates (comp, NULL);
+ e_cal_component_set_rrules (comp, NULL);
+ e_cal_component_set_exdates (comp, NULL);
+ e_cal_component_set_exrules (comp, NULL);
}
- } else if (e_cal_component_is_instance (comp))
+ } else if (e_cal_component_is_instance (comp)) {
mod = E_CAL_OBJ_MOD_THIS;
+ }
e_cal_component_commit_sequence (comp);
@@ -5512,6 +5522,7 @@ e_day_view_finish_long_event_resize (EDayView *day_view)
out:
day_view->resize_drag_pos = E_CALENDAR_VIEW_POS_NONE;
+ e_cal_component_datetime_free (date);
g_object_unref (comp);
}
@@ -5523,8 +5534,8 @@ e_day_view_finish_resize (EDayView *day_view)
EDayViewEvent *event;
gint day, event_num;
ECalComponent *comp;
- ECalComponentDateTime date;
- struct icaltimetype itt;
+ ECalComponentDateTime *date = NULL;
+ ICalTimezone *zone;
time_t dt;
ECalModel *model;
ECalClient *client;
@@ -5558,8 +5569,9 @@ e_day_view_finish_resize (EDayView *day_view)
/* We use a temporary shallow copy of the ico since we don't want to
* change the original ico here. Otherwise we would not detect that
* the event's time had changed in the "update_event" callback. */
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
if (e_cal_component_has_attendees (comp) &&
!itip_organizer_is_user (registry, comp, client)) {
@@ -5581,19 +5593,20 @@ e_day_view_finish_resize (EDayView *day_view)
goto out;
}
- date.value = &itt;
- date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
+ zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view));
if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_TOP_EDGE) {
dt = e_day_view_convert_grid_position_to_time (day_view, day, day_view->resize_start_row);
- *date.value = icaltime_from_timet_with_zone (dt, FALSE,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
- cal_comp_set_dtstart_with_oldzone (client, comp, &date);
+ date = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone (dt, FALSE, zone),
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
+ cal_comp_set_dtstart_with_oldzone (client, comp, date);
} else {
dt = e_day_view_convert_grid_position_to_time (day_view, day, day_view->resize_end_row + 1);
- *date.value = icaltime_from_timet_with_zone (dt, FALSE,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
- cal_comp_set_dtend_with_oldzone (client, comp, &date);
+ date = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone (dt, FALSE, zone),
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
+ cal_comp_set_dtend_with_oldzone (client, comp, date);
}
e_cal_component_commit_sequence (comp);
@@ -5620,24 +5633,23 @@ e_day_view_finish_resize (EDayView *day_view)
if (mod == E_CAL_OBJ_MOD_THIS) {
/* set the correct DTSTART/DTEND on the individual recurrence */
if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_TOP_EDGE) {
- *date.value = icaltime_from_timet_with_zone (
- event->comp_data->instance_end, FALSE,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
- cal_comp_set_dtend_with_oldzone (client, comp, &date);
+ e_cal_component_datetime_take_value (date,
+ i_cal_time_from_timet_with_zone (event->comp_data->instance_end,
FALSE, zone));
+ cal_comp_set_dtend_with_oldzone (client, comp, date);
} else {
- *date.value = icaltime_from_timet_with_zone (
- event->comp_data->instance_start, FALSE,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
- cal_comp_set_dtstart_with_oldzone (client, comp, &date);
+ e_cal_component_datetime_take_value (date,
+ i_cal_time_from_timet_with_zone (event->comp_data->instance_start,
FALSE, zone));
+ cal_comp_set_dtstart_with_oldzone (client, comp, date);
}
- e_cal_component_set_rdate_list (comp, NULL);
- e_cal_component_set_rrule_list (comp, NULL);
- e_cal_component_set_exdate_list (comp, NULL);
- e_cal_component_set_exrule_list (comp, NULL);
+ e_cal_component_set_rdates (comp, NULL);
+ e_cal_component_set_rrules (comp, NULL);
+ e_cal_component_set_exdates (comp, NULL);
+ e_cal_component_set_exrules (comp, NULL);
}
- } else if (e_cal_component_is_instance (comp))
+ } else if (e_cal_component_is_instance (comp)) {
mod = E_CAL_OBJ_MOD_THIS;
+ }
e_cal_component_commit_sequence (comp);
@@ -5648,6 +5660,7 @@ e_day_view_finish_resize (EDayView *day_view)
out:
g_object_unref (comp);
+ g_clear_object (&date);
}
static void
@@ -5746,9 +5759,9 @@ e_day_view_add_event (ESourceRegistry *registry,
EDayViewEvent event;
gint day, offset;
gint days_shown;
- struct icaltimetype start_tt, end_tt;
+ ICalTimetype *start_tt, *end_tt;
+ ICalTimezone *zone;
AddEventData *add_event_data;
- icaltimezone *zone;
add_event_data = data;
@@ -5768,8 +5781,8 @@ e_day_view_add_event (ESourceRegistry *registry,
g_return_if_fail (end > add_event_data->day_view->lower);
zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW (add_event_data->day_view));
- start_tt = icaltime_from_timet_with_zone (start, FALSE, zone);
- end_tt = icaltime_from_timet_with_zone (end, FALSE, zone);
+ start_tt = i_cal_time_from_timet_with_zone (start, FALSE, zone);
+ end_tt = i_cal_time_from_timet_with_zone (end, FALSE, zone);
if (add_event_data->comp_data) {
event.comp_data = g_object_ref (add_event_data->comp_data);
@@ -5778,7 +5791,7 @@ e_day_view_add_event (ESourceRegistry *registry,
event.comp_data->is_new_component = TRUE;
event.comp_data->client = g_object_ref (client);
e_cal_component_abort_sequence (comp);
- event.comp_data->icalcomp = icalcomponent_new_clone (e_cal_component_get_icalcomponent
(comp));
+ event.comp_data->icalcomp = i_cal_component_new_clone (e_cal_component_get_icalcomponent
(comp));
}
event.start = start;
@@ -5794,8 +5807,11 @@ e_day_view_add_event (ESourceRegistry *registry,
* display. */
offset = add_event_data->day_view->first_hour_shown * 60
+ add_event_data->day_view->first_minute_shown;
- event.start_minute = start_tt.hour * 60 + start_tt.minute - offset;
- event.end_minute = end_tt.hour * 60 + end_tt.minute - offset;
+ event.start_minute = i_cal_timetype_get_hour (start_tt) * 60 + i_cal_timetype_get_minute (start_tt) -
offset;
+ event.end_minute = i_cal_timetype_get_hour (end_tt) * 60 + i_cal_timetype_get_minute (end_tt) -
offset;
+
+ g_clear_object (&start_tt);
+ g_clear_object (&end_tt);
event.start_row_or_col = 0;
event.num_columns = 0;
@@ -6013,8 +6029,9 @@ e_day_view_reshape_long_event (EDayView *day_view,
/* We don't show the icons while resizing, since we'd have to
* draw them on top of the resize rect. Nor when editing. */
num_icons = 0;
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
/* Set up Pango prerequisites */
pango_context = gtk_widget_get_pango_context (GTK_WIDGET (day_view));
@@ -6164,7 +6181,7 @@ e_day_view_reshape_day_events (EDayView *day_view,
if (!is_comp_data_valid (event))
continue;
- current_comp_string = icalcomponent_as_ical_string_r (event->comp_data->icalcomp);
+ current_comp_string = i_cal_component_as_ical_string_r (event->comp_data->icalcomp);
if (day_view->last_edited_comp_string == NULL) {
g_free (current_comp_string);
continue;
@@ -6219,22 +6236,22 @@ e_day_view_reshape_day_event (EDayView *day_view,
|| day_view->resize_event_num != event_num)) {
ECalComponent *comp;
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone
(event->comp_data->icalcomp));
-
- if (e_cal_component_has_alarms (comp))
- num_icons++;
- if (e_cal_component_has_recurrences (comp) || e_cal_component_is_instance (comp))
- num_icons++;
- if (e_cal_component_has_attachments (comp))
- num_icons++;
- if (event->different_timezone)
- num_icons++;
- if (e_cal_component_has_attendees (comp))
- num_icons++;
-
- num_icons += cal_comp_util_get_n_icons (comp, NULL);
- g_object_unref (comp);
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (comp) {
+ if (e_cal_component_has_alarms (comp))
+ num_icons++;
+ if (e_cal_component_has_recurrences (comp) || e_cal_component_is_instance
(comp))
+ num_icons++;
+ if (e_cal_component_has_attachments (comp))
+ num_icons++;
+ if (event->different_timezone)
+ num_icons++;
+ if (e_cal_component_has_attendees (comp))
+ num_icons++;
+
+ num_icons += cal_comp_util_get_n_icons (comp, NULL);
+ g_object_unref (comp);
+ }
}
if (num_icons > 0) {
@@ -7330,7 +7347,7 @@ cancel_editing (EDayView *day_view)
/* Reset the text to what was in the component */
- summary = icalcomponent_get_summary (event->comp_data->icalcomp);
+ summary = i_cal_component_get_summary (event->comp_data->icalcomp);
g_object_set (
event->canvas_item,
"text", summary ? summary : "",
@@ -7591,7 +7608,7 @@ e_day_view_event_move (ECalendarView *cal_view,
gint time_divisions;
gint day, event_num, resize_start_row, resize_end_row;
time_t start_dt, end_dt;
- struct icaltimetype start_time, end_time;
+ ICalTimetype *start_time, *end_time;
day_view = E_DAY_VIEW (cal_view);
day = day_view->editing_event_day;
@@ -7638,24 +7655,28 @@ e_day_view_event_move (ECalendarView *cal_view,
return TRUE;
start_dt = e_day_view_convert_grid_position_to_time (day_view, day, resize_start_row);
end_dt = e_day_view_convert_grid_position_to_time (day_view, day, resize_end_row + 1);
- start_time = icaltime_from_timet_with_zone (start_dt, 0, NULL);
- end_time = icaltime_from_timet_with_zone (end_dt, 0, NULL);
- icaltime_adjust (&start_time ,-1,0,0,0);
- icaltime_adjust (&end_time ,-1,0,0,0);
- start_dt = icaltime_as_timet (start_time);
- end_dt = icaltime_as_timet (end_time);
+ start_time = i_cal_time_from_timet_with_zone (start_dt, 0, NULL);
+ end_time = i_cal_time_from_timet_with_zone (end_dt, 0, NULL);
+ i_cal_time_adjust (start_time, -1, 0, 0, 0);
+ i_cal_time_adjust (end_time, -1, 0, 0, 0);
+ start_dt = i_cal_time_as_timet (start_time);
+ end_dt = i_cal_time_as_timet (end_time);
+ g_clear_object (&start_time);
+ g_clear_object (&end_time);
break;
case E_CAL_VIEW_MOVE_RIGHT:
if (day + 1 >= e_day_view_get_days_shown (day_view))
return TRUE;
start_dt = e_day_view_convert_grid_position_to_time (day_view, day, resize_start_row);
end_dt = e_day_view_convert_grid_position_to_time (day_view, day, resize_end_row + 1);
- start_time = icaltime_from_timet_with_zone (start_dt, 0, NULL);
- end_time = icaltime_from_timet_with_zone (end_dt, 0, NULL);
- icaltime_adjust (&start_time ,1,0,0,0);
- icaltime_adjust (&end_time ,1,0,0,0);
- start_dt = icaltime_as_timet (start_time);
- end_dt = icaltime_as_timet (end_time);
+ start_time = i_cal_time_from_timet_with_zone (start_dt, 0, NULL);
+ end_time = i_cal_time_from_timet_with_zone (end_dt, 0, NULL);
+ i_cal_time_adjust (start_time ,1,0,0,0);
+ i_cal_time_adjust (end_time ,1,0,0,0);
+ start_dt = i_cal_time_as_timet (start_time);
+ end_dt = i_cal_time_as_timet (end_time);
+ g_clear_object (&start_time);
+ g_clear_object (&end_time);
break;
default:
return FALSE;
@@ -7675,8 +7696,8 @@ e_day_view_change_event_time (EDayView *day_view,
EDayViewEvent *event;
gint day, event_num;
ECalComponent *comp;
- ECalComponentDateTime date;
- struct icaltimetype itt;
+ ECalComponentDateTime *date;
+ ICalTimezone *zone;
ECalModel *model;
ECalClient *client;
ESourceRegistry *registry;
@@ -7702,8 +7723,7 @@ e_day_view_change_event_time (EDayView *day_view,
/* We use a temporary shallow copy of the ico since we don't want to
* change the original ico here. Otherwise we would not detect that
* the event's time had changed in the "update_event" callback. */
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
if (e_cal_component_has_attendees (comp) &&
!itip_organizer_is_user (registry, comp, client)) {
@@ -7711,17 +7731,18 @@ e_day_view_change_event_time (EDayView *day_view,
return;
}
- date.value = &itt;
- /* FIXME: Should probably keep the timezone of the original start
- * and end times. */
- date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
+ zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view));
+
+ date = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone (start_dt, FALSE, zone),
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
+ cal_comp_set_dtstart_with_oldzone (client, comp, date);
+
+ e_cal_component_datetime_take_value (date,
+ i_cal_time_from_timet_with_zone (end_dt, FALSE, zone));
+ cal_comp_set_dtend_with_oldzone (client, comp, date);
- *date.value = icaltime_from_timet_with_zone (start_dt, FALSE,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
- cal_comp_set_dtstart_with_oldzone (client, comp, &date);
- *date.value = icaltime_from_timet_with_zone (end_dt, FALSE,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
- cal_comp_set_dtend_with_oldzone (client, comp, &date);
+ e_cal_component_datetime_free (date);
e_cal_component_commit_sequence (comp);
@@ -7741,10 +7762,10 @@ e_day_view_change_event_time (EDayView *day_view,
}
if (mod == E_CAL_OBJ_MOD_THIS) {
- e_cal_component_set_rdate_list (comp, NULL);
- e_cal_component_set_rrule_list (comp, NULL);
- e_cal_component_set_exdate_list (comp, NULL);
- e_cal_component_set_exrule_list (comp, NULL);
+ e_cal_component_set_rdates (comp, NULL);
+ e_cal_component_set_rrules (comp, NULL);
+ e_cal_component_set_exdates (comp, NULL);
+ e_cal_component_set_exrules (comp, NULL);
}
} else if (e_cal_component_is_instance (comp))
mod = E_CAL_OBJ_MOD_THIS;
@@ -7901,7 +7922,7 @@ e_day_view_on_editing_stopped (EDayView *day_view,
gint day, event_num;
EDayViewEvent *event;
gchar *text = NULL;
- ECalComponentText summary;
+ ECalComponentText *summary = NULL;
ECalComponent *comp;
ECalClient *client;
gboolean on_server;
@@ -7948,8 +7969,11 @@ e_day_view_on_editing_stopped (EDayView *day_view,
NULL);
g_return_if_fail (text != NULL);
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (comp) {
+ g_free (text);
+ return;
+ }
client = event->comp_data->client;
on_server = !event->comp_data->is_new_component;
@@ -7957,7 +7981,7 @@ e_day_view_on_editing_stopped (EDayView *day_view,
if (string_is_empty (text) && !on_server) {
const gchar *uid;
- e_cal_component_get_uid (comp, &uid);
+ uid = e_cal_component_get_uid (comp);
e_day_view_foreach_event_with_uid (day_view, uid,
e_day_view_remove_event_cb, NULL);
@@ -7968,24 +7992,25 @@ e_day_view_on_editing_stopped (EDayView *day_view,
}
/* Only update the summary if necessary. */
- e_cal_component_get_summary (comp, &summary);
- if (summary.value && !strcmp (text, summary.value)) {
+ summary = e_cal_component_get_summary (comp);
+ if (summary && !g_strcmp0 (text, e_cal_component_text_get_value (summary))) {
if (day == E_DAY_VIEW_LONG_EVENT)
e_day_view_reshape_long_event (day_view, event_num);
else
e_day_view_update_event_label (
day_view, day,
event_num);
- } else if (summary.value || !string_is_empty (text)) {
- icalcomponent *icalcomp = e_cal_component_get_icalcomponent (comp);
+ } else if ((summary && e_cal_component_text_get_value (summary)) || !string_is_empty (text)) {
+ ICalComponent *icomp = e_cal_component_get_icalcomponent (comp);
- summary.value = text;
- summary.altrep = NULL;
- e_cal_component_set_summary (comp, &summary);
+ if (summary)
+ e_cal_component_text_free (summary);
+ summary = e_cal_component_text_new (text, NULL);
+ e_cal_component_set_summary (comp, summary);
e_cal_component_commit_sequence (comp);
if (!on_server) {
- e_cal_ops_create_component (e_calendar_view_get_model (E_CALENDAR_VIEW (day_view)),
client, icalcomp,
+ e_cal_ops_create_component (e_calendar_view_get_model (E_CALENDAR_VIEW (day_view)),
client, icomp,
e_calendar_view_component_created_cb, g_object_ref (day_view),
g_object_unref);
/* we remove the object since we either got the update from the server or failed */
@@ -7999,49 +8024,70 @@ e_day_view_on_editing_stopped (EDayView *day_view,
}
if (mod == E_CAL_OBJ_MOD_THIS) {
- ECalComponentDateTime olddt, dt;
- icaltimetype itt;
+ ECalComponentDateTime *olddt, *dt;
+
+ olddt = e_cal_component_get_dtstart (comp);
- dt.value = &itt;
+ if (olddt && e_cal_component_datetime_get_value (olddt) &&
+ i_cal_time_get_timezone (e_cal_component_datetime_get_value
(olddt))) {
+ ICalTimetype *itt;
- e_cal_component_get_dtstart (comp, &olddt);
- if (olddt.value->zone) {
- *dt.value = icaltime_from_timet_with_zone (
- event->comp_data->instance_start,
- olddt.value->is_date,
- olddt.value->zone);
+ itt = e_cal_component_datetime_get_value (olddt);
+
+ dt = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone
(event->comp_data->instance_start,
+ i_cal_time_is_date (itt),
i_cal_time_get_timezone (itt)),
+ g_strdup (e_cal_component_datetime_get_tzid (olddt)));
} else {
- *dt.value = icaltime_from_timet_with_zone (
- event->comp_data->instance_start,
- olddt.value->is_date,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
+ ICalTimetype *itt;
+ ICalTimezone *zone;
+
+ zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view));
+ itt = olddt ? e_cal_component_datetime_get_value (olddt) :
NULL;
+
+ dt = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone
(event->comp_data->instance_start,
+ itt ? i_cal_time_is_date (itt) : FALSE, zone),
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) :
NULL);
}
- dt.tzid = olddt.tzid;
- e_cal_component_set_dtstart (comp, &dt);
- dt.tzid = NULL;
- e_cal_component_free_datetime (&olddt);
-
- e_cal_component_get_dtend (comp, &olddt);
- if (olddt.value->zone) {
- *dt.value = icaltime_from_timet_with_zone (
- event->comp_data->instance_end,
- olddt.value->is_date,
- olddt.value->zone);
+ e_cal_component_set_dtstart (comp, dt);
+
+ e_cal_component_datetime_free (olddt);
+ e_cal_component_datetime_free (dt);
+
+ olddt = e_cal_component_get_dtend (comp);
+
+ if (olddt && e_cal_component_datetime_get_value (olddt) &&
+ i_cal_time_get_timezone (e_cal_component_datetime_get_value
(olddt))) {
+ ICalTimetype *itt;
+
+ itt = e_cal_component_datetime_get_value (olddt);
+
+ dt = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone
(event->comp_data->instance_end,
+ i_cal_time_is_date (itt),
i_cal_time_get_timezone (itt)),
+ g_strdup (e_cal_component_datetime_get_tzid (olddt)));
} else {
- *dt.value = icaltime_from_timet_with_zone (
- event->comp_data->instance_end,
- olddt.value->is_date,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
+ ICalTimetype *itt;
+ ICalTimezone *zone;
+
+ zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view));
+ itt = olddt ? e_cal_component_datetime_get_value (olddt) :
NULL;
+
+ dt = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone
(event->comp_data->instance_end,
+ itt ? i_cal_time_is_date (itt) : FALSE, zone),
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) :
NULL);
}
- dt.tzid = olddt.tzid;
- e_cal_component_set_dtend (comp, &dt);
- dt.tzid = NULL;
- e_cal_component_free_datetime (&olddt);
+ e_cal_component_set_dtend (comp, dt);
+
+ e_cal_component_datetime_free (olddt);
+ e_cal_component_datetime_free (dt);
- e_cal_component_set_rdate_list (comp, NULL);
- e_cal_component_set_rrule_list (comp, NULL);
- e_cal_component_set_exdate_list (comp, NULL);
- e_cal_component_set_exrule_list (comp, NULL);
+ e_cal_component_set_rdates (comp, NULL);
+ e_cal_component_set_rrules (comp, NULL);
+ e_cal_component_set_exdates (comp, NULL);
+ e_cal_component_set_exrules (comp, NULL);
e_cal_component_commit_sequence (comp);
}
@@ -8057,6 +8103,7 @@ e_day_view_on_editing_stopped (EDayView *day_view,
out:
+ e_cal_component_text_free (summary);
g_object_unref (comp);
g_free (text);
@@ -8075,7 +8122,7 @@ e_day_view_convert_grid_position_to_time (EDayView *day_view,
{
ECalendarView *cal_view;
gint time_divisions;
- struct icaltimetype tt;
+ ICalTimetype *tt;
time_t val;
gint minutes;
@@ -8092,15 +8139,18 @@ e_day_view_convert_grid_position_to_time (EDayView *day_view,
if (minutes == 60 * 24)
return day_view->day_starts[col + 1];
- /* Create an icaltimetype and convert to a time_t. */
- tt = icaltime_from_timet_with_zone (
+ /* Create an ICalTimetype and convert to a time_t. */
+ tt = i_cal_time_from_timet_with_zone (
day_view->day_starts[col],
FALSE, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
- tt.hour = minutes / 60;
- tt.minute = minutes % 60;
- tt.second = 0;
+ i_cal_timetype_set_hour (tt, minutes / 60);
+ i_cal_timetype_set_minute (tt, minutes % 60);
+ i_cal_timetype_set_second (tt, 0);
+
+ val = i_cal_time_as_timet_with_zone (tt, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
+
+ g_clear_object (&tt);
- val = icaltime_as_timet_with_zone (tt, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
return val;
}
@@ -8111,7 +8161,7 @@ e_day_view_convert_time_to_grid_position (EDayView *day_view,
gint *row)
{
ECalendarView *cal_view;
- struct icaltimetype tt;
+ ICalTimetype *tt;
gint time_divisions;
gint day, minutes;
gint days_shown;
@@ -8134,14 +8184,16 @@ e_day_view_convert_time_to_grid_position (EDayView *day_view,
}
}
- /* To find the row we need to convert the time to an icaltimetype,
+ /* To find the row we need to convert the time to an ICalTimetype,
* calculate the offset in minutes from the top of the display and
* divide it by the mins per row setting. */
- tt = icaltime_from_timet_with_zone (time, FALSE, e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
+ tt = i_cal_time_from_timet_with_zone (time, FALSE, e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
- minutes = tt.hour * 60 + tt.minute;
+ minutes = i_cal_timetype_get_hour (tt) * 60 + i_cal_timetype_get_minute (tt);
minutes -= day_view->first_hour_shown * 60 + day_view->first_minute_shown;
+ g_clear_object (&tt);
+
*row = minutes / time_divisions;
if (*row < 0 || *row >= day_view->rows)
@@ -8735,7 +8787,7 @@ e_day_view_update_top_canvas_drag (EDayView *day_view,
const gchar *summary;
if (event && is_comp_data_valid (event)) {
- summary = icalcomponent_get_summary (event->comp_data->icalcomp);
+ summary = i_cal_component_get_summary (event->comp_data->icalcomp);
text = g_strdup (summary);
} else {
text = NULL;
@@ -8912,7 +8964,7 @@ e_day_view_update_main_canvas_drag (EDayView *day_view,
const gchar *summary;
if (event && is_comp_data_valid (event)) {
- summary = icalcomponent_get_summary (event->comp_data->icalcomp);
+ summary = i_cal_component_get_summary (event->comp_data->icalcomp);
text = g_strdup (summary);
} else {
text = NULL;
@@ -9048,7 +9100,7 @@ e_day_view_on_drag_data_get (GtkWidget *widget,
EDayView *day_view)
{
EDayViewEvent *event;
- icalcomponent *vcal;
+ ICalComponent *vcal;
gint day, event_num;
gchar *comp_str;
@@ -9083,10 +9135,10 @@ e_day_view_on_drag_data_get (GtkWidget *widget,
vcal = e_cal_util_new_top_level ();
e_cal_util_add_timezones_from_component (
vcal, event->comp_data->icalcomp);
- icalcomponent_add_component (
- vcal, icalcomponent_new_clone (event->comp_data->icalcomp));
+ i_cal_component_take_component (
+ vcal, i_cal_component_new_clone (event->comp_data->icalcomp));
- comp_str = icalcomponent_as_ical_string_r (vcal);
+ comp_str = i_cal_component_as_ical_string_r (vcal);
if (comp_str) {
ESource *source;
const gchar *source_uid;
@@ -9105,7 +9157,7 @@ e_day_view_on_drag_data_get (GtkWidget *widget,
g_free (tmp);
}
- icalcomponent_free (vcal);
+ g_clear_object (&vcal);
g_free (comp_str);
}
@@ -9124,9 +9176,7 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
gint day, start_day, end_day, num_days;
gint start_offset, end_offset;
ECalComponent *comp;
- ECalComponentDateTime date;
ESourceRegistry *registry;
- struct icaltimetype itt;
time_t dt;
gboolean all_day_event;
ECalModel *model;
@@ -9164,9 +9214,12 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
x, y, &day,
NULL);
if (pos != E_CALENDAR_VIEW_POS_OUTSIDE) {
+ ECalComponentDateTime *date;
ECalObjModType mod = E_CAL_OBJ_MOD_ALL;
ECalClient *client;
GtkWindow *toplevel;
+ ICalTimetype *itt;
+ ICalTimezone *zone;
num_days = 1;
start_offset = 0;
@@ -9216,8 +9269,9 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
* Otherwise we would not detect that the event's time
* had changed in the "update_event" callback. */
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone
(event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
if (e_cal_component_has_attendees (comp) &&
!itip_organizer_is_user (registry, comp, client)) {
@@ -9244,38 +9298,32 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
else
all_day_event = FALSE;
- date.value = &itt;
-
+ zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view));
dt = day_view->day_starts[day] + start_offset * 60;
- itt = icaltime_from_timet_with_zone (
- dt, FALSE,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
+ itt = i_cal_time_from_timet_with_zone (dt, FALSE, zone);
if (all_day_event) {
- itt.is_date = TRUE;
- date.tzid = NULL;
+ i_cal_timetype_set_is_date (itt, TRUE);
+ date = e_cal_component_datetime_new_take (itt, NULL);
} else {
- /* FIXME: Should probably keep the timezone of
- * the original start and end times. */
- date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone
(E_CALENDAR_VIEW (day_view)));
+ date = e_cal_component_datetime_new_take (itt,
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
}
- cal_comp_set_dtstart_with_oldzone (client, comp, &date);
+ cal_comp_set_dtstart_with_oldzone (client, comp, date);
+ e_cal_component_datetime_free (date);
if (end_offset == 0)
dt = day_view->day_starts[day + num_days];
else
dt = day_view->day_starts[day + num_days - 1] + end_offset * 60;
- itt = icaltime_from_timet_with_zone (
- dt, FALSE,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
+ itt = i_cal_time_from_timet_with_zone (dt, FALSE, zone);
if (all_day_event) {
- itt.is_date = TRUE;
- date.tzid = NULL;
+ i_cal_timetype_set_is_date (itt, TRUE);
+ date = e_cal_component_datetime_new_take (itt, NULL);
} else {
- /* FIXME: Should probably keep the timezone of
- * the original start and end times. */
- date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone
(E_CALENDAR_VIEW (day_view)));
+ date = e_cal_component_datetime_new_take (itt,
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
}
- cal_comp_set_dtend_with_oldzone (client, comp, &date);
+ cal_comp_set_dtend_with_oldzone (client, comp, date);
gtk_drag_finish (context, TRUE, TRUE, time);
@@ -9297,10 +9345,10 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
}
if (mod == E_CAL_OBJ_MOD_THIS) {
- e_cal_component_set_rdate_list (comp, NULL);
- e_cal_component_set_rrule_list (comp, NULL);
- e_cal_component_set_exdate_list (comp, NULL);
- e_cal_component_set_exrule_list (comp, NULL);
+ e_cal_component_set_rdates (comp, NULL);
+ e_cal_component_set_rrules (comp, NULL);
+ e_cal_component_set_exdates (comp, NULL);
+ e_cal_component_set_exrules (comp, NULL);
}
} else if (e_cal_component_is_instance (comp))
mod = E_CAL_OBJ_MOD_THIS;
@@ -9320,8 +9368,8 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
if (length >= 0 && format == 8 && !drag_from_same_window) {
/* We are dragging between different window */
- icalcomponent *icalcomp;
- icalcomponent_kind kind;
+ ICalComponent *icomp;
+ ICalComponentKind kind;
pos = e_day_view_convert_position_in_top_canvas (
day_view,
@@ -9330,15 +9378,15 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
if (pos == E_CALENDAR_VIEW_POS_OUTSIDE)
goto error;
- icalcomp = icalparser_parse_string ((const gchar *) data);
- if (!icalcomp)
+ icomp = i_cal_parser_parse_string ((const gchar *) data);
+ if (!icomp)
goto error;
/* check the type of the component */
- kind = icalcomponent_isa (icalcomp);
- icalcomponent_free (icalcomp);
+ kind = i_cal_component_isa (icomp);
+ g_clear_object (&icomp);
- if (kind != ICAL_VCALENDAR_COMPONENT && kind != ICAL_VEVENT_COMPONENT)
+ if (kind != I_CAL_VCALENDAR_COMPONENT && kind != I_CAL_VEVENT_COMPONENT)
goto error;
e_cal_ops_paste_components (model, (const gchar *) data);
@@ -9369,9 +9417,7 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
gint start_offset, end_offset;
ECalModel *model;
ECalComponent *comp;
- ECalComponentDateTime date;
ESourceRegistry *registry;
- struct icaltimetype itt;
time_t dt;
gboolean drag_from_same_window;
const guchar *data;
@@ -9410,9 +9456,11 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
x, y, &day,
&row, NULL);
if (pos != E_CALENDAR_VIEW_POS_OUTSIDE) {
+ ECalComponentDateTime *date;
ECalObjModType mod = E_CAL_OBJ_MOD_ALL;
ECalClient *client;
GtkWindow *toplevel;
+ ICalTimezone *zone;
num_rows = 1;
start_offset = 0;
@@ -9460,8 +9508,9 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
* don't want to change the original comp here.
* Otherwise we would not detect that the event's time
* had changed in the "update_event" callback. */
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone
(event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
if (e_cal_component_has_attendees (comp) &&
!itip_organizer_is_user (registry, comp, client)) {
@@ -9483,17 +9532,22 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
return;
}
- date.value = &itt;
- date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW
(day_view)));
+ zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view));
dt = e_day_view_convert_grid_position_to_time (day_view, day, row) + start_offset *
60;
- *date.value = icaltime_from_timet_with_zone (dt, FALSE,
- e_calendar_view_get_timezone
(E_CALENDAR_VIEW (day_view)));
- cal_comp_set_dtstart_with_oldzone (client, comp, &date);
+ date = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone (dt, FALSE, zone),
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
+ cal_comp_set_dtstart_with_oldzone (client, comp, date);
+ e_cal_component_datetime_free (date);
+
dt = e_day_view_convert_grid_position_to_time (day_view, day, row + num_rows) -
end_offset * 60;
- *date.value = icaltime_from_timet_with_zone (dt, FALSE,
- e_calendar_view_get_timezone
(E_CALENDAR_VIEW (day_view)));
- cal_comp_set_dtend_with_oldzone (client, comp, &date);
+ date = e_cal_component_datetime_new_take (
+ i_cal_time_from_timet_with_zone (dt, FALSE, zone),
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
+ cal_comp_set_dtend_with_oldzone (client, comp, date);
+ e_cal_component_datetime_free (date);
+
e_cal_component_abort_sequence (comp);
gtk_drag_finish (context, TRUE, TRUE, time);
@@ -9516,10 +9570,10 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
}
if (mod == E_CAL_OBJ_MOD_THIS) {
- e_cal_component_set_rdate_list (comp, NULL);
- e_cal_component_set_rrule_list (comp, NULL);
- e_cal_component_set_exdate_list (comp, NULL);
- e_cal_component_set_exrule_list (comp, NULL);
+ e_cal_component_set_rdates (comp, NULL);
+ e_cal_component_set_rrules (comp, NULL);
+ e_cal_component_set_exdates (comp, NULL);
+ e_cal_component_set_exrules (comp, NULL);
}
} else if (e_cal_component_is_instance (comp))
mod = E_CAL_OBJ_MOD_THIS;
@@ -9539,8 +9593,8 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
if (length >= 0 && format == 8 && !drag_from_same_window) {
/* We are dragging between different window */
- icalcomponent *icalcomp;
- icalcomponent_kind kind;
+ ICalComponent *icomp;
+ ICalComponentKind kind;
pos = e_day_view_convert_position_in_main_canvas (
day_view,
@@ -9549,15 +9603,15 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
if (pos == E_CALENDAR_VIEW_POS_OUTSIDE)
goto error;
- icalcomp = icalparser_parse_string ((const gchar *) data);
- if (!icalcomp)
+ icomp = i_cal_parser_parse_string ((const gchar *) data);
+ if (!icomp)
goto error;
/* check the type of the component */
- kind = icalcomponent_isa (icalcomp);
- icalcomponent_free (icalcomp);
+ kind = i_cal_component_isa (icomp);
+ g_object_unref (&icomp);
- if (kind != ICAL_VCALENDAR_COMPONENT && kind != ICAL_VEVENT_COMPONENT)
+ if (kind != I_CAL_VCALENDAR_COMPONENT && kind != I_CAL_VEVENT_COMPONENT)
goto error;
e_cal_ops_paste_components (model, (const gchar *) data);
@@ -9675,7 +9729,7 @@ e_day_view_is_editing (EDayView *day_view)
static void
day_view_update_timezone_name_label (GtkWidget *label,
- icaltimezone *zone)
+ ICalTimezone *zone)
{
const gchar *location, *dash;
gchar *markup;
@@ -9685,11 +9739,11 @@ day_view_update_timezone_name_label (GtkWidget *label,
if (!zone) {
location = NULL;
} else {
- location = icaltimezone_get_location (zone);
+ location = i_cal_timezone_get_location (zone);
if (location && *location)
location = _(location);
if (!location || !*location)
- location = icaltimezone_get_tzid (zone);
+ location = i_cal_timezone_get_tzid (zone);
}
if (!location)
@@ -9709,7 +9763,7 @@ day_view_update_timezone_name_label (GtkWidget *label,
void
e_day_view_update_timezone_name_labels (EDayView *day_view)
{
- icaltimezone *zone;
+ ICalTimezone *zone;
g_return_if_fail (E_IS_DAY_VIEW (day_view));
diff --git a/src/calendar/gui/e-week-view-event-item.c b/src/calendar/gui/e-week-view-event-item.c
index b651b8a278..4193a3b25e 100644
--- a/src/calendar/gui/e-week-view-event-item.c
+++ b/src/calendar/gui/e-week-view-event-item.c
@@ -446,9 +446,9 @@ week_view_event_item_draw_icons (EWeekViewEventItem *event_item,
if (!is_comp_data_valid (event))
return;
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (
- comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
if (e_cal_component_has_alarms (comp)) {
draw_reminder_icon = TRUE;
diff --git a/src/calendar/gui/e-week-view-main-item.c b/src/calendar/gui/e-week-view-main-item.c
index e09606735c..cb290a85fd 100644
--- a/src/calendar/gui/e-week-view-main-item.c
+++ b/src/calendar/gui/e-week-view-main-item.c
@@ -94,18 +94,18 @@ week_view_main_item_draw_day (EWeekViewMainItem *main_item,
if (!today) {
ECalendarView *view;
- struct icaltimetype tt;
- const icaltimezone *zone;
+ ICalTimetype *tt;
+ ICalTimezone *zone;
view = E_CALENDAR_VIEW (week_view);
zone = e_calendar_view_get_timezone (view);
/* Check if we are drawing today */
- tt = icaltime_from_timet_with_zone (
- time (NULL), FALSE, zone);
- today = g_date_get_year (date) == tt.year
- && g_date_get_month (date) == tt.month
- && g_date_get_day (date) == tt.day;
+ tt = i_cal_time_from_timet_with_zone (time (NULL), FALSE, zone);
+ today = g_date_get_year (date) == i_cal_timetype_get_year (tt) &&
+ g_date_get_month (date) == i_cal_timetype_get_month (tt) &&
+ g_date_get_day (date) == i_cal_timetype_get_day (tt);
+ g_clear_object (&tt);
}
/* Draw the background of the day. In the month view odd months are
diff --git a/src/calendar/gui/e-week-view.c b/src/calendar/gui/e-week-view.c
index c6f9d821d1..9cab73811b 100644
--- a/src/calendar/gui/e-week-view.c
+++ b/src/calendar/gui/e-week-view.c
@@ -214,35 +214,23 @@ week_view_process_component (EWeekView *week_view,
{
ECalComponent *comp = NULL;
AddEventData add_event_data;
- /* rid is never used in this function? */
- const gchar *uid;
- gchar *rid = NULL;
/* If we don't have a valid date set yet, just return. */
if (!g_date_valid (&week_view->priv->first_day_shown))
return;
- comp = e_cal_component_new ();
- if (!e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (comp_data->icalcomp))) {
- g_object_unref (comp);
-
- g_message (G_STRLOC ": Could not set icalcomponent on ECalComponent");
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
+ if (!comp) {
+ g_message (G_STRLOC ": Could not set ICalComponent on ECalComponent");
return;
}
- e_cal_component_get_uid (comp, &uid);
- if (e_cal_component_is_instance (comp))
- rid = e_cal_component_get_recurid_as_string (comp);
- else
- rid = NULL;
-
/* Add the object */
add_event_data.week_view = week_view;
add_event_data.comp_data = comp_data;
e_week_view_add_event (comp_data->client, comp, comp_data->instance_start, comp_data->instance_end,
FALSE, &add_event_data);
g_object_unref (comp);
- g_free (rid);
}
static void
@@ -253,20 +241,14 @@ week_view_update_row (EWeekView *week_view,
ECalModel *model;
gint event_num;
const gchar *uid;
- gchar *rid = NULL;
+ gchar *rid;
model = e_calendar_view_get_model (E_CALENDAR_VIEW (week_view));
comp_data = e_cal_model_get_component_at (model, row);
g_return_if_fail (comp_data != NULL);
- uid = icalcomponent_get_uid (comp_data->icalcomp);
- if (e_cal_util_component_is_instance (comp_data->icalcomp)) {
- icalproperty *prop;
-
- prop = icalcomponent_get_first_property (comp_data->icalcomp, ICAL_RECURRENCEID_PROPERTY);
- if (prop)
- rid = icaltime_as_ical_string_r (icalcomponent_get_recurrenceid
(comp_data->icalcomp));
- }
+ uid = i_cal_component_get_uid (comp_data->icalcomp);
+ rid = e_cal_util_component_get_recurid_as_string (comp_data->icalcomp);
if (e_week_view_find_event_from_uid (week_view, comp_data->client, uid, rid, &event_num))
e_week_view_remove_event_cb (week_view, event_num, NULL);
@@ -309,20 +291,15 @@ week_view_model_comps_deleted_cb (EWeekView *week_view,
for (l = list; l != NULL; l = g_slist_next (l)) {
gint event_num;
const gchar *uid;
- gchar *rid = NULL;
+ gchar *rid;
ECalModelComponent *comp_data = l->data;
- uid = icalcomponent_get_uid (comp_data->icalcomp);
- if (e_cal_util_component_is_instance (comp_data->icalcomp)) {
- icalproperty *prop;
-
- prop = icalcomponent_get_first_property (comp_data->icalcomp,
ICAL_RECURRENCEID_PROPERTY);
- if (prop)
- rid = icaltime_as_ical_string_r (icalcomponent_get_recurrenceid
(comp_data->icalcomp));
- }
+ uid = i_cal_component_get_uid (comp_data->icalcomp);
+ rid = e_cal_util_component_get_recurid_as_string (comp_data->icalcomp);
if (e_week_view_find_event_from_uid (week_view, comp_data->client, uid, rid, &event_num))
e_week_view_remove_event_cb (week_view, event_num, NULL);
+
g_free (rid);
}
@@ -387,7 +364,7 @@ e_week_view_precalc_visible_time_range (ECalendarView *cal_view,
GDateWeekday display_start_day;
guint day_offset, week_start_offset;
gint num_days;
- icaltimezone *zone;
+ ICalTimezone *zone;
g_return_if_fail (E_IS_WEEK_VIEW (cal_view));
g_return_if_fail (out_start_time != NULL);
@@ -396,7 +373,7 @@ e_week_view_precalc_visible_time_range (ECalendarView *cal_view,
week_view = E_WEEK_VIEW (cal_view);
zone = e_calendar_view_get_timezone (cal_view);
- time_to_gdate_with_zone (&date, in_start_time, e_calendar_view_get_timezone (E_CALENDAR_VIEW
(week_view)));
+ time_to_gdate_with_zone (&date, in_start_time, zone);
weekday = g_date_get_weekday (&date);
display_start_day = e_week_view_get_display_start_day (week_view);
@@ -425,7 +402,7 @@ e_week_view_precalc_visible_time_range (ECalendarView *cal_view,
g_date_add_days (&end_date, num_days);
g_date_subtract_days (&end_date, day_offset);
- time_to_gdate_with_zone (&in_end_date, in_end_time, e_calendar_view_get_timezone
(E_CALENDAR_VIEW (week_view)));
+ time_to_gdate_with_zone (&in_end_date, in_end_time, zone);
while (g_date_days_between (&end_date, &in_end_date) >= 6) {
g_date_add_days (&end_date, 7);
@@ -532,13 +509,13 @@ week_view_time_range_changed_cb (EWeekView *week_view,
static void
timezone_changed_cb (ECalModel *cal_model,
- icaltimezone *old_zone,
- icaltimezone *new_zone,
- gpointer user_data)
+ ICalTimezone *old_zone,
+ ICalTimezone *new_zone,
+ gpointer user_data)
{
ECalendarView *cal_view = (ECalendarView *) user_data;
GDate *first_day_shown;
- struct icaltimetype tt = icaltime_null_time ();
+ ICalTimetype *tt = NULL;
time_t lower;
EWeekView *week_view = (EWeekView *) cal_view;
@@ -556,13 +533,18 @@ timezone_changed_cb (ECalModel *cal_model,
if (!g_date_valid (first_day_shown))
return;
+ tt = i_cal_time_null_time ();
+
/* Recalculate the new start of the first week. We just use exactly
* the same time, but with the new timezone. */
- tt.year = g_date_get_year (first_day_shown);
- tt.month = g_date_get_month (first_day_shown);
- tt.day = g_date_get_day (first_day_shown);
+ i_cal_timetype_set_date (tt,
+ g_date_get_year (first_day_shown),
+ g_date_get_month (first_day_shown),
+ g_date_get_day (first_day_shown));
+
+ lower = i_cal_time_as_timet_with_zone (tt, new_zone);
- lower = icaltime_as_timet_with_zone (tt, new_zone);
+ g_clear_object (&tt);
e_week_view_recalc_day_starts (week_view, lower);
e_week_view_update_query (week_view);
@@ -659,43 +641,41 @@ new_event_in_rage_data_free (gpointer ptr)
static void
week_view_new_event_in_selected_range_cb (ECalModel *model,
ECalClient *client,
- icalcomponent *default_component,
+ ICalComponent *default_component,
gpointer user_data)
{
NewEventInRangeData *ned = user_data;
ECalComponent *comp = NULL;
gint event_num;
- ECalComponentDateTime date;
- struct icaltimetype itt;
+ ECalComponentDateTime *date;
const gchar *uid;
AddEventData add_event_data;
EWeekViewEvent *wvevent;
EWeekViewEventSpan *span;
- icaltimezone *zone;
+ ICalTimezone *zone;
/* Check if the client is read only */
if (e_client_is_readonly (E_CLIENT (client)))
goto exit;
/* Add a new event covering the selected range. */
- comp = e_cal_component_new_from_icalcomponent (icalcomponent_new_clone (default_component));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (default_component));
g_return_if_fail (comp != NULL);
- uid = icalcomponent_get_uid (default_component);
-
- date.value = &itt;
- date.tzid = NULL;
+ uid = i_cal_component_get_uid (default_component);
zone = e_cal_model_get_timezone (model);
/* We use DATE values now, so we don't need the timezone. */
/*date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW (week_view)));*/
- *date.value = icaltime_from_timet_with_zone (ned->dtstart, TRUE, zone);
- e_cal_component_set_dtstart (comp, &date);
+ date = e_cal_component_datetime_new_take (i_cal_time_from_timet_with_zone (ned->dtstart, TRUE, zone),
NULL);
+ e_cal_component_set_dtstart (comp, date);
+ e_cal_component_datetime_free (date);
- *date.value = icaltime_from_timet_with_zone (ned->dtend, TRUE, zone);
- e_cal_component_set_dtend (comp, &date);
+ date = e_cal_component_datetime_new_take (i_cal_time_from_timet_with_zone (ned->dtend, TRUE, zone),
NULL);
+ e_cal_component_set_dtend (comp, date);
+ e_cal_component_datetime_free (date);
/* Editor default in week/month view */
e_cal_component_set_transparency (comp, E_CAL_COMPONENT_TRANSP_TRANSPARENT);
@@ -2225,8 +2205,6 @@ e_week_view_set_first_day_shown (EWeekView *week_view,
gint num_days;
gboolean update_adjustment_value = FALSE;
guint32 old_selection_start_julian = 0, old_selection_end_julian = 0;
- struct icaltimetype start_tt = icaltime_null_time ();
- time_t start_time;
g_return_if_fail (E_IS_WEEK_VIEW (week_view));
@@ -2261,16 +2239,23 @@ e_week_view_set_first_day_shown (EWeekView *week_view,
/* See if we need to update the first day shown. */
if (!g_date_valid (&week_view->priv->first_day_shown)
|| g_date_compare (&week_view->priv->first_day_shown, &base_date)) {
+ ICalTimetype *start_tt;
+ time_t start_time;
+
week_view->priv->first_day_shown = base_date;
- start_tt.year = g_date_get_year (&base_date);
- start_tt.month = g_date_get_month (&base_date);
- start_tt.day = g_date_get_day (&base_date);
+ start_tt = i_cal_time_null_time ();
+ i_cal_timetype_set_date (start_tt,
+ g_date_get_year (&base_date),
+ g_date_get_month (&base_date),
+ g_date_get_day (&base_date));
- start_time = icaltime_as_timet_with_zone (
+ start_time = i_cal_time_as_timet_with_zone (
start_tt,
e_calendar_view_get_timezone (E_CALENDAR_VIEW (week_view)));
+ g_clear_object (&start_tt);
+
e_week_view_recalc_day_starts (week_view, start_time);
e_week_view_update_query (week_view);
}
@@ -2672,42 +2657,54 @@ set_style_from_attendee (EWeekViewEvent *event,
ECalComponent *comp;
GSList *attendees = NULL, *l;
gchar *address;
- ECalComponentAttendee *at = NULL;
+ ICalParameterPartstat partstat = I_CAL_PARTSTAT_NONE;
if (!is_comp_data_valid (event))
return;
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
+
address = itip_get_comp_attendee (
registry, comp, event->comp_data->client);
- e_cal_component_get_attendee_list (comp, &attendees);
- for (l = attendees; l; l = l->next) {
+ attendees = e_cal_component_get_attendees (comp);
+ for (l = attendees; l && address; l = l->next) {
ECalComponentAttendee *attendee = l->data;
+ const gchar *value, *sentby;
+
+ if (!attendee)
+ continue;
- if ((attendee->value && g_strcmp0 (itip_strip_mailto (attendee->value), address) == 0)
- || (attendee->sentby && g_strcmp0 (itip_strip_mailto (attendee->sentby), address) == 0)) {
- at = attendee;
+ value = e_cal_component_attendee_get_value (attendee);
+ if (value)
+ value = itip_strip_mailto (value);
+ sentby = e_cal_component_attendee_get_sentby (attendee);
+ if (sentby)
+ sentby = itip_strip_mailto (sentby);
+ if ((value && g_ascii_strcasecmp (value, address) == 0) ||
+ (sentby && g_ascii_strcasecmp (sentby, address) == 0)) {
+ partstat = e_cal_component_attendee_get_partstat (attendee);
break;
}
}
- if (icalcomponent_get_status (event->comp_data->icalcomp) == ICAL_STATUS_CANCELLED)
+ if (i_cal_component_get_status (event->comp_data->icalcomp) == I_CAL_STATUS_CANCELLED)
gnome_canvas_item_set (span->text_item, "strikeout", TRUE, NULL);
/* The attendee has not yet accepted the meeting, display the summary as bolded.
* If the attendee is not present, it might have come through a mailing list.
* In that case, we never show the meeting as bold even if it is unaccepted. */
- if (at && at->status == ICAL_PARTSTAT_NEEDSACTION)
+ if (partstat == I_CAL_PARTSTAT_NEEDSACTION)
gnome_canvas_item_set (span->text_item, "bold", TRUE, NULL);
- else if (at && at->status == ICAL_PARTSTAT_DECLINED)
+ else if (partstat == I_CAL_PARTSTAT_DECLINED)
gnome_canvas_item_set (span->text_item, "strikeout", TRUE, NULL);
- else if (at && at->status == ICAL_PARTSTAT_TENTATIVE)
+ else if (partstat == I_CAL_PARTSTAT_TENTATIVE)
gnome_canvas_item_set (span->text_item, "italic", TRUE, NULL);
- else if (at && at->status == ICAL_PARTSTAT_DELEGATED)
+ else if (partstat == I_CAL_PARTSTAT_DELEGATED)
gnome_canvas_item_set (span->text_item, "italic", TRUE, "strikeout", TRUE, NULL);
- e_cal_component_free_attendee_list (attendees);
+ g_slist_free_full (attendees, e_cal_component_attendee_free);
g_free (address);
g_object_unref (comp);
}
@@ -2735,7 +2732,7 @@ e_week_view_foreach_event_with_uid (EWeekView *week_view,
if (!is_comp_data_valid (event))
continue;
- u = icalcomponent_get_uid (event->comp_data->icalcomp);
+ u = i_cal_component_get_uid (event->comp_data->icalcomp);
if (u && !strcmp (uid, u)) {
if (!(*callback) (week_view, event_num, data))
return;
@@ -3344,7 +3341,7 @@ e_week_view_add_event (ECalClient *client,
AddEventData *add_event_data;
EWeekViewEvent event;
gint num_days;
- struct icaltimetype start_tt, end_tt;
+ ICalTimetype *start_tt, *end_tt;
add_event_data = data;
@@ -3357,10 +3354,10 @@ e_week_view_add_event (ECalClient *client,
if (end != start || end < add_event_data->week_view->day_starts[0])
g_return_if_fail (end > add_event_data->week_view->day_starts[0]);
- start_tt = icaltime_from_timet_with_zone (
+ start_tt = i_cal_time_from_timet_with_zone (
start, FALSE,
e_calendar_view_get_timezone (E_CALENDAR_VIEW (add_event_data->week_view)));
- end_tt = icaltime_from_timet_with_zone (
+ end_tt = i_cal_time_from_timet_with_zone (
end, FALSE,
e_calendar_view_get_timezone (E_CALENDAR_VIEW (add_event_data->week_view)));
@@ -3371,8 +3368,9 @@ e_week_view_add_event (ECalClient *client,
event.comp_data->is_new_component = TRUE;
event.comp_data->client = g_object_ref (client);
e_cal_component_abort_sequence (comp);
- event.comp_data->icalcomp = icalcomponent_new_clone (e_cal_component_get_icalcomponent
(comp));
+ event.comp_data->icalcomp = i_cal_component_new_clone (e_cal_component_get_icalcomponent
(comp));
}
+
event.start = start;
event.end = end;
event.tooltip = NULL;
@@ -3383,8 +3381,8 @@ e_week_view_add_event (ECalClient *client,
event.comp_data->instance_start = start;
event.comp_data->instance_end = end;
- event.start_minute = start_tt.hour * 60 + start_tt.minute;
- event.end_minute = end_tt.hour * 60 + end_tt.minute;
+ event.start_minute = i_cal_timetype_get_hour (start_tt) * 60 + i_cal_timetype_get_minute (start_tt);
+ event.end_minute = i_cal_timetype_get_hour (end_tt) * 60 + i_cal_timetype_get_minute (end_tt);
if (event.end_minute == 0 && start != end)
event.end_minute = 24 * 60;
@@ -3401,6 +3399,9 @@ e_week_view_add_event (ECalClient *client,
g_array_append_val (add_event_data->week_view->events, event);
add_event_data->week_view->events_sorted = FALSE;
add_event_data->week_view->events_need_layout = TRUE;
+
+ g_clear_object (&start_tt);
+ g_clear_object (&end_tt);
}
/* This lays out the events, or reshapes them, as necessary. */
@@ -3492,8 +3493,8 @@ e_week_view_reshape_events (EWeekView *week_view)
week_view, event_num, span_num);
if (week_view->last_edited_comp_string == NULL)
continue;
- current_comp_string = icalcomponent_as_ical_string_r (event->comp_data->icalcomp);
- if (strncmp (current_comp_string, week_view->last_edited_comp_string,50) == 0) {
+ current_comp_string = i_cal_component_as_ical_string_r (event->comp_data->icalcomp);
+ if (strncmp (current_comp_string, week_view->last_edited_comp_string, 50) == 0) {
EWeekViewEventSpan *span;
if (!is_array_index_in_bounds (week_view->spans, event->spans_index +
span_num)) {
@@ -3768,8 +3769,9 @@ e_week_view_reshape_event_span (EWeekView *week_view,
span = &g_array_index (week_view->spans, EWeekViewEventSpan,
event->spans_index + span_num);
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp)
+ return;
one_day_event = e_week_view_is_one_day_event (week_view, event_num);
@@ -3866,7 +3868,7 @@ e_week_view_reshape_event_span (EWeekView *week_view,
if (e_cal_util_component_has_attendee (event->comp_data->icalcomp))
set_style_from_attendee (event, span, registry);
- else if (icalcomponent_get_status (event->comp_data->icalcomp) == ICAL_STATUS_CANCELLED)
+ else if (i_cal_component_get_status (event->comp_data->icalcomp) == I_CAL_STATUS_CANCELLED)
gnome_canvas_item_set (span->text_item, "strikeout", TRUE, NULL);
g_signal_connect (
@@ -4093,7 +4095,7 @@ e_week_view_start_editing_event (EWeekView *week_view,
return FALSE;
}
- summary = icalcomponent_get_summary (event->comp_data->icalcomp);
+ summary = i_cal_component_get_summary (event->comp_data->icalcomp);
if (!summary)
summary = "";
@@ -4189,7 +4191,7 @@ cancel_editing (EWeekView *week_view)
/* Reset the text to what was in the component */
- summary = icalcomponent_get_summary (event->comp_data->icalcomp);
+ summary = i_cal_component_get_summary (event->comp_data->icalcomp);
g_object_set (span->text_item, "text", summary ? summary : "", NULL);
/* Stop editing */
@@ -4423,7 +4425,7 @@ e_week_view_event_move (ECalendarView *cal_view,
EWeekViewEvent *event;
gint event_num, adjust_days, current_start_day, current_end_day;
time_t start_dt, end_dt;
- struct icaltimetype start_time,end_time;
+ ICalTimetype *start_time, *end_time;
EWeekView *week_view = E_WEEK_VIEW (cal_view);
gboolean is_all_day = FALSE;
@@ -4443,10 +4445,10 @@ e_week_view_event_move (ECalendarView *cal_view,
return FALSE;
end_dt = event->end;
- start_time = icalcomponent_get_dtstart (event->comp_data->icalcomp);
- end_time = icalcomponent_get_dtend (event->comp_data->icalcomp);
+ start_time = i_cal_component_get_dtstart (event->comp_data->icalcomp);
+ end_time = i_cal_component_get_dtend (event->comp_data->icalcomp);
- if (start_time.is_date && end_time.is_date)
+ if (i_cal_timetype_get_is_date (start_time) && i_cal_timetype_get_is_date (end_time))
is_all_day = TRUE;
current_end_day = e_week_view_get_day_offset_of_event (week_view,end_dt);
@@ -4468,15 +4470,18 @@ e_week_view_event_move (ECalendarView *cal_view,
break;
}
- icaltime_adjust (&start_time ,adjust_days,0,0,0);
- icaltime_adjust (&end_time ,adjust_days,0,0,0);
- start_dt = icaltime_as_timet_with_zone (
+ i_cal_time_adjust (start_time, adjust_days, 0, 0, 0);
+ i_cal_time_adjust (end_time, adjust_days, 0, 0, 0);
+ start_dt = i_cal_time_as_timet_with_zone (
start_time,
e_calendar_view_get_timezone (E_CALENDAR_VIEW (week_view)));
- end_dt = icaltime_as_timet_with_zone (
+ end_dt = i_cal_time_as_timet_with_zone (
end_time,
e_calendar_view_get_timezone (E_CALENDAR_VIEW (week_view)));
+ g_clear_object (&start_time);
+ g_clear_object (&end_time);
+
current_start_day = e_week_view_get_day_offset_of_event (week_view,start_dt);
current_end_day = e_week_view_get_day_offset_of_event (week_view,end_dt);
if (is_all_day)
@@ -4557,10 +4562,10 @@ e_week_view_change_event_time (EWeekView *week_view,
EWeekViewEvent *event;
gint event_num;
ECalComponent *comp;
- ECalComponentDateTime date;
- struct icaltimetype itt;
+ ECalComponentDateTime *date;
ECalClient *client;
ECalObjModType mod = E_CAL_OBJ_MOD_ALL;
+ ICalTimezone *zone;
event_num = week_view->editing_event_num;
@@ -4581,19 +4586,19 @@ e_week_view_change_event_time (EWeekView *week_view,
/* We use a temporary shallow copy of the ico since we don't want to
* change the original ico here. Otherwise we would not detect that
* the event's time had changed in the "update_event" callback. */
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
- date.value = &itt;
- /* FIXME: Should probably keep the timezone of the original start
- * and end times. */
- date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW (week_view)));
-
- *date.value = icaltime_from_timet_with_zone (start_dt, is_all_day,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW
(week_view)));
- cal_comp_set_dtstart_with_oldzone (client, comp, &date);
- *date.value = icaltime_from_timet_with_zone (end_dt, is_all_day,
- e_calendar_view_get_timezone (E_CALENDAR_VIEW
(week_view)));
- cal_comp_set_dtend_with_oldzone (client, comp, &date);
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+
+ zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW (week_view));
+
+ date = e_cal_component_datetime_new_take (i_cal_time_from_timet_with_zone (start_dt, is_all_day,
zone),
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
+ cal_comp_set_dtstart_with_oldzone (client, comp, date);
+ e_cal_component_datetime_free (date);
+
+ date = e_cal_component_datetime_new_take (i_cal_time_from_timet_with_zone (end_dt, is_all_day, zone),
+ zone ? g_strdup (i_cal_timezone_get_tzid (zone)) : NULL);
+ cal_comp_set_dtend_with_oldzone (client, comp, date);
+ e_cal_component_datetime_free (date);
e_cal_component_commit_sequence (comp);
@@ -4611,10 +4616,10 @@ e_week_view_change_event_time (EWeekView *week_view,
}
if (mod == E_CAL_OBJ_MOD_THIS) {
- e_cal_component_set_rdate_list (comp, NULL);
- e_cal_component_set_rrule_list (comp, NULL);
- e_cal_component_set_exdate_list (comp, NULL);
- e_cal_component_set_exrule_list (comp, NULL);
+ e_cal_component_set_rdates (comp, NULL);
+ e_cal_component_set_rrules (comp, NULL);
+ e_cal_component_set_exdates (comp, NULL);
+ e_cal_component_set_exrules (comp, NULL);
}
} else if (e_cal_component_is_instance (comp))
mod = E_CAL_OBJ_MOD_THIS;
@@ -4663,7 +4668,7 @@ e_week_view_on_editing_started (EWeekView *week_view,
span = &g_array_index (week_view->spans, EWeekViewEventSpan,
event->spans_index + span_num);
- summary = icalcomponent_get_summary (event->comp_data->icalcomp);
+ summary = i_cal_component_get_summary (event->comp_data->icalcomp);
gnome_canvas_item_set (
span->text_item,
@@ -4687,7 +4692,7 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
EWeekViewEventSpan *span;
gchar *text = NULL;
ECalComponent *comp;
- ECalComponentText summary;
+ ECalComponentText *summary = NULL;
ECalClient *client;
const gchar *uid;
gboolean on_server;
@@ -4720,7 +4725,7 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
week_view->editing_event_num = -1;
/* Check that the event is still valid. */
- uid = icalcomponent_get_uid (event->comp_data->icalcomp);
+ uid = i_cal_component_get_uid (event->comp_data->icalcomp);
if (!uid) {
g_object_notify (G_OBJECT (week_view), "is-editing");
return;
@@ -4730,14 +4735,18 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
g_object_set (span->text_item, "handle_popup", FALSE, NULL);
g_object_get (span->text_item, "text", &text, NULL);
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone
(event->comp_data->icalcomp));
+ if (!comp) {
+ g_free (text);
+ g_object_notify (G_OBJECT (week_view), "is-editing");
+ return;
+ }
client = event->comp_data->client;
on_server = !event->comp_data->is_new_component;
if (string_is_empty (text) && !on_server) {
- e_cal_component_get_uid (comp, &uid);
+ uid = e_cal_component_get_uid (comp);
g_signal_handlers_disconnect_by_func (item, e_week_view_on_text_item_event, week_view);
e_week_view_foreach_event_with_uid (week_view, uid,
e_week_view_remove_event_cb, NULL);
@@ -4748,27 +4757,31 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
}
/* Only update the summary if necessary. */
- e_cal_component_get_summary (comp, &summary);
- if (summary.value && !strcmp (text, summary.value)) {
- gchar *summary;
+ summary = e_cal_component_get_summary (comp);
+ if (summary && !g_strcmp0 (e_cal_component_text_get_value (summary), text)) {
+ gchar *summary_txt;
- summary = dup_comp_summary (event->comp_data->client, event->comp_data->icalcomp);
- g_object_set (span->text_item, "text", summary ? summary : "", NULL);
+ summary_txt = dup_comp_summary (event->comp_data->client, event->comp_data->icalcomp);
+ g_object_set (span->text_item, "text", summary_txt ? summary_txt : "", NULL);
- g_free (summary);
+ g_free (summary_txt);
if (!e_week_view_is_one_day_event (week_view, event_num))
e_week_view_reshape_event_span (week_view, event_num, span_num);
- } else if (summary.value || !string_is_empty (text)) {
- icalcomponent *icalcomp = e_cal_component_get_icalcomponent (comp);
+ } else if ((summary && e_cal_component_text_get_value (summary)) || !string_is_empty (text)) {
+ ICalComponent *icomp = e_cal_component_get_icalcomponent (comp);
- summary.value = text;
- summary.altrep = NULL;
- e_cal_component_set_summary (comp, &summary);
+ e_cal_component_text_free (summary);
+ summary = e_cal_component_text_new (text, NULL);
+
+ e_cal_component_set_summary (comp, summary);
e_cal_component_commit_sequence (comp);
+ e_cal_component_text_free (summary);
+ summary = NULL;
+
if (!on_server) {
- e_cal_ops_create_component (e_calendar_view_get_model (E_CALENDAR_VIEW (week_view)),
client, icalcomp,
+ e_cal_ops_create_component (e_calendar_view_get_model (E_CALENDAR_VIEW (week_view)),
client, icomp,
e_calendar_view_component_created_cb, g_object_ref (week_view),
g_object_unref);
/* we remove the object since we either got the update from the server or failed */
@@ -4782,52 +4795,56 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
}
if (mod == E_CAL_OBJ_MOD_THIS) {
- ECalComponentDateTime dt;
- struct icaltimetype tt;
+ ECalComponentDateTime *dt;
+ ICalTimetype *tt = NULL;
gchar *tzid;
- e_cal_component_get_dtstart (comp, &dt);
- if (dt.value->zone) {
- tt = icaltime_from_timet_with_zone (
+ dt = e_cal_component_get_dtstart (comp);
+ if (dt)
+ tt = e_cal_component_datetime_get_value (dt);
+ if (dt && tt && i_cal_time_get_timezone (tt)) {
+ tt = i_cal_time_from_timet_with_zone (
event->comp_data->instance_start,
- dt.value->is_date,
- dt.value->zone);
+ i_cal_time_is_date (tt),
+ i_cal_time_get_timezone (tt));
} else {
- tt = icaltime_from_timet_with_zone (
+ tt = i_cal_time_from_timet_with_zone (
event->comp_data->instance_start,
- dt.value->is_date,
+ (dt && tt) ? i_cal_time_is_date (tt) : FALSE,
e_calendar_view_get_timezone (E_CALENDAR_VIEW
(week_view)));
}
- tzid = g_strdup (dt.tzid);
- e_cal_component_free_datetime (&dt);
- dt.value = &tt;
- dt.tzid = tzid;
- e_cal_component_set_dtstart (comp, &dt);
- g_free (tzid);
-
- e_cal_component_get_dtend (comp, &dt);
- if (dt.value->zone) {
- tt = icaltime_from_timet_with_zone (
+ tzid = dt ? g_strdup (e_cal_component_datetime_get_tzid (dt)) : NULL;
+ e_cal_component_datetime_free (dt);
+
+ dt = e_cal_component_datetime_new_take (tt, tzid);
+ e_cal_component_set_dtstart (comp, dt);
+ e_cal_component_datetime_free (dt);
+
+ dt = e_cal_component_get_dtend (comp);
+ if (dt)
+ tt = e_cal_component_datetime_get_value (dt);
+ if (dt && tt && i_cal_time_get_timezone (tt)) {
+ tt = i_cal_time_from_timet_with_zone (
event->comp_data->instance_end,
- dt.value->is_date,
- dt.value->zone);
+ i_cal_time_is_date (tt),
+ i_cal_time_get_timezone (tt));
} else {
- tt = icaltime_from_timet_with_zone (
+ tt = i_cal_time_from_timet_with_zone (
event->comp_data->instance_end,
- dt.value->is_date,
+ (dt && tt) ? i_cal_time_is_date (tt) : FALSE,
e_calendar_view_get_timezone (E_CALENDAR_VIEW
(week_view)));
}
- tzid = g_strdup (dt.tzid);
- e_cal_component_free_datetime (&dt);
- dt.value = &tt;
- dt.tzid = tzid;
- e_cal_component_set_dtend (comp, &dt);
- g_free (tzid);
-
- e_cal_component_set_rdate_list (comp, NULL);
- e_cal_component_set_rrule_list (comp, NULL);
- e_cal_component_set_exdate_list (comp, NULL);
- e_cal_component_set_exrule_list (comp, NULL);
+ tzid = dt ? g_strdup (e_cal_component_datetime_get_tzid (dt)) : NULL;
+ e_cal_component_datetime_free (dt);
+
+ dt = e_cal_component_datetime_new_take (tt, tzid);
+ e_cal_component_set_dtend (comp, dt);
+ e_cal_component_datetime_free (dt);
+
+ e_cal_component_set_rdates (comp, NULL);
+ e_cal_component_set_rrules (comp, NULL);
+ e_cal_component_set_exdates (comp, NULL);
+ e_cal_component_set_exrules (comp, NULL);
}
} else if (e_cal_component_is_instance (comp))
mod = E_CAL_OBJ_MOD_THIS;
@@ -4840,6 +4857,7 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
out:
+ e_cal_component_text_free (summary);
g_free (text);
g_object_unref (comp);
@@ -4914,16 +4932,15 @@ e_week_view_find_event_from_uid (EWeekView *week_view,
if (event->comp_data->client != client)
continue;
- u = icalcomponent_get_uid (event->comp_data->icalcomp);
+ u = i_cal_component_get_uid (event->comp_data->icalcomp);
if (u && !strcmp (uid, u)) {
if (rid && *rid) {
- r = icaltime_as_ical_string_r (icalcomponent_get_recurrenceid
(event->comp_data->icalcomp));
- if (!r || !*r)
- continue;
- if (strcmp (rid, r) != 0) {
+ r = e_cal_util_component_get_recurid_as_string (event->comp_data->icalcomp);
+ if (!r || !*r || strcmp (rid, r) != 0) {
g_free (r);
continue;
}
+
g_free (r);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]