[evolution/wip/mcrha/eds-libical-glib] Changes for src/plugins/ and most of the src/modules/
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/mcrha/eds-libical-glib] Changes for src/plugins/ and most of the src/modules/
- Date: Thu, 28 Mar 2019 17:26:38 +0000 (UTC)
commit ce3f023ffc29f1a3b291db5d6cb534811cc8322c
Author: Milan Crha <mcrha redhat com>
Date: Thu Mar 28 18:27:22 2019 +0100
Changes for src/plugins/ and most of the src/modules/
src/calendar/gui/comp-util.c | 2 +-
src/calendar/gui/e-cal-list-view.c | 10 +
src/calendar/gui/e-cal-list-view.h | 10 +-
src/e-util/test-source-selector.c | 32 +--
src/modules/alarm-notify/alarm-notify.c | 22 ++-
src/modules/calendar/e-cal-attachment-handler.c | 113 +++++------
src/modules/calendar/e-cal-base-shell-backend.c | 121 ++++--------
src/modules/calendar/e-cal-base-shell-sidebar.c | 25 +--
src/modules/calendar/e-cal-shell-content.c | 195 +++++++++---------
src/modules/calendar/e-cal-shell-view-actions.c | 219 +++++++++------------
src/modules/calendar/e-cal-shell-view-memopad.c | 20 +-
src/modules/calendar/e-cal-shell-view-private.c | 106 ++++++----
src/modules/calendar/e-cal-shell-view-taskpad.c | 24 +--
src/modules/calendar/e-cal-shell-view.c | 13 +-
src/modules/calendar/e-calendar-preferences.c | 34 ++--
src/modules/calendar/e-memo-shell-content.c | 25 ++-
src/modules/calendar/e-memo-shell-view-actions.c | 16 +-
src/modules/calendar/e-task-shell-content.c | 30 ++-
src/modules/calendar/e-task-shell-view-actions.c | 16 +-
src/modules/calendar/e-task-shell-view.c | 9 +-
.../composer-to-meeting/e-composer-to-meeting.c | 65 +++---
.../composer-to-meeting/e-meeting-to-composer.c | 64 +++---
src/modules/settings/e-settings-cal-model.c | 8 +-
src/modules/settings/e-settings-client-cache.c | 8 +-
src/modules/settings/e-settings-meeting-store.c | 8 +-
src/plugins/mail-to-task/mail-to-task.c | 134 +++++++------
src/plugins/pst-import/pst-importer.c | 183 +++++++++--------
src/plugins/publish-calendar/publish-format-fb.c | 26 +--
src/plugins/publish-calendar/publish-format-ical.c | 32 +--
src/plugins/save-calendar/CMakeLists.txt | 1 +
src/plugins/save-calendar/csv-format.c | 118 +++++------
src/plugins/save-calendar/format-handler.h | 1 +
src/plugins/save-calendar/ical-format.c | 32 +--
src/plugins/save-calendar/rdf-format.c | 116 +++++------
34 files changed, 890 insertions(+), 948 deletions(-)
---
diff --git a/src/calendar/gui/comp-util.c b/src/calendar/gui/comp-util.c
index 75676b929d..064e44aa71 100644
--- a/src/calendar/gui/comp-util.c
+++ b/src/calendar/gui/comp-util.c
@@ -272,7 +272,7 @@ cal_comp_is_on_server_sync (ECalComponent *comp,
/**
* cal_comp_is_icalcomp_on_server_sync:
* The same as cal_comp_is_on_server_sync(), only the component parameter is
- * icalcomponent, not the ECalComponent.
+ * ICalComponent, not the ECalComponent.
**/
gboolean
cal_comp_is_icalcomp_on_server_sync (ICalComponent *icomp,
diff --git a/src/calendar/gui/e-cal-list-view.c b/src/calendar/gui/e-cal-list-view.c
index 73d8b58a82..ee90c72ccc 100644
--- a/src/calendar/gui/e-cal-list-view.c
+++ b/src/calendar/gui/e-cal-list-view.c
@@ -648,6 +648,14 @@ e_cal_list_view_get_visible_time_range (ECalendarView *cal_view,
return FALSE;
}
+ETable *
+e_cal_list_view_get_table (ECalListView *cal_list_view)
+{
+ g_return_val_if_fail (E_IS_CAL_LIST_VIEW (cal_list_view), NULL);
+
+ return cal_list_view->priv->table;
+}
+
gboolean
e_cal_list_view_get_range_shown (ECalListView *cal_list_view,
GDate *start_date,
@@ -656,6 +664,8 @@ e_cal_list_view_get_range_shown (ECalListView *cal_list_view,
time_t first, last;
GDate end_date;
+ g_return_val_if_fail (E_IS_CAL_LIST_VIEW (cal_list_view), FALSE);
+
if (!e_cal_list_view_get_visible_time_range (E_CALENDAR_VIEW (cal_list_view), &first, &last))
return FALSE;
diff --git a/src/calendar/gui/e-cal-list-view.h b/src/calendar/gui/e-cal-list-view.h
index 72973f7c99..985955d4a0 100644
--- a/src/calendar/gui/e-cal-list-view.h
+++ b/src/calendar/gui/e-cal-list-view.h
@@ -69,12 +69,12 @@ struct _ECalListViewClass {
ECalendarViewClass parent_class;
};
-GType e_cal_list_view_get_type (void);
-ECalendarView *e_cal_list_view_new (ECalModel *cal_model);
-
-gboolean e_cal_list_view_get_range_shown (ECalListView *cal_list_view, GDate *start_date,
+GType e_cal_list_view_get_type (void);
+ECalendarView * e_cal_list_view_new (ECalModel *cal_model);
+ETable * e_cal_list_view_get_table (ECalListView *cal_list_view);
+gboolean e_cal_list_view_get_range_shown (ECalListView *cal_list_view,
+ GDate *start_date,
gint *days_shown);
-
gboolean e_cal_list_view_is_editing (ECalListView *eclv);
G_END_DECLS
diff --git a/src/e-util/test-source-selector.c b/src/e-util/test-source-selector.c
index f1bbb1197d..5677a1c9cf 100644
--- a/src/e-util/test-source-selector.c
+++ b/src/e-util/test-source-selector.c
@@ -270,12 +270,15 @@ cal_view_objects_added_cb (ECalClientView *client_view,
g_slist_length ((GSList *) objects));
for (link = (GSList *) objects; link; link = g_slist_next (link)) {
- icalcomponent *icalcomp = link->data;
+ ICalComponent *icomp = link->data;
- if (icalcomp)
- g_print ("%s\n -----------------------------\n", icalcomponent_as_ical_string
(icalcomp));
- else
+ if (icomp) {
+ gchar *str = i_cal_component_as_ical_string_r (icomp);
+ g_print ("%s\n -----------------------------\n", str);
+ g_free (str);
+ } else {
g_print ("\tnull\n");
+ }
}
}
@@ -290,11 +293,13 @@ cal_view_objects_modified_cb (ECalClientView *client_view,
g_slist_length ((GSList *) objects));
for (link = (GSList *) objects; link; link = g_slist_next (link)) {
- icalcomponent *icalcomp = link->data;
+ ICalComponent *icomp = link->data;
- if (icalcomp)
- g_print ("%s\n -----------------------------\n", icalcomponent_as_ical_string
(icalcomp));
- else
+ if (icomp) {
+ gchar *str = i_cal_component_as_ical_string_r (icomp);
+ g_print ("%s\n -----------------------------\n", str);
+ g_free (str);
+ } else
g_print ("\tnull\n");
}
}
@@ -458,18 +463,19 @@ create_view_clicked_cb (GtkWidget *button,
gchar *expr = NULL;
if (e_cal_client_get_source_type (E_CAL_CLIENT (client)) == E_CAL_CLIENT_SOURCE_TYPE_EVENTS) {
- struct icaltimetype tt;
+ ICalTime *tt;
gchar *start, *end;
- tt = icaltime_today ();
- start = isodate_from_time_t (icaltime_as_timet (tt));
- icaltime_adjust (&tt, 14, 0, 0, 0);
- end = isodate_from_time_t (icaltime_as_timet (tt));
+ tt = i_cal_time_today ();
+ start = isodate_from_time_t (i_cal_time_as_timet (tt));
+ i_cal_time_adjust (tt, 14, 0, 0, 0);
+ end = isodate_from_time_t (i_cal_time_as_timet (tt));
expr = g_strdup_printf (
"(occur-in-time-range? (make-time \"%s\") (make-time \"%s\") \"UTC\")",
start, end);
+ g_clear_object (&tt);
g_free (start);
g_free (end);
}
diff --git a/src/modules/alarm-notify/alarm-notify.c b/src/modules/alarm-notify/alarm-notify.c
index e3cdaba2ba..7a374f66da 100644
--- a/src/modules/alarm-notify/alarm-notify.c
+++ b/src/modules/alarm-notify/alarm-notify.c
@@ -66,7 +66,7 @@ alarm_notify_module_map_string_to_icaltimezone (GValue *value,
{
GSettings *settings;
const gchar *location = NULL;
- icaltimezone *timezone = NULL;
+ ICalTimezone *timezone = NULL;
settings = e_util_ref_settings ("org.gnome.evolution.calendar");
@@ -76,12 +76,12 @@ alarm_notify_module_map_string_to_icaltimezone (GValue *value,
location = g_variant_get_string (variant, NULL);
if (location && *location)
- timezone = icaltimezone_get_builtin_timezone (location);
+ timezone = i_cal_timezone_get_builtin_timezone (location);
if (!timezone)
- timezone = icaltimezone_get_utc_timezone ();
+ timezone = i_cal_timezone_get_utc_timezone ();
- g_value_set_boxed (value, timezone);
+ g_value_set_object (value, timezone);
g_object_unref (settings);
@@ -91,7 +91,7 @@ alarm_notify_module_map_string_to_icaltimezone (GValue *value,
static void
alarm_notify_module_format_time_cb (EReminderWatcher *watcher,
const EReminderData *rd,
- struct icaltimetype *itt,
+ ICalTime *itt,
gchar **inout_buffer,
gint buffer_size)
{
@@ -105,7 +105,7 @@ alarm_notify_module_format_time_cb (EReminderWatcher *watcher,
g_return_if_fail (buffer_size > 0);
tm = e_cal_util_icaltime_to_tm (itt);
- text = e_datetime_format_format_tm ("calendar", "table", itt->is_date ? DTFormatKindDate :
DTFormatKindDateTime, &tm);
+ text = e_datetime_format_format_tm ("calendar", "table", i_cal_time_is_date (itt) ? DTFormatKindDate
: DTFormatKindDateTime, &tm);
if (text) {
g_snprintf (*inout_buffer, buffer_size, "%s", text);
@@ -118,15 +118,17 @@ alarm_notify_module_row_activated_cb (ERemindersWidget *reminders,
const EReminderData *rd,
gpointer user_data)
{
+ ECalComponent *comp;
const gchar *scheme = NULL;
const gchar *comp_uid = NULL;
g_return_val_if_fail (E_IS_REMINDERS_WIDGET (reminders), FALSE);
g_return_val_if_fail (rd != NULL, FALSE);
- e_cal_component_get_uid (rd->component, &comp_uid);
+ comp = e_reminder_data_get_component (rd);
+ comp_uid = e_cal_component_get_uid (comp);
- switch (e_cal_component_get_vtype (rd->component)) {
+ switch (e_cal_component_get_vtype (comp)) {
case E_CAL_COMPONENT_EVENT:
scheme = "calendar:";
break;
@@ -140,7 +142,7 @@ alarm_notify_module_row_activated_cb (ERemindersWidget *reminders,
break;
}
- if (scheme && comp_uid && rd->source_uid) {
+ if (scheme && comp_uid && e_reminder_data_get_source_uid (rd)) {
GString *cmd;
gchar *tmp;
GError *error = NULL;
@@ -152,7 +154,7 @@ alarm_notify_module_row_activated_cb (ERemindersWidget *reminders,
g_string_append (cmd, scheme);
g_string_append (cmd, "///?");
- tmp = g_uri_escape_string (rd->source_uid, NULL, TRUE);
+ tmp = g_uri_escape_string (e_reminder_data_get_source_uid (rd), NULL, TRUE);
g_string_append (cmd, "source-uid=");
g_string_append (cmd, tmp);
g_free (tmp);
diff --git a/src/modules/calendar/e-cal-attachment-handler.c b/src/modules/calendar/e-cal-attachment-handler.c
index 62112e3258..b3e7e0faee 100644
--- a/src/modules/calendar/e-cal-attachment-handler.c
+++ b/src/modules/calendar/e-cal-attachment-handler.c
@@ -42,7 +42,7 @@ struct _ECalAttachmentHandlerPrivate {
struct _ImportContext {
ECalClient *client;
- icalcomponent *component;
+ ICalComponent *component;
ECalClientSourceType source_type;
};
@@ -59,15 +59,15 @@ static const gchar *ui =
" </popup>"
"</ui>";
-static icalcomponent *
+static ICalComponent *
attachment_handler_get_component (EAttachment *attachment)
{
CamelDataWrapper *wrapper;
CamelMimePart *mime_part;
CamelStream *stream;
GByteArray *buffer;
- icalcomponent *component;
- const gchar *key = "__icalcomponent__";
+ ICalComponent *component;
+ const gchar *key = "__ICalComponent__";
component = g_object_get_data (G_OBJECT (attachment), key);
if (component != NULL)
@@ -109,9 +109,7 @@ attachment_handler_get_component (EAttachment *attachment)
if (component == NULL)
return NULL;
- g_object_set_data_full (
- G_OBJECT (attachment), key, component,
- (GDestroyNotify) icalcomponent_free);
+ g_object_set_data_full (G_OBJECT (attachment), key, component, g_object_unref);
return component;
}
@@ -119,7 +117,7 @@ attachment_handler_get_component (EAttachment *attachment)
typedef struct {
EShell *shell;
ESource *source;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
const gchar *extension_name;
} ImportComponentData;
@@ -131,8 +129,7 @@ import_component_data_free (gpointer ptr)
if (icd) {
g_clear_object (&icd->shell);
g_clear_object (&icd->source);
- if (icd->icalcomp)
- icalcomponent_free (icd->icalcomp);
+ g_clear_object (&icd->icomp);
g_free (icd);
}
}
@@ -144,9 +141,9 @@ import_component_thread (EAlertSinkThreadJobData *job_data,
GError **error)
{
ImportComponentData *icd = user_data;
- icalcomponent_kind need_kind = ICAL_ANY_COMPONENT;
- icalcomponent *subcomp, *vcalendar;
- icalcompiter iter;
+ ICalComponentKind need_kind = I_CAL_ANY_COMPONENT;
+ ICalComponent *subcomp, *vcalendar;
+ ICalCompIter *iter;
EClient *e_client;
ECalClient *client = NULL;
@@ -160,60 +157,62 @@ import_component_thread (EAlertSinkThreadJobData *job_data,
return;
if (g_str_equal (icd->extension_name, E_SOURCE_EXTENSION_CALENDAR))
- need_kind = ICAL_VEVENT_COMPONENT;
+ need_kind = I_CAL_VEVENT_COMPONENT;
else if (g_str_equal (icd->extension_name, E_SOURCE_EXTENSION_MEMO_LIST))
- need_kind = ICAL_VJOURNAL_COMPONENT;
+ need_kind = I_CAL_VJOURNAL_COMPONENT;
else if (g_str_equal (icd->extension_name, E_SOURCE_EXTENSION_TASK_LIST))
- need_kind = ICAL_VTODO_COMPONENT;
+ need_kind = I_CAL_VTODO_COMPONENT;
- if (need_kind == ICAL_ANY_COMPONENT) {
+ if (need_kind == I_CAL_ANY_COMPONENT) {
g_warn_if_reached ();
goto out;
}
- iter = icalcomponent_begin_component (icd->icalcomp, ICAL_ANY_COMPONENT);
+ iter = i_cal_component_begin_component (icd->icomp, I_CAL_ANY_COMPONENT);
+ subcomp = i_cal_comp_iter_deref (iter);
+ while (subcomp) {
+ ICalComponent *next_subcomp;
+ ICalComponentKind kind;
- while ((subcomp = icalcompiter_deref (&iter)) != NULL) {
- icalcomponent_kind kind;
+ next_subcomp = i_cal_comp_iter_next (iter);
- kind = icalcomponent_isa (subcomp);
- icalcompiter_next (&iter);
-
- if (kind == need_kind)
- continue;
-
- if (kind == ICAL_VTIMEZONE_COMPONENT)
- continue;
+ kind = i_cal_component_isa (subcomp);
+ if (kind != need_kind &&
+ kind != I_CAL_VTIMEZONE_COMPONENT) {
+ i_cal_component_remove_component (icd->icomp, subcomp);
+ }
- icalcomponent_remove_component (icd->icalcomp, subcomp);
- icalcomponent_free (subcomp);
+ g_object_unref (subcomp);
+ subcomp = next_subcomp;
}
- switch (icalcomponent_isa (icd->icalcomp)) {
- case ICAL_VEVENT_COMPONENT:
- case ICAL_VJOURNAL_COMPONENT:
- case ICAL_VTODO_COMPONENT:
+ g_clear_object (&iter);
+
+ switch (i_cal_component_isa (icd->icomp)) {
+ case I_CAL_VEVENT_COMPONENT:
+ case I_CAL_VJOURNAL_COMPONENT:
+ case I_CAL_VTODO_COMPONENT:
vcalendar = e_cal_util_new_top_level ();
- if (icalcomponent_get_method (icd->icalcomp) == ICAL_METHOD_CANCEL)
- icalcomponent_set_method (vcalendar, ICAL_METHOD_CANCEL);
+ if (i_cal_component_get_method (icd->icomp) == I_CAL_METHOD_CANCEL)
+ i_cal_component_set_method (vcalendar, I_CAL_METHOD_CANCEL);
else
- icalcomponent_set_method (vcalendar, ICAL_METHOD_PUBLISH);
- icalcomponent_add_component (vcalendar, icalcomponent_new_clone (icd->icalcomp));
+ i_cal_component_set_method (vcalendar, I_CAL_METHOD_PUBLISH);
+ i_cal_component_take_component (vcalendar, i_cal_component_new_clone (icd->icomp));
break;
- case ICAL_VCALENDAR_COMPONENT:
- vcalendar = icalcomponent_new_clone (icd->icalcomp);
- if (!icalcomponent_get_first_property (vcalendar, ICAL_METHOD_PROPERTY))
- icalcomponent_set_method (vcalendar, ICAL_METHOD_PUBLISH);
+ case I_CAL_VCALENDAR_COMPONENT:
+ vcalendar = i_cal_component_new_clone (icd->icomp);
+ if (!e_cal_util_component_has_property (vcalendar, I_CAL_METHOD_PROPERTY))
+ i_cal_component_set_method (vcalendar, I_CAL_METHOD_PUBLISH);
break;
default:
goto out;
}
- e_cal_client_receive_objects_sync (client, vcalendar, cancellable, error);
+ e_cal_client_receive_objects_sync (client, vcalendar, E_CAL_OPERATION_FLAG_NONE, cancellable, error);
- icalcomponent_free (vcalendar);
+ g_object_unref (vcalendar);
out:
g_clear_object (&client);
}
@@ -239,7 +238,7 @@ attachment_handler_run_dialog (GtkWindow *parent,
ESourceSelector *selector;
ESource *source;
const gchar *extension_name;
- icalcomponent *component;
+ ICalComponent *component;
switch (source_type) {
case E_CAL_CLIENT_SOURCE_TYPE_EVENTS:
@@ -322,12 +321,12 @@ attachment_handler_run_dialog (GtkWindow *parent,
if (source != NULL) {
EShellView *shell_view;
EActivity *activity;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
ImportComponentData *icd;
const gchar *description;
const gchar *alert_ident;
- icalcomp = attachment_handler_get_component (attachment);
+ icomp = attachment_handler_get_component (attachment);
switch (source_type) {
case E_CAL_CLIENT_SOURCE_TYPE_EVENTS:
@@ -353,7 +352,7 @@ attachment_handler_run_dialog (GtkWindow *parent,
icd = g_new0 (ImportComponentData, 1);
icd->shell = g_object_ref (shell);
icd->source = g_object_ref (source);
- icd->icalcomp = icalcomponent_new_clone (icalcomp);
+ icd->icomp = i_cal_component_new_clone (icomp);
icd->extension_name = extension_name;
activity = e_shell_view_submit_thread_job (shell_view, description, alert_ident,
@@ -444,9 +443,9 @@ cal_attachment_handler_update_actions (EAttachmentView *view)
EAttachment *attachment;
GtkAction *action;
GList *selected;
- icalcomponent *component;
- icalcomponent *subcomponent;
- icalcomponent_kind kind;
+ ICalComponent *component;
+ ICalComponent *subcomponent;
+ ICalComponentKind kind;
gboolean is_vevent = FALSE;
gboolean is_vjournal = FALSE;
gboolean is_vtodo = FALSE;
@@ -462,15 +461,17 @@ cal_attachment_handler_update_actions (EAttachmentView *view)
if (component == NULL)
goto exit;
- subcomponent = icalcomponent_get_inner (component);
+ subcomponent = i_cal_component_get_inner (component);
if (subcomponent == NULL)
goto exit;
- kind = icalcomponent_isa (subcomponent);
- is_vevent = (kind == ICAL_VEVENT_COMPONENT);
- is_vjournal = (kind == ICAL_VJOURNAL_COMPONENT);
- is_vtodo = (kind == ICAL_VTODO_COMPONENT);
+ kind = i_cal_component_isa (subcomponent);
+ is_vevent = (kind == I_CAL_VEVENT_COMPONENT);
+ is_vjournal = (kind == I_CAL_VJOURNAL_COMPONENT);
+ is_vtodo = (kind == I_CAL_VTODO_COMPONENT);
+
+ g_object_unref (subcomponent);
exit:
action = e_attachment_view_get_action (view, "import-to-calendar");
diff --git a/src/modules/calendar/e-cal-base-shell-backend.c b/src/modules/calendar/e-cal-base-shell-backend.c
index ba3b673203..bdc0c2468f 100644
--- a/src/modules/calendar/e-cal-base-shell-backend.c
+++ b/src/modules/calendar/e-cal-base-shell-backend.c
@@ -33,26 +33,6 @@
#include "e-cal-base-shell-view.h"
#include "e-cal-base-shell-backend.h"
-/*
- * FIXME: Remove this when there's a build time dependency on libical
- * 3.0.4 (where this is fixed). See
- * https://github.com/libical/libical/pull/335 and the implementation in
- * https://github.com/libical/libical/blob/master/src/libical/icalversion.h.cmake.
- */
-#if defined(ICAL_CHECK_VERSION) && defined(ICAL_MAJOR_VERSION) && defined(ICAL_MINOR_VERSION) &&
defined(ICAL_MICRO_VERSION)
-#undef ICAL_CHECK_VERSION
-#define ICAL_CHECK_VERSION(major,minor,micro) \
- (ICAL_MAJOR_VERSION > (major) || \
- (ICAL_MAJOR_VERSION == (major) && ICAL_MINOR_VERSION > (minor)) || \
- (ICAL_MAJOR_VERSION == (major) && ICAL_MINOR_VERSION == (minor) && \
- ICAL_MICRO_VERSION >= (micro)))
-#else
-#if defined(ICAL_CHECK_VERSION)
-#undef ICAL_CHECK_VERSION
-#endif
-#define ICAL_CHECK_VERSION(major,minor,micro) (0)
-#endif
-
#define E_CAL_BASE_SHELL_BACKEND_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE \
((obj), E_TYPE_CAL_BASE_SHELL_BACKEND, ECalBaseShellBackendPrivate))
@@ -264,42 +244,7 @@ e_cal_base_shell_backend_class_init (ECalBaseShellBackendClass *class)
static void
e_cal_base_shell_backend_init (ECalBaseShellBackend *cal_base_shell_backend)
{
-#if !ICAL_CHECK_VERSION(3, 0, 2)
- icalarray *builtin_timezones;
- gint ii;
-#endif
-
cal_base_shell_backend->priv = E_CAL_BASE_SHELL_BACKEND_GET_PRIVATE (cal_base_shell_backend);
-
-#if !ICAL_CHECK_VERSION(3, 0, 2)
- /* XXX Pre-load all built-in timezones in libical.
- *
- * Built-in time zones in libical 0.43 are loaded on demand,
- * but not in a thread-safe manner, resulting in a race when
- * multiple threads call icaltimezone_load_builtin_timezone()
- * on the same time zone. Until built-in time zone loading
- * in libical is made thread-safe, work around the issue by
- * loading all built-in time zones now, so libical's internal
- * time zone array will be fully populated before any threads
- * are spawned.
- *
- * This is apparently fixed with additional locking in
- * libical 3.0.1 and 3.0.2:
- * https://github.com/libical/libical/releases/tag/v3.0.1
- * https://github.com/libical/libical/releases/tag/v3.0.2
- */
- builtin_timezones = icaltimezone_get_builtin_timezones ();
- for (ii = 0; ii < builtin_timezones->num_elements; ii++) {
- icaltimezone *zone;
-
- zone = icalarray_element_at (builtin_timezones, ii);
-
- /* We don't care about the component right now,
- * we just need some function that will trigger
- * icaltimezone_load_builtin_timezone(). */
- icaltimezone_get_component (zone);
- }
-#endif
}
void
@@ -363,7 +308,7 @@ typedef struct {
gchar *comp_rid;
ECalClient *cal_client;
- icalcomponent *existing_icalcomp;
+ ICalComponent *existing_icomp;
} HandleUriData;
static void
@@ -380,15 +325,13 @@ handle_uri_data_free (gpointer ptr)
comp_editor = e_comp_editor_open_for_component (NULL,
e_shell_backend_get_shell (hud->shell_backend),
e_client_get_source (E_CLIENT (hud->cal_client)),
- hud->existing_icalcomp, 0);
+ hud->existing_icomp, 0);
if (comp_editor)
gtk_window_present (GTK_WINDOW (comp_editor));
}
- if (hud->existing_icalcomp)
- icalcomponent_free (hud->existing_icalcomp);
-
+ g_clear_object (&hud->existing_icomp);
g_clear_object (&hud->cal_client);
g_clear_object (&hud->shell_backend);
g_free (hud->source_uid);
@@ -444,7 +387,7 @@ cal_base_shell_backend_handle_uri_thread (EAlertSinkThreadJobData *job_data,
hud->cal_client = E_CAL_CLIENT (client);
if (!e_cal_client_get_object_sync (hud->cal_client, hud->comp_uid,
- hud->comp_rid, &hud->existing_icalcomp, cancellable, &local_error))
+ hud->comp_rid, &hud->existing_icomp, cancellable, &local_error))
g_clear_object (&hud->cal_client);
}
}
@@ -457,27 +400,28 @@ cal_base_shell_backend_handle_uri_thread (EAlertSinkThreadJobData *job_data,
static void
populate_g_date (GDate *date,
time_t utc_time,
- icaltimezone *zone)
+ ICalTimezone *zone)
{
- struct icaltimetype icaltm;
+ ICalTime *itt;
g_return_if_fail (date != NULL);
if ((gint) utc_time == -1)
return;
- icaltm = icaltime_from_timet_with_zone (utc_time, FALSE, zone);
+ itt = i_cal_time_from_timet_with_zone (utc_time, FALSE, zone);
- if (icaltime_is_null_time (icaltm) ||
- !icaltime_is_valid_time (icaltm))
- return;
+ if (itt && !i_cal_time_is_null_time (itt) &&
+ i_cal_time_is_valid_time (itt)) {
+ g_date_set_dmy (date, i_cal_time_get_day (itt), i_cal_time_get_month (itt),
i_cal_time_get_year (itt));
+ }
- g_date_set_dmy (date, icaltm.day, icaltm.month, icaltm.year);
+ g_clear_object (&itt);
}
static time_t
convert_time_from_isodate (const gchar *text,
- icaltimezone *use_date_zone)
+ ICalTimezone *use_date_zone)
{
time_t res;
@@ -487,10 +431,11 @@ convert_time_from_isodate (const gchar *text,
/* Is it date only? Then use the date zone to match the right day */
if (use_date_zone && strlen (text) == 8) {
- struct icaltimetype itt;
+ ICalTime *itt;
- itt = icaltime_from_timet_with_zone (res, TRUE, NULL);
- res = icaltime_as_timet_with_zone (itt, use_date_zone);
+ itt = i_cal_time_from_timet_with_zone (res, TRUE, NULL);
+ res = i_cal_time_as_timet_with_zone (itt, use_date_zone);
+ g_clear_object (&itt);
}
return res;
@@ -516,7 +461,7 @@ e_cal_base_shell_backend_util_handle_uri (EShellBackend *shell_backend,
GList *windows, *link;
GDate start_date;
GDate end_date;
- icaltimezone *zone = NULL;
+ ICalTimezone *zone = NULL;
const gchar *extension_name;
g_return_val_if_fail (E_IS_CAL_BASE_SHELL_BACKEND (shell_backend), FALSE);
@@ -557,13 +502,13 @@ e_cal_base_shell_backend_util_handle_uri (EShellBackend *shell_backend,
location = g_settings_get_string (settings, "timezone");
if (location != NULL) {
- zone = icaltimezone_get_builtin_timezone (location);
+ zone = i_cal_timezone_get_builtin_timezone (location);
g_free (location);
}
}
if (zone == NULL)
- zone = icaltimezone_get_utc_timezone ();
+ zone = i_cal_timezone_get_utc_timezone ();
g_object_unref (settings);
@@ -645,7 +590,7 @@ e_cal_base_shell_backend_util_handle_uri (EShellBackend *shell_backend,
if (new_ics) {
gchar *content = NULL;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
GError *error = NULL;
if (!g_file_get_contents (new_ics, &content, NULL, &error)) {
@@ -657,26 +602,26 @@ e_cal_base_shell_backend_util_handle_uri (EShellBackend *shell_backend,
goto exit;
}
- icalcomp = content ? icalcomponent_new_from_string (content) : NULL;
- if (!icalcomp) {
+ icomp = content ? i_cal_component_new_from_string (content) : NULL;
+ if (!icomp) {
g_warning ("Cannot create new ics: File '%s' doesn't contain valid iCalendar
component", new_ics);
g_free (content);
goto exit;
}
- if (icalcomponent_isa (icalcomp) == ICAL_VEVENT_COMPONENT &&
+ if (i_cal_component_isa (icomp) == I_CAL_VEVENT_COMPONENT &&
source_type != E_CAL_CLIENT_SOURCE_TYPE_EVENTS) {
g_warning ("Cannot create new ics: Expected %s, but got VEVENT", source_type ==
E_CAL_CLIENT_SOURCE_TYPE_TASKS ? "VTODO" : "VJOURNAL");
- } else if (icalcomponent_isa (icalcomp) == ICAL_VJOURNAL_COMPONENT &&
+ } else if (i_cal_component_isa (icomp) == I_CAL_VJOURNAL_COMPONENT &&
source_type != E_CAL_CLIENT_SOURCE_TYPE_MEMOS) {
g_warning ("Cannot create new ics: Expected %s, but got VJOURNAL", source_type ==
E_CAL_CLIENT_SOURCE_TYPE_TASKS ? "VTODO" : "VEVENT");
- } else if (icalcomponent_isa (icalcomp) == ICAL_VTODO_COMPONENT &&
+ } else if (i_cal_component_isa (icomp) == I_CAL_VTODO_COMPONENT &&
source_type != E_CAL_CLIENT_SOURCE_TYPE_TASKS) {
g_warning ("Cannot create new ics: Expected %s, but got VTODO", source_type ==
E_CAL_CLIENT_SOURCE_TYPE_MEMOS ? "VJOURNAL" : "VEVENT");
- } else if (icalcomponent_isa (icalcomp) != ICAL_VEVENT_COMPONENT &&
- icalcomponent_isa (icalcomp) != ICAL_VJOURNAL_COMPONENT &&
- icalcomponent_isa (icalcomp) != ICAL_VTODO_COMPONENT) {
- g_warning ("Cannot create new ics: Received unexpected component type '%s'",
icalcomponent_kind_to_string (icalcomponent_isa (icalcomp)));
+ } else if (i_cal_component_isa (icomp) != I_CAL_VEVENT_COMPONENT &&
+ i_cal_component_isa (icomp) != I_CAL_VJOURNAL_COMPONENT &&
+ i_cal_component_isa (icomp) != I_CAL_VTODO_COMPONENT) {
+ g_warning ("Cannot create new ics: Received unexpected component type '%s'",
i_cal_component_kind_to_string (i_cal_component_isa (icomp)));
} else {
ECompEditor *comp_editor;
ESource *source = NULL;
@@ -692,7 +637,7 @@ e_cal_base_shell_backend_util_handle_uri (EShellBackend *shell_backend,
flags = E_COMP_EDITOR_FLAG_IS_NEW | E_COMP_EDITOR_FLAG_ORGANIZER_IS_USER |
(attendees ? E_COMP_EDITOR_FLAG_WITH_ATTENDEES : 0);
- comp_editor = e_comp_editor_open_for_component (NULL, shell, source, icalcomp, flags);
+ comp_editor = e_comp_editor_open_for_component (NULL, shell, source, icomp, flags);
if (comp_editor)
gtk_window_present (GTK_WINDOW (comp_editor));
@@ -700,7 +645,7 @@ e_cal_base_shell_backend_util_handle_uri (EShellBackend *shell_backend,
g_clear_object (&source);
}
- icalcomponent_free (icalcomp);
+ g_object_unref (icomp);
g_free (content);
} else if (shell_window) {
HandleUriData *hud;
@@ -718,7 +663,7 @@ e_cal_base_shell_backend_util_handle_uri (EShellBackend *shell_backend,
hud->comp_uid = g_strdup (comp_uid);
hud->comp_rid = g_strdup (comp_rid);
hud->cal_client = NULL;
- hud->existing_icalcomp = NULL;
+ hud->existing_icomp = NULL;
registry = e_shell_get_registry (shell);
source = e_source_registry_ref_source (registry, source_uid);
diff --git a/src/modules/calendar/e-cal-base-shell-sidebar.c b/src/modules/calendar/e-cal-base-shell-sidebar.c
index a0aabc40ac..64d541081d 100644
--- a/src/modules/calendar/e-cal-base-shell-sidebar.c
+++ b/src/modules/calendar/e-cal-base-shell-sidebar.c
@@ -460,7 +460,7 @@ typedef struct {
ESource *source;
ESource *destination;
gboolean do_copy;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
EClientSelector *selector;
} TransferItemToData;
@@ -473,10 +473,7 @@ transfer_item_to_data_free (gpointer ptr)
g_clear_object (&titd->source);
g_clear_object (&titd->destination);
g_clear_object (&titd->selector);
-
- if (titd->icalcomp)
- icalcomponent_free (titd->icalcomp);
-
+ g_clear_object (&titd->icomp);
g_free (titd);
}
}
@@ -494,7 +491,7 @@ cal_base_shell_sidebar_transfer_thread (EAlertSinkThreadJobData *job_data,
g_return_if_fail (E_IS_SOURCE (titd->source));
g_return_if_fail (E_IS_SOURCE (titd->destination));
g_return_if_fail (E_IS_CLIENT_SELECTOR (titd->selector));
- g_return_if_fail (titd->icalcomp != NULL);
+ g_return_if_fail (titd->icomp != NULL);
source_client = e_client_selector_get_client_sync (
titd->selector, titd->source, FALSE, 30, cancellable, error);
@@ -509,7 +506,7 @@ cal_base_shell_sidebar_transfer_thread (EAlertSinkThreadJobData *job_data,
}
cal_comp_transfer_item_to_sync (E_CAL_CLIENT (source_client), E_CAL_CLIENT (destination_client),
- titd->icalcomp, titd->do_copy, cancellable, error);
+ titd->icomp, titd->do_copy, cancellable, error);
g_clear_object (&source_client);
g_clear_object (&destination_client);
@@ -523,7 +520,7 @@ e_cal_base_shell_sidebar_selector_data_dropped (ESourceSelector *selector,
guint info,
ECalBaseShellSidebar *sidebar)
{
- icalcomponent *icalcomp = NULL;
+ ICalComponent *icomp = NULL;
EActivity *activity;
EShellView *shell_view;
ESource *source = NULL;
@@ -549,9 +546,9 @@ e_cal_base_shell_sidebar_selector_data_dropped (ESourceSelector *selector,
goto exit;
source_uid = g_strdup (segments[0]);
- icalcomp = icalparser_parse_string (segments[1]);
+ icomp = i_cal_parser_parse_string (segments[1]);
- if (!icalcomp)
+ if (!icomp)
goto exit;
registry = e_source_selector_get_registry (selector);
@@ -591,10 +588,10 @@ e_cal_base_shell_sidebar_selector_data_dropped (ESourceSelector *selector,
titd->source = g_object_ref (source);
titd->destination = g_object_ref (destination);
titd->do_copy = do_copy;
- titd->icalcomp = icalcomp;
+ titd->icomp = icomp;
titd->selector = g_object_ref (selector);
- icalcomp = NULL;
+ icomp = NULL;
activity = e_shell_view_submit_thread_job (shell_view, message,
alert_ident, display_name, cal_base_shell_sidebar_transfer_thread,
@@ -603,9 +600,7 @@ e_cal_base_shell_sidebar_selector_data_dropped (ESourceSelector *selector,
g_clear_object (&activity);
exit:
- if (icalcomp)
- icalcomponent_free (icalcomp);
-
+ g_clear_object (&icomp);
g_clear_object (&source);
g_free (message);
g_free (source_uid);
diff --git a/src/modules/calendar/e-cal-shell-content.c b/src/modules/calendar/e-cal-shell-content.c
index cf0f397054..fa9c1ffc08 100644
--- a/src/modules/calendar/e-cal-shell-content.c
+++ b/src/modules/calendar/e-cal-shell-content.c
@@ -93,12 +93,16 @@ G_DEFINE_DYNAMIC_TYPE (ECalShellContent, e_cal_shell_content, E_TYPE_CAL_BASE_SH
static time_t
convert_to_local_zone (time_t tm,
- icaltimezone *from_zone)
+ ICalTimezone *from_zone)
{
- struct icaltimetype tt;
+ ICalTime *itt;
+ time_t tt;
- tt = icaltime_from_timet_with_zone (tm, FALSE, from_zone);
- return icaltime_as_timet (tt);
+ itt = i_cal_time_from_timet_with_zone (tm, FALSE, from_zone);
+ tt = i_cal_time_as_timet (itt);
+ g_clear_object (&itt);
+
+ return tt;
}
static void
@@ -118,7 +122,7 @@ cal_shell_content_update_model_and_current_view_times (ECalShellContent *cal_she
gint syy, smm, sdd, eyy, emm, edd;
time_t visible_range_start, visible_range_end;
gboolean filters_updated = FALSE;
- icaltimezone *zone;
+ ICalTimezone *zone;
gchar *cal_filter;
g_return_if_fail (E_IS_CAL_SHELL_CONTENT (cal_shell_content));
@@ -229,7 +233,7 @@ e_cal_shell_content_change_view (ECalShellContent *cal_shell_content,
EShellView *shell_view;
ECalendar *calendar;
ECalModel *model;
- icaltimezone *zone;
+ ICalTimezone *zone;
time_t view_start_tt, view_end_tt;
gboolean view_changed = FALSE;
gint selected_days;
@@ -374,7 +378,7 @@ static void
cal_shell_content_change_selection_in_current_view (ECalShellContent *cal_shell_content,
time_t sel_start_tt,
time_t sel_end_tt,
- icaltimezone *zone)
+ ICalTimezone *zone)
{
g_return_if_fail (E_IS_CAL_SHELL_CONTENT (cal_shell_content));
@@ -390,8 +394,15 @@ cal_shell_content_change_selection_in_current_view (ECalShellContent *cal_shell_
time_t current_sel_start = (time_t) -1, current_sel_end = (time_t) -1;
if (e_calendar_view_get_selected_time_range (view, ¤t_sel_start,
¤t_sel_end)) {
- current_sel_start = icaltime_as_timet_with_zone
(icaltime_from_timet_with_zone (current_sel_start, 0, zone), NULL);
- current_sel_end = icaltime_as_timet_with_zone (icaltime_from_timet_with_zone
(current_sel_end, 0, zone), NULL);
+ ICalTime *itt;
+
+ itt = i_cal_time_from_timet_with_zone (current_sel_start, 0, zone);
+ current_sel_start = i_cal_time_as_timet_with_zone (itt, NULL);
+ g_clear_object (&itt);
+
+ itt = i_cal_time_from_timet_with_zone (current_sel_end, 0, zone);
+ current_sel_end = i_cal_time_as_timet_with_zone (itt, NULL);
+ g_clear_object (&itt);
sel_start_tt += current_sel_start % (24 * 60 * 60);
sel_end_tt += current_sel_end % (24 * 60 * 60);
@@ -408,7 +419,7 @@ cal_shell_content_datepicker_selection_changed_cb (ECalendarItem *calitem,
{
GDate sel_start, sel_end;
guint32 selected_days, start_julian, end_julian;
- icaltimezone *zone;
+ ICalTimezone *zone;
time_t sel_start_tt, sel_end_tt;
g_return_if_fail (E_IS_CAL_SHELL_CONTENT (cal_shell_content));
@@ -636,7 +647,7 @@ cal_shell_content_current_view_id_changed_cb (ECalShellContent *cal_shell_conten
if (cal_shell_content->priv->previous_selected_start_time != -1 &&
cal_shell_content->priv->previous_selected_end_time != -1) {
- icaltimezone *zone;
+ ICalTimezone *zone;
zone = e_cal_model_get_timezone (model);
time_to_gdate_with_zone (&sel_start, cal_shell_content->priv->previous_selected_start_time,
zone);
@@ -722,7 +733,7 @@ cal_shell_content_display_view_cb (ECalShellContent *cal_shell_content,
calendar_view = cal_shell_content->priv->views[view_kind];
gal_view_etable_attach_table (
GAL_VIEW_ETABLE (gal_view),
- E_CAL_LIST_VIEW (calendar_view)->table);
+ e_cal_list_view_get_table (E_CAL_LIST_VIEW (calendar_view)));
} else if (gal_view_type == GAL_TYPE_VIEW_CALENDAR_DAY) {
view_kind = E_CAL_VIEW_KIND_DAY;
@@ -852,75 +863,79 @@ cal_shell_content_load_table_state (EShellContent *shell_content,
g_free (filename);
}
-static icalproperty *
-cal_shell_content_get_attendee_prop (icalcomponent *icalcomp,
+static ICalProperty *
+cal_shell_content_get_attendee_prop (ICalComponent *icomp,
const gchar *address)
{
- icalproperty *prop;
+ ICalProperty *prop;
if (address == NULL || *address == '\0')
return NULL;
- prop = icalcomponent_get_first_property (
- icalcomp, ICAL_ATTENDEE_PROPERTY);
-
- while (prop != NULL) {
+ for (prop = i_cal_component_get_first_property (icomp, I_CAL_ATTENDEE_PROPERTY);
+ prop;
+ g_object_unref (prop), prop = i_cal_component_get_next_property (icomp,
I_CAL_ATTENDEE_PROPERTY)) {
const gchar *attendee;
- attendee = icalproperty_get_attendee (prop);
+ attendee = itip_strip_mailto (i_cal_property_get_attendee (prop));
- if (g_str_equal (itip_strip_mailto (attendee), address))
+ if (attendee && g_ascii_strcasecmp (attendee, address) == 0)
return prop;
-
- prop = icalcomponent_get_next_property (
- icalcomp, ICAL_ATTENDEE_PROPERTY);
}
return NULL;
}
static gboolean
-cal_shell_content_icalcomp_is_delegated (icalcomponent *icalcomp,
- const gchar *user_email)
+cal_shell_content_icomp_is_delegated (ICalComponent *icomp,
+ const gchar *user_email)
{
- icalproperty *prop;
- icalparameter *param;
- const gchar *delto = NULL;
+ ICalProperty *prop;
+ ICalParameter *param;
+ gchar *delto = NULL;
gboolean is_delegated = FALSE;
- prop = cal_shell_content_get_attendee_prop (icalcomp, user_email);
+ prop = cal_shell_content_get_attendee_prop (icomp, user_email);
- if (prop != NULL) {
- param = icalproperty_get_first_parameter (
- prop, ICAL_DELEGATEDTO_PARAMETER);
- if (param != NULL) {
- delto = icalparameter_get_delegatedto (param);
- delto = itip_strip_mailto (delto);
+ if (prop) {
+ param = i_cal_property_get_first_parameter (prop, I_CAL_DELEGATEDTO_PARAMETER);
+ if (param) {
+ delto = g_strdup (itip_strip_mailto (i_cal_parameter_get_delegatedto (param)));
+ g_object_unref (param);
}
+
+ g_object_unref (prop);
} else
return FALSE;
- prop = cal_shell_content_get_attendee_prop (icalcomp, delto);
+ prop = cal_shell_content_get_attendee_prop (icomp, delto);
- if (prop != NULL) {
- const gchar *delfrom = NULL;
- icalparameter_partstat status = ICAL_PARTSTAT_NONE;
+ if (prop) {
+ gchar *delfrom = NULL;
+ ICalParameterPartstat partstat = I_CAL_PARTSTAT_NONE;
- param = icalproperty_get_first_parameter (
- prop, ICAL_DELEGATEDFROM_PARAMETER);
- if (param != NULL) {
- delfrom = icalparameter_get_delegatedfrom (param);
- delfrom = itip_strip_mailto (delfrom);
+ param = i_cal_property_get_first_parameter (prop, I_CAL_DELEGATEDFROM_PARAMETER);
+ if (param) {
+ delfrom = g_strdup (itip_strip_mailto (i_cal_parameter_get_delegatedfrom (param)));
+ g_object_unref (param);
}
- param = icalproperty_get_first_parameter (
- prop, ICAL_PARTSTAT_PARAMETER);
- if (param != NULL)
- status = icalparameter_get_partstat (param);
- is_delegated =
- (status != ICAL_PARTSTAT_DECLINED) &&
- (g_strcmp0 (delfrom, user_email) == 0);
+
+ param = i_cal_property_get_first_parameter (prop, I_CAL_PARTSTAT_PARAMETER);
+ if (param) {
+ partstat = i_cal_parameter_get_partstat (param);
+ g_object_unref (param);
+ }
+
+ is_delegated = delfrom && user_email &&
+ partstat != I_CAL_PARTSTAT_DECLINED &&
+ g_ascii_strcasecmp (delfrom, user_email) == 0;
+
+ g_object_unref (prop);
+ g_free (delfrom);
}
+ g_free (delto);
+
return is_delegated;
}
@@ -966,32 +981,32 @@ cal_shell_content_check_state (EShellContent *shell_content)
ECalClient *client;
ECalComponent *comp;
gchar *user_email;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
const gchar *capability;
gboolean cap_delegate_supported;
gboolean cap_delegate_to_many;
- gboolean icalcomp_is_delegated;
+ gboolean icomp_is_delegated;
gboolean read_only;
if (!is_comp_data_valid (event))
continue;
client = event->comp_data->client;
- icalcomp = event->comp_data->icalcomp;
+ icomp = event->comp_data->icalcomp;
read_only = e_client_is_readonly (E_CLIENT (client));
selection_is_editable &= !read_only;
selection_is_instance |=
- e_cal_util_component_is_instance (icalcomp);
+ e_cal_util_component_is_instance (icomp);
selection_is_meeting =
(n_selected == 1) &&
- e_cal_util_component_has_attendee (icalcomp);
+ e_cal_util_component_has_attendee (icomp);
selection_is_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);
/* XXX The rest of this is rather expensive and
* only applies if a single event is selected,
@@ -1002,14 +1017,11 @@ cal_shell_content_check_state (EShellContent *shell_content)
/* XXX This probably belongs in comp-util.c. */
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (
- comp, icalcomponent_new_clone (icalcomp));
- user_email = itip_get_comp_attendee (
- registry, comp, client);
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (icomp));
+ user_email = itip_get_comp_attendee (registry, comp, client);
selection_is_organizer =
- e_cal_util_component_has_organizer (icalcomp) &&
+ e_cal_util_component_has_organizer (icomp) &&
itip_organizer_is_user (registry, comp, client);
capability = E_CAL_STATIC_CAPABILITY_DELEGATE_SUPPORTED;
@@ -1022,16 +1034,14 @@ cal_shell_content_check_state (EShellContent *shell_content)
e_client_check_capability (
E_CLIENT (client), capability);
- icalcomp_is_delegated =
- (user_email != NULL) &&
- cal_shell_content_icalcomp_is_delegated (
- icalcomp, user_email);
+ icomp_is_delegated = user_email != NULL &&
+ cal_shell_content_icomp_is_delegated (icomp, user_email);
selection_can_delegate =
cap_delegate_supported &&
(cap_delegate_to_many ||
(!selection_is_organizer &&
- !icalcomp_is_delegated));
+ !icomp_is_delegated));
g_free (user_email);
g_object_unref (comp);
@@ -1074,7 +1084,9 @@ cal_shell_content_get_default_time (ECalModel *model,
gpointer user_data)
{
ECalShellContent *cal_shell_content = user_data;
- icaltimezone *zone;
+ ICalTimezone *zone;
+ ICalTime *itt;
+ time_t tt;
g_return_val_if_fail (model != NULL, 0);
g_return_val_if_fail (E_IS_CAL_SHELL_CONTENT (cal_shell_content), 0);
@@ -1090,8 +1102,11 @@ cal_shell_content_get_default_time (ECalModel *model,
}
zone = e_cal_model_get_timezone (model);
+ itt = i_cal_time_current_time_with_zone (zone);
+ tt = i_cal_time_as_timet_with_zone (itt, zone);
+ g_clear_object (&itt);
- return icaltime_as_timet_with_zone (icaltime_current_time_with_zone (zone), zone);
+ return tt;
}
static void
@@ -1104,10 +1119,10 @@ update_adjustment (ECalShellContent *cal_shell_content,
GDate first_day_shown;
ECalModel *model;
gint week_offset;
- struct icaltimetype start_tt = icaltime_null_time ();
+ ICalTime *start_tt = NULL;
+ ICalTimezone *timezone;
time_t lower;
guint32 old_first_day_julian, new_first_day_julian;
- icaltimezone *timezone;
gdouble value;
e_week_view_get_first_day_shown (week_view, &first_day_shown);
@@ -1136,13 +1151,16 @@ update_adjustment (ECalShellContent *cal_shell_content,
return;
/* Convert it to a time_t. */
- start_tt.year = g_date_get_year (&start_date);
- start_tt.month = g_date_get_month (&start_date);
- start_tt.day = g_date_get_day (&start_date);
+ start_tt = i_cal_time_null_time ();
+ i_cal_time_set_date (start_tt,
+ g_date_get_year (&start_date),
+ g_date_get_month (&start_date),
+ g_date_get_day (&start_date));
model = e_cal_base_shell_content_get_model (E_CAL_BASE_SHELL_CONTENT (cal_shell_content));
timezone = e_cal_model_get_timezone (model);
- lower = icaltime_as_timet_with_zone (start_tt, timezone);
+ lower = i_cal_time_as_timet_with_zone (start_tt, timezone);
+ g_clear_object (&start_tt);
end_date = start_date;
if (move_by_week) {
@@ -1975,8 +1993,8 @@ cal_shell_content_resubscribe (ECalendarView *cal_view,
data_model = e_cal_model_get_data_model (model);
subscriber = E_CAL_DATA_MODEL_SUBSCRIBER (model);
- is_tasks_or_memos = e_cal_model_get_component_kind (model) == ICAL_VJOURNAL_COMPONENT ||
- e_cal_model_get_component_kind (model) == ICAL_VTODO_COMPONENT;
+ is_tasks_or_memos = e_cal_model_get_component_kind (model) == I_CAL_VJOURNAL_COMPONENT ||
+ e_cal_model_get_component_kind (model) == I_CAL_VTODO_COMPONENT;
if ((!is_tasks_or_memos && e_calendar_view_get_visible_time_range (cal_view, &range_start,
&range_end)) ||
e_cal_data_model_get_subscriber_range (data_model, subscriber, &range_start, &range_end)) {
@@ -2117,7 +2135,7 @@ e_cal_shell_content_get_current_range (ECalShellContent *cal_shell_content,
time_t *range_start,
time_t *range_end)
{
- icaltimezone *zone;
+ ICalTimezone *zone;
g_return_if_fail (E_IS_CAL_SHELL_CONTENT (cal_shell_content));
g_return_if_fail (range_start != NULL);
@@ -2205,8 +2223,8 @@ e_cal_shell_content_move_view_range (ECalShellContent *cal_shell_content,
ECalDataModel *data_model;
EShellSidebar *shell_sidebar;
EShellView *shell_view;
- struct icaltimetype tt;
- icaltimezone *zone;
+ ICalTime *tt;
+ ICalTimezone *zone;
GDate date;
g_return_if_fail (E_IS_CAL_SHELL_CONTENT (cal_shell_content));
@@ -2230,8 +2248,9 @@ e_cal_shell_content_move_view_range (ECalShellContent *cal_shell_content,
cal_shell_content_move_view_range_relative (cal_shell_content, +1);
break;
case E_CALENDAR_VIEW_MOVE_TO_TODAY:
- tt = icaltime_current_time_with_zone (zone);
- g_date_set_dmy (&date, tt.day, tt.month, tt.year);
+ tt = i_cal_time_current_time_with_zone (zone);
+ g_date_set_dmy (&date, i_cal_time_get_day (tt), i_cal_time_get_month (tt),
i_cal_time_get_year (tt));
+ g_clear_object (&tt);
/* one-day selection takes care of the view range move with left view kind */
e_calendar_item_set_selection (e_calendar_get_item (calendar), &date, &date);
break;
@@ -2356,7 +2375,7 @@ e_cal_shell_content_update_filters (ECalShellContent *cal_shell_content,
data_model = e_cal_model_get_data_model (model);
if (start_range != 0 && end_range != 0) {
- icaltimezone *zone;
+ ICalTimezone *zone;
const gchar *default_tzloc = NULL;
time_t end = end_range;
gchar *filter;
@@ -2364,8 +2383,8 @@ e_cal_shell_content_update_filters (ECalShellContent *cal_shell_content,
gchar *iso_end;
zone = e_cal_data_model_get_timezone (data_model);
- if (zone && zone != icaltimezone_get_utc_timezone ())
- default_tzloc = icaltimezone_get_location (zone);
+ if (zone && zone != i_cal_timezone_get_utc_timezone ())
+ default_tzloc = i_cal_timezone_get_location (zone);
if (!default_tzloc)
default_tzloc = "";
diff --git a/src/modules/calendar/e-cal-shell-view-actions.c b/src/modules/calendar/e-cal-shell-view-actions.c
index 453aee2743..a225892b1c 100644
--- a/src/modules/calendar/e-cal-shell-view-actions.c
+++ b/src/modules/calendar/e-cal-shell-view-actions.c
@@ -195,7 +195,7 @@ cal_shell_view_actions_print_or_preview (ECalShellView *cal_shell_view,
if (E_IS_CAL_LIST_VIEW (cal_view)) {
ETable *table;
- table = E_CAL_LIST_VIEW (cal_view)->table;
+ table = e_cal_list_view_get_table (E_CAL_LIST_VIEW (cal_view));
print_table (table, _("Print"), _("Calendar"), print_action);
} else {
EPrintView print_view_type;
@@ -540,7 +540,7 @@ cal_shell_view_transfer_selected (ECalShellView *cal_shell_view,
ESource *destination_source = NULL;
ESourceRegistry *registry;
GList *selected, *link;
- GHashTable *by_source; /* ESource ~> GSList{icalcomponent} */
+ GHashTable *by_source; /* ESource ~> GSList{ICalComponent} */
GHashTableIter iter;
gpointer key, value;
@@ -576,7 +576,7 @@ cal_shell_view_transfer_selected (ECalShellView *cal_shell_view,
for (link = selected; link != NULL; link = g_list_next (link)) {
ECalendarViewEvent *event = link->data;
ESource *source;
- GSList *icalcomps;
+ GSList *icomps;
if (!event || !event->comp_data)
continue;
@@ -585,9 +585,9 @@ cal_shell_view_transfer_selected (ECalShellView *cal_shell_view,
if (!source)
continue;
- icalcomps = g_hash_table_lookup (by_source, source);
- icalcomps = g_slist_prepend (icalcomps, event->comp_data->icalcomp);
- g_hash_table_insert (by_source, source, icalcomps);
+ icomps = g_hash_table_lookup (by_source, source);
+ icomps = g_slist_prepend (icomps, event->comp_data->icalcomp);
+ g_hash_table_insert (by_source, source, icomps);
}
e_cal_ops_transfer_components (shell_view, e_calendar_view_get_model (calendar_view),
@@ -595,9 +595,9 @@ cal_shell_view_transfer_selected (ECalShellView *cal_shell_view,
g_hash_table_iter_init (&iter, by_source);
while (g_hash_table_iter_next (&iter, &key, &value)) {
- GSList *icalcomps = value;
+ GSList *icomps = value;
- g_slist_free (icalcomps);
+ g_slist_free (icomps);
}
g_hash_table_destroy (by_source);
@@ -631,8 +631,8 @@ action_event_delegate_cb (GtkAction *action,
ECalClient *client;
ECalModel *model;
GList *selected;
- icalcomponent *clone;
- icalproperty *property;
+ ICalComponent *clone;
+ ICalProperty *prop;
gboolean found = FALSE;
gchar *attendee;
@@ -651,63 +651,59 @@ action_event_delegate_cb (GtkAction *action,
return;
client = event->comp_data->client;
- clone = icalcomponent_new_clone (event->comp_data->icalcomp);
+ clone = i_cal_component_new_clone (event->comp_data->icalcomp);
/* Set the attendee status for the delegate. */
- component = e_cal_component_new ();
- e_cal_component_set_icalcomponent (
- component, icalcomponent_new_clone (clone));
+ component = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (clone));
- attendee = itip_get_comp_attendee (
- registry, component, client);
- property = icalcomponent_get_first_property (
- clone, ICAL_ATTENDEE_PROPERTY);
+ attendee = itip_get_comp_attendee (registry, component, client);
- while (property != NULL) {
+ for (prop = i_cal_component_get_first_property (clone, I_CAL_ATTENDEE_PROPERTY);
+ prop;
+ g_object_unref (prop), prop = i_cal_component_get_next_property (clone,
I_CAL_ATTENDEE_PROPERTY)) {
const gchar *candidate;
- candidate = icalproperty_get_attendee (property);
+ candidate = i_cal_property_get_attendee (prop);
candidate = itip_strip_mailto (candidate);
- if (g_ascii_strcasecmp (candidate, attendee) == 0) {
- icalparameter *parameter;
+ if (candidate && g_ascii_strcasecmp (candidate, attendee) == 0) {
+ ICalParameter *param;
- parameter = icalparameter_new_role (
- ICAL_ROLE_NONPARTICIPANT);
- icalproperty_set_parameter (property, parameter);
+ param = i_cal_parameter_new_role (I_CAL_ROLE_NONPARTICIPANT);
+ i_cal_property_set_parameter (prop, param);
+ g_clear_object (¶m);
- parameter = icalparameter_new_partstat (
- ICAL_PARTSTAT_DELEGATED);
- icalproperty_set_parameter (property, parameter);
+ param = i_cal_parameter_new_partstat (I_CAL_PARTSTAT_DELEGATED);
+ i_cal_property_set_parameter (prop, param);
+ g_clear_object (¶m);
found = TRUE;
break;
}
-
- property = icalcomponent_get_next_property (
- clone, ICAL_ATTENDEE_PROPERTY);
}
+ g_clear_object (&prop);
+
/* If the attendee is not already in the component, add it. */
if (!found) {
- icalparameter *parameter;
+ ICalParameter *param;
gchar *address;
address = g_strdup_printf ("MAILTO:%s", attendee);
- property = icalproperty_new_attendee (address);
- icalcomponent_add_property (clone, property);
+ prop = i_cal_property_new_attendee (address);
- parameter = icalparameter_new_role (ICAL_ROLE_NONPARTICIPANT);
- icalproperty_add_parameter (property, parameter);
+ param = i_cal_parameter_new_role (I_CAL_ROLE_NONPARTICIPANT);
+ i_cal_property_take_parameter (prop, param);
- parameter = icalparameter_new_cutype (ICAL_CUTYPE_INDIVIDUAL);
- icalproperty_add_parameter (property, parameter);
+ param = i_cal_parameter_new_cutype (I_CAL_CUTYPE_INDIVIDUAL);
+ i_cal_property_take_parameter (prop, param);
- parameter = icalparameter_new_rsvp (ICAL_RSVP_TRUE);
- icalproperty_add_parameter (property, parameter);
+ param = i_cal_parameter_new_rsvp (I_CAL_RSVP_TRUE);
+ i_cal_property_take_parameter (prop, param);
+ i_cal_component_take_property (clone, prop);
g_free (address);
}
@@ -718,7 +714,7 @@ action_event_delegate_cb (GtkAction *action,
calendar_view, event->comp_data->client, clone,
E_COMP_EDITOR_FLAG_WITH_ATTENDEES | E_COMP_EDITOR_FLAG_DELEGATE);
- icalcomponent_free (clone);
+ g_object_unref (clone);
g_list_free (selected);
}
@@ -757,7 +753,7 @@ action_event_forward_cb (GtkAction *action,
ECalendarViewEvent *event;
ECalComponent *component;
ECalClient *client;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
GList *selected;
cal_shell_content = cal_shell_view->priv->cal_shell_content;
@@ -772,9 +768,9 @@ action_event_forward_cb (GtkAction *action,
return;
client = event->comp_data->client;
- icalcomp = event->comp_data->icalcomp;
+ icomp = event->comp_data->icalcomp;
- component = e_cal_component_new_from_icalcomponent (icalcomponent_new_clone (icalcomp));
+ component = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (icomp));
g_return_if_fail (component != NULL);
itip_send_component_with_model (e_calendar_view_get_model (calendar_view),
@@ -782,7 +778,6 @@ action_event_forward_cb (GtkAction *action,
NULL, NULL, NULL, TRUE, FALSE, TRUE);
g_object_unref (component);
-
g_list_free (selected);
}
@@ -818,12 +813,11 @@ action_event_new_cb (GtkAction *action,
e_calendar_view_new_appointment (calendar_view);
}
-typedef struct
-{
+typedef struct {
ECalClient *client;
gchar *remove_uid;
gchar *remove_rid;
- icalcomponent *create_icalcomp;
+ ICalComponent *create_icomp;
} MakeMovableData;
static void
@@ -835,7 +829,7 @@ make_movable_data_free (gpointer ptr)
g_clear_object (&mmd->client);
g_free (mmd->remove_uid);
g_free (mmd->remove_rid);
- icalcomponent_free (mmd->create_icalcomp);
+ g_clear_object (&mmd->create_icomp);
g_free (mmd);
}
}
@@ -850,10 +844,10 @@ make_movable_thread (EAlertSinkThreadJobData *job_data,
g_return_if_fail (mmd != NULL);
- if (!e_cal_client_remove_object_sync (mmd->client, mmd->remove_uid, mmd->remove_rid,
E_CAL_OBJ_MOD_THIS, cancellable, error))
+ if (!e_cal_client_remove_object_sync (mmd->client, mmd->remove_uid, mmd->remove_rid,
E_CAL_OBJ_MOD_THIS, E_CAL_OPERATION_FLAG_NONE, cancellable, error))
return;
- e_cal_client_create_object_sync (mmd->client, mmd->create_icalcomp, NULL, cancellable, error);
+ e_cal_client_create_object_sync (mmd->client, mmd->create_icomp, E_CAL_OPERATION_FLAG_NONE, NULL,
cancellable, error);
}
static void
@@ -866,12 +860,11 @@ action_event_occurrence_movable_cb (GtkAction *action,
ECalendarViewEvent *event;
ECalComponent *exception_component;
ECalComponent *recurring_component;
- ECalComponentDateTime date;
+ ECalComponentDateTime *date;
ECalComponentId *id;
ECalClient *client;
- icalcomponent *icalcomp;
- icaltimetype itt;
- icaltimezone *timezone;
+ ICalComponent *icomp;
+ ICalTimezone *timezone;
GList *selected;
gchar *uid;
EActivity *activity;
@@ -892,56 +885,51 @@ action_event_occurrence_movable_cb (GtkAction *action,
return;
client = event->comp_data->client;
- icalcomp = event->comp_data->icalcomp;
+ icomp = event->comp_data->icalcomp;
/* For the recurring object, we add an exception
* to get rid of the instance. */
- recurring_component = e_cal_component_new ();
- e_cal_component_set_icalcomponent (
- recurring_component, icalcomponent_new_clone (icalcomp));
+ recurring_component = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (icomp));
id = e_cal_component_get_id (recurring_component);
/* For the unrecurred instance, we duplicate the original object,
* create a new UID for it, get rid of the recurrence rules, and
* set the start and end times to the instance times. */
- exception_component = e_cal_component_new ();
- e_cal_component_set_icalcomponent (
- exception_component, icalcomponent_new_clone (icalcomp));
+ exception_component = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (icomp));
uid = e_util_generate_uid ();
e_cal_component_set_uid (exception_component, uid);
g_free (uid);
e_cal_component_set_recurid (exception_component, NULL);
- e_cal_component_set_rdate_list (exception_component, NULL);
- e_cal_component_set_rrule_list (exception_component, NULL);
- e_cal_component_set_exdate_list (exception_component, NULL);
- e_cal_component_set_exrule_list (exception_component, NULL);
-
- date.value = &itt;
- date.tzid = icaltimezone_get_tzid (timezone);
- *date.value = icaltime_from_timet_with_zone (
- event->comp_data->instance_start, FALSE, timezone);
- cal_comp_set_dtstart_with_oldzone (client, exception_component, &date);
- *date.value = icaltime_from_timet_with_zone (
- event->comp_data->instance_end, FALSE, timezone);
- cal_comp_set_dtend_with_oldzone (client, exception_component, &date);
+ e_cal_component_set_rdates (exception_component, NULL);
+ e_cal_component_set_rrules (exception_component, NULL);
+ e_cal_component_set_exdates (exception_component, NULL);
+ e_cal_component_set_exrules (exception_component, NULL);
+
+ date = e_cal_component_datetime_new_take (i_cal_time_from_timet_with_zone
(event->comp_data->instance_start, FALSE, timezone),
+ timezone ? g_strdup (i_cal_timezone_get_tzid (timezone)) : NULL);
+ cal_comp_set_dtstart_with_oldzone (client, exception_component, date);
+ e_cal_component_datetime_take_value (date, i_cal_time_from_timet_with_zone
(event->comp_data->instance_end, FALSE, timezone));
+ cal_comp_set_dtend_with_oldzone (client, exception_component, date);
+ e_cal_component_datetime_free (date);
+
e_cal_component_commit_sequence (exception_component);
mmd = g_new0 (MakeMovableData, 1);
mmd->client = g_object_ref (client);
- mmd->remove_uid = g_strdup (id->uid);
- mmd->remove_rid = g_strdup (id->rid);
- mmd->create_icalcomp = icalcomponent_new_clone (e_cal_component_get_icalcomponent
(exception_component));
+ mmd->remove_uid = g_strdup (e_cal_component_id_get_uid (id));
+ mmd->remove_rid = g_strdup (e_cal_component_id_get_rid (id));
+ mmd->create_icomp = i_cal_component_new_clone (e_cal_component_get_icalcomponent
(exception_component));
activity = e_shell_view_submit_thread_job (E_SHELL_VIEW (cal_shell_view),
_("Making an occurrence movable"), "calendar:failed-make-movable",
NULL, make_movable_thread, mmd, make_movable_data_free);
g_clear_object (&activity);
- e_cal_component_free_id (id);
+ e_cal_component_id_free (id);
g_object_unref (recurring_component);
g_object_unref (exception_component);
g_list_free (selected);
@@ -968,7 +956,7 @@ action_event_edit_as_new_cb (GtkAction *action,
ECalendarView *calendar_view;
ECalendarViewEvent *event;
GList *selected;
- icalcomponent *clone;
+ ICalComponent *clone;
gchar *uid;
cal_shell_content = cal_shell_view->priv->cal_shell_content;
@@ -985,18 +973,17 @@ action_event_edit_as_new_cb (GtkAction *action,
return;
}
- clone = icalcomponent_new_clone (event->comp_data->icalcomp);
+ clone = i_cal_component_new_clone (event->comp_data->icalcomp);
uid = e_util_generate_uid ();
- icalcomponent_set_uid (clone, uid);
-
+ i_cal_component_set_uid (clone, uid);
g_free (uid);
e_calendar_view_open_event_with_flags (
calendar_view, event->comp_data->client, clone,
E_COMP_EDITOR_FLAG_IS_NEW);
- icalcomponent_free (clone);
+ g_clear_object (&clone);
g_list_free (selected);
}
@@ -1010,7 +997,7 @@ action_event_print_cb (GtkAction *action,
ECalComponent *component;
ECalModel *model;
ECalClient *client;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
GList *selected;
cal_shell_content = cal_shell_view->priv->cal_shell_content;
@@ -1026,12 +1013,10 @@ action_event_print_cb (GtkAction *action,
return;
client = event->comp_data->client;
- icalcomp = event->comp_data->icalcomp;
+ icomp = event->comp_data->icalcomp;
- component = e_cal_component_new ();
+ component = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (icomp));
- e_cal_component_set_icalcomponent (
- component, icalcomponent_new_clone (icalcomp));
print_comp (
component, client,
e_cal_model_get_timezone (model),
@@ -1039,7 +1024,6 @@ action_event_print_cb (GtkAction *action,
GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG);
g_object_unref (component);
-
g_list_free (selected);
}
@@ -1053,7 +1037,7 @@ cal_shell_view_actions_reply (ECalShellView *cal_shell_view,
ECalComponent *component;
ECalClient *client;
ESourceRegistry *registry;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
GList *selected;
cal_shell_content = cal_shell_view->priv->cal_shell_content;
@@ -1069,18 +1053,15 @@ cal_shell_view_actions_reply (ECalShellView *cal_shell_view,
return;
client = event->comp_data->client;
- icalcomp = event->comp_data->icalcomp;
+ icomp = event->comp_data->icalcomp;
- component = e_cal_component_new ();
+ component = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (icomp));
- e_cal_component_set_icalcomponent (
- component, icalcomponent_new_clone (icalcomp));
reply_to_calendar_comp (
registry, E_CAL_COMPONENT_METHOD_REPLY,
component, client, reply_all, NULL, NULL);
g_object_unref (component);
-
g_list_free (selected);
}
@@ -1110,7 +1091,7 @@ action_event_save_as_cb (GtkAction *action,
ECalendarView *calendar_view;
ECalendarViewEvent *event;
ECalClient *client;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
EActivity *activity;
GList *selected;
GFile *file;
@@ -1133,11 +1114,11 @@ action_event_save_as_cb (GtkAction *action,
return;
client = event->comp_data->client;
- icalcomp = event->comp_data->icalcomp;
+ icomp = event->comp_data->icalcomp;
/* Translators: Default filename part saving an event to a file when
* no summary is filed, the '.ics' extension is concatenated to it. */
- string = comp_util_suggest_filename (icalcomp, _("event"));
+ string = comp_util_suggest_filename (icomp, _("event"));
file = e_shell_run_save_dialog (
shell, _("Save as iCalendar"), string,
"*.ics:text/calendar", NULL, NULL);
@@ -1145,7 +1126,7 @@ action_event_save_as_cb (GtkAction *action,
if (file == NULL)
return;
- string = e_cal_client_get_component_as_string (client, icalcomp);
+ string = e_cal_client_get_component_as_string (client, icomp);
if (string == NULL) {
g_warning ("Could not convert item to a string");
goto exit;
@@ -1165,7 +1146,6 @@ action_event_save_as_cb (GtkAction *action,
exit:
g_object_unref (file);
-
g_list_free (selected);
}
@@ -1177,7 +1157,7 @@ edit_event_as (ECalShellView *cal_shell_view,
ECalendarView *calendar_view;
ECalendarViewEvent *event;
ECalClient *client;
- icalcomponent *icalcomp;
+ ICalComponent *icomp;
GList *selected;
cal_shell_content = cal_shell_view->priv->cal_shell_content;
@@ -1192,42 +1172,23 @@ edit_event_as (ECalShellView *cal_shell_view,
return;
client = event->comp_data->client;
- icalcomp = event->comp_data->icalcomp;
+ icomp = event->comp_data->icalcomp;
- if (!as_meeting && icalcomp) {
+ if (!as_meeting && icomp) {
/* remove organizer and all attendees */
- icalproperty *prop;
-
/* do it on a copy, as user can cancel changes */
- icalcomp = icalcomponent_new_clone (icalcomp);
+ icomp = i_cal_component_new_clone (icomp);
- prop = icalcomponent_get_first_property (
- icalcomp, ICAL_ATTENDEE_PROPERTY);
- while (prop != NULL) {
- icalcomponent_remove_property (icalcomp, prop);
- icalproperty_free (prop);
-
- prop = icalcomponent_get_first_property (
- icalcomp, ICAL_ATTENDEE_PROPERTY);
- }
-
- prop = icalcomponent_get_first_property (
- icalcomp, ICAL_ORGANIZER_PROPERTY);
- while (prop != NULL) {
- icalcomponent_remove_property (icalcomp, prop);
- icalproperty_free (prop);
-
- prop = icalcomponent_get_first_property (
- icalcomp, ICAL_ORGANIZER_PROPERTY);
- }
+ e_cal_util_component_remove_property_by_kind (icomp, I_CAL_ATTENDEE_PROPERTY, TRUE);
+ e_cal_util_component_remove_property_by_kind (icomp, I_CAL_ORGANIZER_PROPERTY, TRUE);
}
e_calendar_view_edit_appointment (
- calendar_view, client, icalcomp, as_meeting ?
+ calendar_view, client, icomp, as_meeting ?
EDIT_EVENT_FORCE_MEETING : EDIT_EVENT_FORCE_APPOINTMENT);
- if (!as_meeting && icalcomp) {
- icalcomponent_free (icalcomp);
+ if (!as_meeting && icomp) {
+ g_object_unref (icomp);
}
g_list_free (selected);
diff --git a/src/modules/calendar/e-cal-shell-view-memopad.c b/src/modules/calendar/e-cal-shell-view-memopad.c
index c74fe5fc86..74820efea5 100644
--- a/src/modules/calendar/e-cal-shell-view-memopad.c
+++ b/src/modules/calendar/e-cal-shell-view-memopad.c
@@ -46,7 +46,7 @@ action_calendar_memopad_forward_cb (GtkAction *action,
g_slist_free (list);
/* XXX We only forward the first selected memo. */
- comp = e_cal_component_new_from_icalcomponent (icalcomponent_new_clone (comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
g_return_if_fail (comp != NULL);
itip_send_component_with_model (e_memo_table_get_model (memo_table),
@@ -112,7 +112,7 @@ action_calendar_memopad_open_url_cb (GtkAction *action,
ECalShellContent *cal_shell_content;
EMemoTable *memo_table;
ECalModelComponent *comp_data;
- icalproperty *prop;
+ ICalProperty *prop;
const gchar *uri;
GSList *list;
@@ -128,12 +128,12 @@ action_calendar_memopad_open_url_cb (GtkAction *action,
g_slist_free (list);
/* XXX We only open the URI of the first selected memo. */
- prop = icalcomponent_get_first_property (
- comp_data->icalcomp, ICAL_URL_PROPERTY);
+ prop = i_cal_component_get_first_property (comp_data->icalcomp, I_CAL_URL_PROPERTY);
g_return_if_fail (prop != NULL);
- uri = icalproperty_get_url (prop);
+ uri = i_cal_property_get_url (prop);
e_show_uri (GTK_WINDOW (shell_window), uri);
+ g_object_unref (prop);
}
static void
@@ -145,7 +145,6 @@ action_calendar_memopad_print_cb (GtkAction *action,
ECalModelComponent *comp_data;
ECalComponent *comp;
ECalModel *model;
- icalcomponent *clone;
GSList *list;
cal_shell_content = cal_shell_view->priv->cal_shell_content;
@@ -158,9 +157,7 @@ action_calendar_memopad_print_cb (GtkAction *action,
g_slist_free (list);
/* XXX We only print the first selected memo. */
- comp = e_cal_component_new ();
- clone = icalcomponent_new_clone (comp_data->icalcomp);
- e_cal_component_set_icalcomponent (comp, clone);
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
print_comp (
comp, comp_data->client,
@@ -339,15 +336,12 @@ e_cal_shell_view_memopad_actions_update (ECalShellView *cal_shell_view)
list = e_memo_table_get_selected (memo_table);
for (iter = list; iter != NULL; iter = iter->next) {
ECalModelComponent *comp_data = iter->data;
- icalproperty *prop;
gboolean read_only;
read_only = e_client_is_readonly (E_CLIENT (comp_data->client));
editable &= !read_only;
- prop = icalcomponent_get_first_property (
- comp_data->icalcomp, ICAL_URL_PROPERTY);
- has_url |= (prop != NULL);
+ has_url |= e_cal_util_component_has_property (comp_data->icalcomp, I_CAL_URL_PROPERTY);
}
g_slist_free (list);
diff --git a/src/modules/calendar/e-cal-shell-view-private.c b/src/modules/calendar/e-cal-shell-view-private.c
index 06c5a2c47a..fcec8ac770 100644
--- a/src/modules/calendar/e-cal-shell-view-private.c
+++ b/src/modules/calendar/e-cal-shell-view-private.c
@@ -50,17 +50,20 @@ cal_shell_view_get_current_time (ECalendarItem *calitem,
ECalShellView *cal_shell_view)
{
ECalShellContent *cal_shell_content;
- struct icaltimetype tt;
- icaltimezone *timezone;
+ ICalTime *tt;
+ ICalTimezone *timezone;
ECalModel *model;
+ struct tm tm;
cal_shell_content = cal_shell_view->priv->cal_shell_content;
model = e_cal_base_shell_content_get_model (E_CAL_BASE_SHELL_CONTENT (cal_shell_content));
timezone = e_cal_model_get_timezone (model);
- tt = icaltime_from_timet_with_zone (time (NULL), FALSE, timezone);
+ tt = i_cal_time_from_timet_with_zone (time (NULL), FALSE, timezone);
+ tm = e_cal_util_icaltime_to_tm (tt);
+ g_clear_object (&tt);
- return e_cal_util_icaltime_to_tm (&tt);
+ return tm;
}
static void
@@ -612,44 +615,65 @@ cal_searching_instances_done_cb (gpointer user_data)
}
static gboolean
-cal_searching_got_instance_cb (ECalComponent *comp,
- time_t instance_start,
- time_t instance_end,
- gpointer user_data)
+cal_searching_got_instance_cb (ICalComponent *icomp,
+ ICalTime *instance_start,
+ ICalTime *instance_end,
+ gpointer user_data,
+ GCancellable *cancellable,
+ GError **error)
{
struct GenerateInstancesData *gid = user_data;
ECalShellViewPrivate *priv;
- ECalComponentDateTime dt;
- time_t *value;
+ ICalTime *dtstart = NULL;
+ ICalProperty *prop;
+ time_t *value, start = (time_t) 0;
g_return_val_if_fail (gid != NULL, FALSE);
- if (g_cancellable_is_cancelled (gid->cancellable))
+ if (g_cancellable_is_cancelled (cancellable))
return FALSE;
g_return_val_if_fail (gid->cal_shell_view != NULL, FALSE);
g_return_val_if_fail (gid->cal_shell_view->priv != NULL, FALSE);
- e_cal_component_get_dtstart (comp, &dt);
+ prop = i_cal_component_get_first_property (icomp, I_CAL_DTSTART_PROPERTY);
+ dtstart = i_cal_component_get_dtstart (icomp);
+
+ if (dtstart && prop) {
+ ICalParameter *param;
+ const gchar *tzid = NULL;
- if (dt.tzid && dt.value) {
- icaltimezone *zone = NULL;
+ param = i_cal_property_get_first_parameter (prop, I_CAL_TZID_PARAMETER);
+ if (param)
+ tzid = i_cal_parameter_get_tzid (param);
- e_cal_client_get_timezone_sync (
- gid->client, dt.tzid, &zone, gid->cancellable, NULL);
+ if (tzid && *tzid) {
+ ICalTimezone *zone = NULL;
- if (g_cancellable_is_cancelled (gid->cancellable))
- return FALSE;
+ if (!e_cal_client_get_timezone_sync (gid->client, tzid, &zone, cancellable, NULL))
+ zone = NULL;
- if (zone)
- instance_start = icaltime_as_timet_with_zone (*dt.value, zone);
+ if (g_cancellable_is_cancelled (cancellable)) {
+ g_object_unref (dtstart);
+ g_clear_object (¶m);
+ return FALSE;
+ }
+
+ if (zone)
+ start = i_cal_time_as_timet_with_zone (dtstart, zone);
+ }
+
+ g_clear_object (¶m);
}
- e_cal_component_free_datetime (&dt);
+ g_clear_object (&dtstart);
+
+ if (!start)
+ start = i_cal_time_as_timet (instance_start);
priv = gid->cal_shell_view->priv;
value = g_new (time_t, 1);
- *value = instance_start;
+ *value = start;
if (!g_slist_find_custom (priv->search_hit_cache, value, cal_time_t_ptr_compare))
priv->search_hit_cache = g_slist_append (priv->search_hit_cache, value);
else
@@ -665,7 +689,7 @@ cal_search_get_object_list_cb (GObject *source,
{
ECalClient *client = E_CAL_CLIENT (source);
ECalShellView *cal_shell_view = user_data;
- GSList *icalcomps = NULL;
+ GSList *icomps = NULL;
GError *error = NULL;
g_return_if_fail (client != NULL);
@@ -673,14 +697,14 @@ cal_search_get_object_list_cb (GObject *source,
g_return_if_fail (cal_shell_view != NULL);
e_cal_client_get_object_list_finish (
- client, result, &icalcomps, &error);
+ client, result, &icomps, &error);
if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
- g_warn_if_fail (icalcomps == NULL);
+ g_warn_if_fail (icomps == NULL);
g_error_free (error);
- } else if (error != NULL || !icalcomps) {
- g_warn_if_fail (icalcomps == NULL);
+ } else if (error != NULL || !icomps) {
+ g_warn_if_fail (icomps == NULL);
g_clear_error (&error);
cal_shell_view->priv->search_pending_count--;
@@ -702,8 +726,8 @@ cal_search_get_object_list_cb (GObject *source,
end = tmp;
}
- for (iter = icalcomps; iter; iter = iter->next) {
- icalcomponent *icalcomp = iter->data;
+ for (iter = icomps; iter; iter = iter->next) {
+ ICalComponent *icomp = iter->data;
struct GenerateInstancesData *gid;
gid = g_new0 (struct GenerateInstancesData, 1);
@@ -712,14 +736,14 @@ cal_search_get_object_list_cb (GObject *source,
gid->cancellable = g_object_ref (cancellable);
e_cal_client_generate_instances_for_object (
- client, icalcomp, start, end, cancellable,
+ client, icomp, start, end, cancellable,
cal_searching_got_instance_cb, gid,
cal_searching_instances_done_cb);
}
- e_util_free_nullable_object_slist (icalcomps);
+ e_util_free_nullable_object_slist (icomps);
} else {
- e_util_free_nullable_object_slist (icalcomps);
+ e_util_free_nullable_object_slist (icomps);
}
}
@@ -765,8 +789,8 @@ cal_searching_check_candidates (ECalShellView *cal_shell_view)
}
if (candidate > 0) {
- struct icaltimetype tt;
- icaltimezone *zone;
+ ICalTime *tt;
+ ICalTimezone *zone;
ECalDataModel *data_model;
ECalendar *calendar;
@@ -774,13 +798,13 @@ cal_searching_check_candidates (ECalShellView *cal_shell_view)
data_model = e_cal_base_shell_content_get_data_model (E_CAL_BASE_SHELL_CONTENT
(cal_shell_view->priv->cal_shell_content));
zone = e_cal_data_model_get_timezone (data_model);
- tt = icaltime_from_timet_with_zone (candidate, FALSE, zone);
+ tt = i_cal_time_from_timet_with_zone (candidate, FALSE, zone);
- if (icaltime_is_valid_time (tt) && !icaltime_is_null_time (tt)) {
+ if (tt && i_cal_time_is_valid_time (tt) && !i_cal_time_is_null_time (tt)) {
ECalendarView *cal_view;
GDate *dt;
- dt = g_date_new_dmy (tt.day, tt.month, tt.year);
+ dt = g_date_new_dmy (i_cal_time_get_day (tt), i_cal_time_get_month (tt),
i_cal_time_get_year (tt));
e_calendar_item_set_selection (e_calendar_get_item (calendar), dt, dt);
g_signal_emit_by_name (e_calendar_get_item (calendar), "selection-changed", 0);
g_date_free (dt);
@@ -789,6 +813,8 @@ cal_searching_check_candidates (ECalShellView *cal_shell_view)
e_calendar_view_set_selected_time_range (cal_view, candidate, candidate);
}
+ g_clear_object (&tt);
+
return TRUE;
}
@@ -839,7 +865,7 @@ cal_iterate_searching (ECalShellView *cal_shell_view)
GList *list, *link;
ECalDataModel *data_model;
time_t new_time, range1, range2;
- icaltimezone *timezone;
+ ICalTimezone *timezone;
const gchar *default_tzloc = NULL;
GCancellable *cancellable;
gchar *sexp, *start, *end, *data_filter;
@@ -949,8 +975,8 @@ cal_iterate_searching (ECalShellView *cal_shell_view)
end = isodate_from_time_t (time_day_end (range1));
}
- if (timezone && timezone != icaltimezone_get_utc_timezone ())
- default_tzloc = icaltimezone_get_location (timezone);
+ if (timezone && timezone != i_cal_timezone_get_utc_timezone ())
+ default_tzloc = i_cal_timezone_get_location (timezone);
if (!default_tzloc)
default_tzloc = "";
diff --git a/src/modules/calendar/e-cal-shell-view-taskpad.c b/src/modules/calendar/e-cal-shell-view-taskpad.c
index 8deada2f36..27445f6edf 100644
--- a/src/modules/calendar/e-cal-shell-view-taskpad.c
+++ b/src/modules/calendar/e-cal-shell-view-taskpad.c
@@ -69,7 +69,7 @@ action_calendar_taskpad_forward_cb (GtkAction *action,
g_slist_free (list);
/* XXX We only forward the first selected task. */
- comp = e_cal_component_new_from_icalcomponent (icalcomponent_new_clone (comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
g_return_if_fail (comp != NULL);
itip_send_component_with_model (e_task_table_get_model (task_table),
@@ -181,7 +181,7 @@ action_calendar_taskpad_open_url_cb (GtkAction *action,
ECalShellContent *cal_shell_content;
ECalModelComponent *comp_data;
ETaskTable *task_table;
- icalproperty *prop;
+ ICalProperty *prop;
const gchar *uri;
GSList *list;
@@ -196,12 +196,12 @@ action_calendar_taskpad_open_url_cb (GtkAction *action,
comp_data = list->data;
/* XXX We only open the URI of the first selected task. */
- prop = icalcomponent_get_first_property (
- comp_data->icalcomp, ICAL_URL_PROPERTY);
+ prop = i_cal_component_get_first_property (comp_data->icalcomp, I_CAL_URL_PROPERTY);
g_return_if_fail (prop != NULL);
- uri = icalproperty_get_url (prop);
+ uri = i_cal_property_get_url (prop);
e_show_uri (GTK_WINDOW (shell_window), uri);
+ g_object_unref (prop);
}
static void
@@ -213,7 +213,6 @@ action_calendar_taskpad_print_cb (GtkAction *action,
ETaskTable *task_table;
ECalComponent *comp;
ECalModel *model;
- icalcomponent *clone;
GSList *list;
cal_shell_content = cal_shell_view->priv->cal_shell_content;
@@ -226,9 +225,7 @@ action_calendar_taskpad_print_cb (GtkAction *action,
g_slist_free (list);
/* XXX We only print the first selected task. */
- comp = e_cal_component_new ();
- clone = icalcomponent_new_clone (comp_data->icalcomp);
- e_cal_component_set_icalcomponent (comp, clone);
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
print_comp (
comp, comp_data->client,
@@ -430,7 +427,6 @@ e_cal_shell_view_taskpad_actions_update (ECalShellView *cal_shell_view)
list = e_task_table_get_selected (task_table);
for (iter = list; iter != NULL; iter = iter->next) {
ECalModelComponent *comp_data = iter->data;
- icalproperty *prop;
const gchar *cap;
gboolean read_only;
@@ -445,13 +441,9 @@ e_cal_shell_view_taskpad_actions_update (ECalShellView *cal_shell_view)
if (e_client_check_capability (E_CLIENT (comp_data->client), cap))
assignable = FALSE;
- prop = icalcomponent_get_first_property (
- comp_data->icalcomp, ICAL_URL_PROPERTY);
- has_url |= (prop != NULL);
+ has_url |= e_cal_util_component_has_property (comp_data->icalcomp, I_CAL_URL_PROPERTY);
- prop = icalcomponent_get_first_property (
- comp_data->icalcomp, ICAL_COMPLETED_PROPERTY);
- if (prop != NULL)
+ if (e_cal_util_component_has_property (comp_data->icalcomp, I_CAL_COMPLETED_PROPERTY))
n_complete++;
else
n_incomplete++;
diff --git a/src/modules/calendar/e-cal-shell-view.c b/src/modules/calendar/e-cal-shell-view.c
index 4400ae753e..f80a711e6b 100644
--- a/src/modules/calendar/e-cal-shell-view.c
+++ b/src/modules/calendar/e-cal-shell-view.c
@@ -89,9 +89,9 @@ cal_shell_view_execute_search (EShellView *shell_view)
ECalendar *calendar;
ECalDataModel *data_model;
GtkRadioAction *action;
- icaltimezone *timezone;
+ ICalTimezone *timezone;
const gchar *default_tzloc = NULL;
- struct icaltimetype current_time;
+ ICalTime *current_time;
time_t start_range;
time_t end_range;
time_t now_time;
@@ -113,11 +113,12 @@ cal_shell_view_execute_search (EShellView *shell_view)
data_model = e_cal_base_shell_content_get_data_model (E_CAL_BASE_SHELL_CONTENT (cal_shell_content));
timezone = e_cal_data_model_get_timezone (data_model);
- current_time = icaltime_current_time_with_zone (timezone);
- now_time = time_day_begin (icaltime_as_timet (current_time));
+ current_time = i_cal_time_current_time_with_zone (timezone);
+ now_time = time_day_begin (i_cal_time_as_timet (current_time));
+ g_clear_object (¤t_time);
- if (timezone && timezone != icaltimezone_get_utc_timezone ())
- default_tzloc = icaltimezone_get_location (timezone);
+ if (timezone && timezone != i_cal_timezone_get_utc_timezone ())
+ default_tzloc = i_cal_timezone_get_location (timezone);
if (!default_tzloc)
default_tzloc = "";
diff --git a/src/modules/calendar/e-calendar-preferences.c b/src/modules/calendar/e-calendar-preferences.c
index ea3a99825c..e0254445b1 100644
--- a/src/modules/calendar/e-calendar-preferences.c
+++ b/src/modules/calendar/e-calendar-preferences.c
@@ -99,7 +99,7 @@ calendar_preferences_map_string_to_icaltimezone (GValue *value,
{
GSettings *settings;
const gchar *location = NULL;
- icaltimezone *timezone = NULL;
+ ICalTimezone *timezone = NULL;
settings = e_util_ref_settings ("org.gnome.evolution.calendar");
@@ -109,12 +109,12 @@ calendar_preferences_map_string_to_icaltimezone (GValue *value,
location = g_variant_get_string (variant, NULL);
if (location != NULL && *location != '\0')
- timezone = icaltimezone_get_builtin_timezone (location);
+ timezone = i_cal_timezone_get_builtin_timezone (location);
if (timezone == NULL)
- timezone = icaltimezone_get_utc_timezone ();
+ timezone = i_cal_timezone_get_utc_timezone ();
- g_value_set_pointer (value, timezone);
+ g_value_set_object (value, timezone);
g_object_unref (settings);
@@ -130,7 +130,7 @@ calendar_preferences_map_icaltimezone_to_string (const GValue *value,
GSettings *settings;
const gchar *location = NULL;
gchar *location_str = NULL;
- icaltimezone *timezone;
+ ICalTimezone *timezone;
settings = e_util_ref_settings ("org.gnome.evolution.calendar");
@@ -138,10 +138,10 @@ calendar_preferences_map_icaltimezone_to_string (const GValue *value,
location_str = g_settings_get_string (settings, "timezone");
location = location_str;
} else {
- timezone = g_value_get_pointer (value);
+ timezone = g_value_get_object (value);
if (timezone != NULL)
- location = icaltimezone_get_location (timezone);
+ location = i_cal_timezone_get_location (timezone);
}
if (location == NULL)
@@ -303,7 +303,7 @@ update_day_second_zone_caption (ECalendarPreferences *prefs)
{
gchar *location;
const gchar *caption;
- icaltimezone *zone;
+ ICalTimezone *zone;
g_return_if_fail (prefs != NULL);
@@ -312,9 +312,9 @@ update_day_second_zone_caption (ECalendarPreferences *prefs)
location = calendar_config_get_day_second_zone ();
if (location && *location) {
- zone = icaltimezone_get_builtin_timezone (location);
- if (zone && icaltimezone_get_display_name (zone)) {
- caption = icaltimezone_get_display_name (zone);
+ zone = i_cal_timezone_get_builtin_timezone (location);
+ if (zone && i_cal_timezone_get_display_name (zone)) {
+ caption = i_cal_timezone_get_display_name (zone);
}
}
g_free (location);
@@ -350,13 +350,13 @@ day_second_zone_clicked (GtkWidget *widget,
GtkWidget *menu, *item;
GSList *group = NULL, *recent_zones, *s;
gchar *location;
- icaltimezone *zone, *second_zone = NULL;
+ ICalTimezone *zone, *second_zone = NULL;
menu = gtk_menu_new ();
location = calendar_config_get_day_second_zone ();
if (location && *location)
- second_zone = icaltimezone_get_builtin_timezone (location);
+ second_zone = i_cal_timezone_get_builtin_timezone (location);
g_free (location);
group = NULL;
@@ -371,11 +371,11 @@ day_second_zone_clicked (GtkWidget *widget,
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));
+ item = gtk_radio_menu_item_new_with_label (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 == second_zone)
@@ -477,7 +477,7 @@ update_system_tz_widgets (GtkCheckButton *button,
ECalendarPreferences *prefs)
{
GtkWidget *widget;
- icaltimezone *zone;
+ ICalTimezone *zone;
const gchar *display_name;
gchar *text;
@@ -486,7 +486,7 @@ update_system_tz_widgets (GtkCheckButton *button,
zone = e_cal_util_get_system_timezone ();
if (zone != NULL)
- display_name = gettext (icaltimezone_get_display_name (zone));
+ display_name = gettext (i_cal_timezone_get_display_name (zone));
else
display_name = "UTC";
diff --git a/src/modules/calendar/e-memo-shell-content.c b/src/modules/calendar/e-memo-shell-content.c
index 49c1ffc348..ea3a36c3f8 100644
--- a/src/modules/calendar/e-memo-shell-content.c
+++ b/src/modules/calendar/e-memo-shell-content.c
@@ -73,8 +73,8 @@ memo_shell_content_table_foreach_cb (gint model_row,
gpointer user_data)
{
ECalModelComponent *comp_data;
- icalcomponent *clone;
- icalcomponent *vcal;
+ ICalComponent *clone;
+ ICalComponent *vcal;
gchar *string;
struct {
@@ -86,12 +86,11 @@ memo_shell_content_table_foreach_cb (gint model_row,
foreach_data->model, model_row);
vcal = e_cal_util_new_top_level ();
- clone = icalcomponent_new_clone (comp_data->icalcomp);
+ clone = i_cal_component_new_clone (comp_data->icalcomp);
e_cal_util_add_timezones_from_component (vcal, comp_data->icalcomp);
- icalcomponent_add_component (vcal, clone);
+ i_cal_component_take_component (vcal, clone);
- /* String is owned by libical; do not free. */
- string = icalcomponent_as_ical_string (vcal);
+ string = i_cal_component_as_ical_string_r (vcal);
if (string != NULL) {
ESource *source;
const gchar *source_uid;
@@ -102,9 +101,11 @@ memo_shell_content_table_foreach_cb (gint model_row,
foreach_data->list = g_slist_prepend (
foreach_data->list,
g_strdup_printf ("%s\n%s", source_uid, string));
+
+ g_free (string);
}
- icalcomponent_free (vcal);
+ g_object_unref (vcal);
}
static void
@@ -190,7 +191,7 @@ memo_shell_content_cursor_change_cb (EMemoShellContent *memo_shell_content,
ECalComponent *comp;
comp = e_cal_component_new_from_icalcomponent (
- icalcomponent_new_clone (comp_data->icalcomp));
+ i_cal_component_new_clone (comp_data->icalcomp));
e_cal_component_preview_display (
memo_preview, comp_data->client, comp,
@@ -200,7 +201,7 @@ memo_shell_content_cursor_change_cb (EMemoShellContent *memo_shell_content,
g_object_unref (comp);
}
- uid = icalcomponent_get_uid (comp_data->icalcomp);
+ uid = i_cal_component_get_uid (comp_data->icalcomp);
g_free (memo_shell_content->priv->current_uid);
memo_shell_content->priv->current_uid = g_strdup (uid);
}
@@ -242,7 +243,7 @@ memo_shell_content_model_row_changed_cb (EMemoShellContent *memo_shell_content,
if (comp_data == NULL)
return;
- uid = icalcomponent_get_uid (comp_data->icalcomp);
+ uid = i_cal_component_get_uid (comp_data->icalcomp);
if (g_strcmp0 (uid, current_uid) != 0)
return;
@@ -281,7 +282,6 @@ memo_shell_content_check_state (EShellContent *shell_content)
list = e_memo_table_get_selected (memo_table);
for (iter = list; iter != NULL; iter = iter->next) {
ECalModelComponent *comp_data = iter->data;
- icalproperty *prop;
gboolean read_only;
if (!comp_data)
@@ -290,8 +290,7 @@ memo_shell_content_check_state (EShellContent *shell_content)
read_only = e_client_is_readonly (E_CLIENT (comp_data->client));
editable &= !read_only;
- prop = icalcomponent_get_first_property (comp_data->icalcomp, ICAL_URL_PROPERTY);
- has_url |= (prop != NULL);
+ has_url |= e_cal_util_component_has_property (comp_data->icalcomp, I_CAL_URL_PROPERTY);
}
g_slist_free (list);
diff --git a/src/modules/calendar/e-memo-shell-view-actions.c
b/src/modules/calendar/e-memo-shell-view-actions.c
index 93170d6cfb..ab8bab8e98 100644
--- a/src/modules/calendar/e-memo-shell-view-actions.c
+++ b/src/modules/calendar/e-memo-shell-view-actions.c
@@ -72,7 +72,7 @@ action_memo_forward_cb (GtkAction *action,
g_slist_free (list);
/* XXX We only forward the first selected memo. */
- comp = e_cal_component_new_from_icalcomponent (icalcomponent_new_clone (comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
g_return_if_fail (comp != NULL);
itip_send_component_with_model (e_memo_table_get_model (memo_table),
@@ -405,7 +405,7 @@ action_memo_open_url_cb (GtkAction *action,
EMemoShellContent *memo_shell_content;
EMemoTable *memo_table;
ECalModelComponent *comp_data;
- icalproperty *prop;
+ ICalProperty *prop;
const gchar *uri;
GSList *list;
@@ -421,12 +421,13 @@ action_memo_open_url_cb (GtkAction *action,
g_slist_free (list);
/* XXX We only open the URI of the first selected memo. */
- prop = icalcomponent_get_first_property (
- comp_data->icalcomp, ICAL_URL_PROPERTY);
+ prop = i_cal_component_get_first_property (comp_data->icalcomp, I_CAL_URL_PROPERTY);
g_return_if_fail (prop != NULL);
- uri = icalproperty_get_url (prop);
+ uri = i_cal_property_get_url (prop);
e_show_uri (GTK_WINDOW (shell_window), uri);
+
+ g_object_unref (prop);
}
static void
@@ -450,7 +451,6 @@ action_memo_print_cb (GtkAction *action,
ECalModelComponent *comp_data;
ECalComponent *comp;
ECalModel *model;
- icalcomponent *clone;
GSList *list;
memo_shell_content = memo_shell_view->priv->memo_shell_content;
@@ -463,9 +463,7 @@ action_memo_print_cb (GtkAction *action,
g_slist_free (list);
/* XXX We only print the first selected memo. */
- comp = e_cal_component_new ();
- clone = icalcomponent_new_clone (comp_data->icalcomp);
- e_cal_component_set_icalcomponent (comp, clone);
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
print_comp (
comp, comp_data->client,
diff --git a/src/modules/calendar/e-task-shell-content.c b/src/modules/calendar/e-task-shell-content.c
index 88d403c4c9..50a974a6d7 100644
--- a/src/modules/calendar/e-task-shell-content.c
+++ b/src/modules/calendar/e-task-shell-content.c
@@ -72,8 +72,8 @@ task_shell_content_table_foreach_cb (gint model_row,
gpointer user_data)
{
ECalModelComponent *comp_data;
- icalcomponent *clone;
- icalcomponent *vcal;
+ ICalComponent *clone;
+ ICalComponent *vcal;
gchar *string;
struct {
@@ -85,12 +85,11 @@ task_shell_content_table_foreach_cb (gint model_row,
foreach_data->model, model_row);
vcal = e_cal_util_new_top_level ();
- clone = icalcomponent_new_clone (comp_data->icalcomp);
+ clone = i_cal_component_new_clone (comp_data->icalcomp);
e_cal_util_add_timezones_from_component (vcal, comp_data->icalcomp);
- icalcomponent_add_component (vcal, clone);
+ i_cal_component_take_component (vcal, clone);
- /* String is owned by libical; do not free. */
- string = icalcomponent_as_ical_string (vcal);
+ string = i_cal_component_as_ical_string_r (vcal);
if (string != NULL) {
ESource *source;
const gchar *source_uid;
@@ -101,9 +100,11 @@ task_shell_content_table_foreach_cb (gint model_row,
foreach_data->list = g_slist_prepend (
foreach_data->list,
g_strdup_printf ("%s\n%s", source_uid, string));
+
+ g_free (string);
}
- icalcomponent_free (vcal);
+ g_object_unref (vcal);
}
static void
@@ -189,7 +190,7 @@ task_shell_content_cursor_change_cb (ETaskShellContent *task_shell_content,
ECalComponent *comp;
comp = e_cal_component_new_from_icalcomponent (
- icalcomponent_new_clone (comp_data->icalcomp));
+ i_cal_component_new_clone (comp_data->icalcomp));
e_cal_component_preview_display (
task_preview, comp_data->client, comp,
@@ -199,7 +200,7 @@ task_shell_content_cursor_change_cb (ETaskShellContent *task_shell_content,
g_object_unref (comp);
}
- uid = icalcomponent_get_uid (comp_data->icalcomp);
+ uid = i_cal_component_get_uid (comp_data->icalcomp);
g_free (task_shell_content->priv->current_uid);
task_shell_content->priv->current_uid = g_strdup (uid);
}
@@ -239,7 +240,7 @@ task_shell_content_model_row_changed_cb (ETaskShellContent *task_shell_content,
if (comp_data == NULL)
return;
- uid = icalcomponent_get_uid (comp_data->icalcomp);
+ uid = i_cal_component_get_uid (comp_data->icalcomp);
if (g_strcmp0 (uid, current_uid) != 0)
return;
@@ -281,7 +282,6 @@ task_shell_content_check_state (EShellContent *shell_content)
list = e_task_table_get_selected (task_table);
for (iter = list; iter != NULL; iter = iter->next) {
ECalModelComponent *comp_data = iter->data;
- icalproperty *prop;
const gchar *cap;
gboolean read_only;
@@ -299,13 +299,9 @@ task_shell_content_check_state (EShellContent *shell_content)
if (e_client_check_capability (E_CLIENT (comp_data->client), cap))
assignable = FALSE;
- prop = icalcomponent_get_first_property (
- comp_data->icalcomp, ICAL_URL_PROPERTY);
- has_url |= (prop != NULL);
+ has_url |= e_cal_util_component_has_property (comp_data->icalcomp, I_CAL_URL_PROPERTY);
- prop = icalcomponent_get_first_property (
- comp_data->icalcomp, ICAL_COMPLETED_PROPERTY);
- if (prop != NULL)
+ if (e_cal_util_component_has_property (comp_data->icalcomp, I_CAL_COMPLETED_PROPERTY))
n_complete++;
else
n_incomplete++;
diff --git a/src/modules/calendar/e-task-shell-view-actions.c
b/src/modules/calendar/e-task-shell-view-actions.c
index 8713e74dbc..48da46078e 100644
--- a/src/modules/calendar/e-task-shell-view-actions.c
+++ b/src/modules/calendar/e-task-shell-view-actions.c
@@ -95,7 +95,7 @@ action_task_forward_cb (GtkAction *action,
g_slist_free (list);
/* XXX We only forward the first selected task. */
- comp = e_cal_component_new_from_icalcomponent (icalcomponent_new_clone (comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
g_return_if_fail (comp != NULL);
itip_send_component_with_model (e_task_table_get_model (task_table),
@@ -475,7 +475,7 @@ action_task_open_url_cb (GtkAction *action,
ETaskShellContent *task_shell_content;
ECalModelComponent *comp_data;
ETaskTable *task_table;
- icalproperty *prop;
+ ICalProperty *prop;
const gchar *uri;
GSList *list;
@@ -490,12 +490,13 @@ action_task_open_url_cb (GtkAction *action,
comp_data = list->data;
/* XXX We only open the URI of the first selected task. */
- prop = icalcomponent_get_first_property (
- comp_data->icalcomp, ICAL_URL_PROPERTY);
+ prop = i_cal_component_get_first_property (comp_data->icalcomp, I_CAL_URL_PROPERTY);
g_return_if_fail (prop != NULL);
- uri = icalproperty_get_url (prop);
+ uri = i_cal_property_get_url (prop);
e_show_uri (GTK_WINDOW (shell_window), uri);
+
+ g_object_unref (prop);
}
static void
@@ -519,7 +520,6 @@ action_task_print_cb (GtkAction *action,
ECalComponent *comp;
ECalModel *model;
ETaskTable *task_table;
- icalcomponent *clone;
GSList *list;
task_shell_content = task_shell_view->priv->task_shell_content;
@@ -532,9 +532,7 @@ action_task_print_cb (GtkAction *action,
g_slist_free (list);
/* XXX We only print the first selected task. */
- comp = e_cal_component_new ();
- clone = icalcomponent_new_clone (comp_data->icalcomp);
- e_cal_component_set_icalcomponent (comp, clone);
+ comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
print_comp (
comp, comp_data->client,
diff --git a/src/modules/calendar/e-task-shell-view.c b/src/modules/calendar/e-task-shell-view.c
index 88668585d6..5db889ae28 100644
--- a/src/modules/calendar/e-task-shell-view.c
+++ b/src/modules/calendar/e-task-shell-view.c
@@ -51,8 +51,8 @@ task_shell_view_execute_search (EShellView *shell_view)
EWebView *web_view;
ECalModel *model;
ECalDataModel *data_model;
- icaltimezone *timezone;
- struct icaltimetype current_time;
+ ICalTimezone *timezone;
+ ICalTime *current_time;
time_t start_range;
time_t end_range;
time_t now_time;
@@ -72,8 +72,9 @@ task_shell_view_execute_search (EShellView *shell_view)
model = e_task_table_get_model (task_table);
data_model = e_cal_model_get_data_model (model);
timezone = e_cal_model_get_timezone (model);
- current_time = icaltime_current_time_with_zone (timezone);
- now_time = time_day_begin (icaltime_as_timet (current_time));
+ current_time = i_cal_time_current_time_with_zone (timezone);
+ now_time = time_day_begin (i_cal_time_as_timet (current_time));
+ g_clear_object (¤t_time);
action = GTK_RADIO_ACTION (ACTION (TASK_SEARCH_ANY_FIELD_CONTAINS));
value = gtk_radio_action_get_current_value (action);
diff --git a/src/modules/composer-to-meeting/e-composer-to-meeting.c
b/src/modules/composer-to-meeting/e-composer-to-meeting.c
index 5f4c131ac4..8bc2b52bfc 100644
--- a/src/modules/composer-to-meeting/e-composer-to-meeting.c
+++ b/src/modules/composer-to-meeting/e-composer-to-meeting.c
@@ -63,18 +63,6 @@ GType e_composer_to_meeting_get_type (void) G_GNUC_CONST;
G_DEFINE_DYNAMIC_TYPE (EComposerToMeeting, e_composer_to_meeting, E_TYPE_EXTENSION)
-static void
-composer_to_meeting_attendees_free (gpointer ptr)
-{
- ECalComponentAttendee *attendee = ptr;
-
- if (attendee) {
- g_free ((gpointer) attendee->value);
- g_free ((gpointer) attendee->cn);
- g_free (attendee);
- }
-}
-
static ECalComponent *
composer_to_meeting_component (EMsgComposer *composer)
{
@@ -91,7 +79,7 @@ composer_to_meeting_component (EMsgComposer *composer)
g_return_val_if_fail (E_IS_MSG_COMPOSER (composer), NULL);
- comp = e_cal_component_new_from_icalcomponent (e_cal_util_new_component (ICAL_VEVENT_COMPONENT));
+ comp = e_cal_component_new_from_icalcomponent (e_cal_util_new_component (I_CAL_VEVENT_COMPONENT));
g_return_val_if_fail (comp != NULL, NULL);
header_table = e_msg_composer_get_header_table (composer);
@@ -99,12 +87,12 @@ composer_to_meeting_component (EMsgComposer *composer)
/* Summary */
subject = e_composer_header_table_get_subject (header_table);
if (subject && *subject) {
- ECalComponentText summary;
+ ECalComponentText *summary;
- summary.value = subject;
- summary.altrep = NULL;
+ summary = e_cal_component_text_new (subject, NULL);
- e_cal_component_set_summary (comp, &summary);
+ e_cal_component_set_summary (comp, summary);
+ e_cal_component_text_free (summary);
}
/* Organizer */
@@ -148,15 +136,18 @@ composer_to_meeting_component (EMsgComposer *composer)
}
if (address && *address) {
- ECalComponentOrganizer organizer = {NULL, NULL, NULL, NULL};
+ ECalComponentOrganizer *organizer;
gchar *mailto;
mailto = g_strconcat ("mailto:", address, NULL);
- organizer.value = mailto;
- organizer.cn = name;
- e_cal_component_set_organizer (comp, &organizer);
+ organizer = e_cal_component_organizer_new ();
+ e_cal_component_organizer_set_value (organizer, mailto);
+ e_cal_component_organizer_set_cn (organizer, name);
+
+ e_cal_component_set_organizer (comp, organizer);
+ e_cal_component_organizer_free (organizer);
g_free (mailto);
}
@@ -190,15 +181,19 @@ composer_to_meeting_component (EMsgComposer *composer)
if (camel_internet_address_get (address, jj, &name, &mail)) {
ECalComponentAttendee *attendee;
+ gchar *mailto;
- attendee = g_new0 (ECalComponentAttendee, 1);
- attendee->value = g_strconcat ("mailto:", mail, NULL);
- attendee->cn = g_strdup (name);
- attendee->cutype = ICAL_CUTYPE_INDIVIDUAL;
- attendee->status = ICAL_PARTSTAT_NEEDSACTION;
- attendee->role = ii == 0 ? ICAL_ROLE_REQPARTICIPANT :
ICAL_ROLE_OPTPARTICIPANT;
+ mailto = g_strconcat ("mailto:", mail, NULL);
+ attendee = e_cal_component_attendee_new ();
+ e_cal_component_attendee_set_value (attendee, mailto);
+ e_cal_component_attendee_set_cn (attendee,name);
+ e_cal_component_attendee_set_cutype (attendee,
I_CAL_CUTYPE_INDIVIDUAL);
+ e_cal_component_attendee_set_partstat (attendee,
I_CAL_PARTSTAT_NEEDSACTION);
+ e_cal_component_attendee_set_role (attendee, ii == 0 ?
I_CAL_ROLE_REQPARTICIPANT : I_CAL_ROLE_OPTPARTICIPANT);
- attendees = g_slist_append (attendees, attendee);
+ attendees = g_slist_prepend (attendees, attendee);
+
+ g_free (mailto);
}
}
}
@@ -208,9 +203,11 @@ composer_to_meeting_component (EMsgComposer *composer)
e_destination_freev (destinations);
}
- e_cal_component_set_attendee_list (comp, attendees);
+ attendees = g_slist_reverse (attendees);
+
+ e_cal_component_set_attendees (comp, attendees);
- g_slist_free_full (attendees, composer_to_meeting_attendees_free);
+ g_slist_free_full (attendees, e_cal_component_attendee_free);
/* Description */
html_editor = e_msg_composer_get_editor (composer);
@@ -227,15 +224,13 @@ composer_to_meeting_component (EMsgComposer *composer)
g_free (tmp);
}
- description = g_new0 (ECalComponentText, 1);
- description->value = text;
- description->altrep = NULL;
+ description = e_cal_component_text_new (text, NULL);
descr_list = g_slist_append (descr_list, description);
- e_cal_component_set_description_list (comp, descr_list);
+ e_cal_component_set_descriptions (comp, descr_list);
- g_slist_free_full (descr_list, g_free);
+ g_slist_free_full (descr_list, e_cal_component_text_free);
}
g_free (text);
diff --git a/src/modules/composer-to-meeting/e-meeting-to-composer.c
b/src/modules/composer-to-meeting/e-meeting-to-composer.c
index f0fec00778..0e79d1b1a9 100644
--- a/src/modules/composer-to-meeting/e-meeting-to-composer.c
+++ b/src/modules/composer-to-meeting/e-meeting-to-composer.c
@@ -153,8 +153,8 @@ meeting_to_composer_composer_created_cb (GObject *source_object,
EMsgComposer *composer;
EComposerHeaderTable *header_table;
gboolean did_updating;
- icalcomponent *icalcomp;
- icalproperty *prop;
+ ICalComponent *icomp;
+ ICalProperty *prop;
const gchar *text;
GPtrArray *to_recips, *cc_recips;
GError *error = NULL;
@@ -173,24 +173,24 @@ meeting_to_composer_composer_created_cb (GObject *source_object,
/* Just a trick to not show validation errors when getting the component */
e_comp_editor_set_updating (comp_editor, TRUE);
- icalcomp = icalcomponent_new_clone (e_comp_editor_get_component (comp_editor));
- e_comp_editor_fill_component (comp_editor, icalcomp);
+ icomp = i_cal_component_new_clone (e_comp_editor_get_component (comp_editor));
+ e_comp_editor_fill_component (comp_editor, icomp);
e_comp_editor_set_updating (comp_editor, did_updating);
/* Subject */
- text = icalcomponent_get_summary (icalcomp);
+ text = i_cal_component_get_summary (icomp);
if (text && *text)
e_composer_header_table_set_subject (header_table, text);
/* From */
- prop = icalcomponent_get_first_property (icalcomp, ICAL_ORGANIZER_PROPERTY);
+ prop = i_cal_component_get_first_property (icomp, I_CAL_ORGANIZER_PROPERTY);
if (prop) {
EComposerHeader *from_header;
const gchar *organizer;
from_header = e_composer_header_table_get_header (header_table, E_COMPOSER_HEADER_FROM);
- organizer = itip_strip_mailto (icalproperty_get_organizer (prop));
+ organizer = itip_strip_mailto (i_cal_property_get_organizer (prop));
if (organizer && *organizer && from_header) {
GtkComboBox *identities_combo;
@@ -227,34 +227,38 @@ meeting_to_composer_composer_created_cb (GObject *source_object,
} while (gtk_tree_model_iter_next (model, &iter));
}
}
+
+ g_clear_object (&prop);
}
/* Recipients */
to_recips = g_ptr_array_new_with_free_func (meeting_to_composer_unref_nonull_object);
cc_recips = g_ptr_array_new_with_free_func (meeting_to_composer_unref_nonull_object);
- for (prop = icalcomponent_get_first_property (icalcomp, ICAL_ATTENDEE_PROPERTY);
+ for (prop = i_cal_component_get_first_property (icomp, I_CAL_ATTENDEE_PROPERTY);
prop;
- prop = icalcomponent_get_next_property (icalcomp, ICAL_ATTENDEE_PROPERTY)) {
- icalparameter *param;
- icalparameter_role role = ICAL_ROLE_REQPARTICIPANT;
+ g_object_unref (prop), prop = i_cal_component_get_next_property (icomp,
I_CAL_ATTENDEE_PROPERTY)) {
+ ICalParameter *param;
+ ICalParameterRole role = I_CAL_ROLE_REQPARTICIPANT;
const gchar *name = NULL, *address;
EDestination *dest;
- address = itip_strip_mailto (icalproperty_get_attendee (prop));
+ address = itip_strip_mailto (i_cal_property_get_attendee (prop));
if (!address || !*address)
continue;
- param = icalproperty_get_first_parameter (prop, ICAL_ROLE_PARAMETER);
- if (param)
- role = icalparameter_get_role (param);
+ param = i_cal_property_get_first_parameter (prop, I_CAL_ROLE_PARAMETER);
+ if (param) {
+ role = i_cal_parameter_get_role (param);
+ g_object_unref (param);
+ }
- if (role == ICAL_ROLE_NONPARTICIPANT || role == ICAL_ROLE_NONE)
+ if (role == I_CAL_ROLE_NONPARTICIPANT || role == I_CAL_ROLE_NONE)
continue;
- param = icalproperty_get_first_parameter (prop, ICAL_CN_PARAMETER);
+ param = i_cal_property_get_first_parameter (prop, I_CAL_CN_PARAMETER);
if (param)
- name = icalparameter_get_cn (param);
+ name = i_cal_parameter_get_cn (param);
if (name && !*name)
name = NULL;
@@ -263,10 +267,12 @@ meeting_to_composer_composer_created_cb (GObject *source_object,
e_destination_set_name (dest, name);
e_destination_set_email (dest, address);
- if (role == ICAL_ROLE_REQPARTICIPANT)
+ if (role == I_CAL_ROLE_REQPARTICIPANT)
g_ptr_array_add (to_recips, dest);
else
g_ptr_array_add (cc_recips, dest);
+
+ g_clear_object (¶m);
}
if (to_recips->len > 0) {
@@ -285,9 +291,9 @@ meeting_to_composer_composer_created_cb (GObject *source_object,
g_ptr_array_free (cc_recips, TRUE);
/* Body */
- prop = icalcomponent_get_first_property (icalcomp, ICAL_DESCRIPTION_PROPERTY);
+ prop = i_cal_component_get_first_property (icomp, I_CAL_DESCRIPTION_PROPERTY);
if (prop) {
- text = icalproperty_get_description (prop);
+ text = i_cal_property_get_description (prop);
if (text && *text) {
EHTMLEditor *html_editor;
@@ -299,6 +305,8 @@ meeting_to_composer_composer_created_cb (GObject *source_object,
e_content_editor_set_html_mode (cnt_editor, FALSE);
e_content_editor_insert_content (cnt_editor, text,
E_CONTENT_EDITOR_INSERT_REPLACE_ALL | E_CONTENT_EDITOR_INSERT_TEXT_PLAIN);
}
+
+ g_object_unref (prop);
}
/* Attachments */
@@ -307,25 +315,25 @@ meeting_to_composer_composer_created_cb (GObject *source_object,
gtk_window_present (GTK_WINDOW (composer));
gtk_widget_destroy (GTK_WIDGET (comp_editor));
- icalcomponent_free (icalcomp);
+ g_object_unref (icomp);
}
static void
action_meeting_to_composer_cb (GtkAction *action,
ECompEditor *comp_editor)
{
- icalcomponent *icalcomp;
- icalcomponent_kind kind;
+ ICalComponent *icomp;
+ ICalComponentKind kind;
const gchar *prompt_key;
g_return_if_fail (E_IS_COMP_EDITOR (comp_editor));
- icalcomp = e_comp_editor_get_component (comp_editor);
- kind = icalcomp ? icalcomponent_isa (icalcomp) : ICAL_VEVENT_COMPONENT;
+ icomp = e_comp_editor_get_component (comp_editor);
+ kind = icomp ? i_cal_component_isa (icomp) : I_CAL_VEVENT_COMPONENT;
- if (kind == ICAL_VTODO_COMPONENT)
+ if (kind == I_CAL_VTODO_COMPONENT)
prompt_key = "mail-composer:prompt-task-to-composer";
- else if (kind == ICAL_VJOURNAL_COMPONENT)
+ else if (kind == I_CAL_VJOURNAL_COMPONENT)
prompt_key = "mail-composer:prompt-memo-to-composer";
else
prompt_key = "mail-composer:prompt-event-to-composer";
diff --git a/src/modules/settings/e-settings-cal-model.c b/src/modules/settings/e-settings-cal-model.c
index a6f10c8107..4891ae3582 100644
--- a/src/modules/settings/e-settings-cal-model.c
+++ b/src/modules/settings/e-settings-cal-model.c
@@ -42,7 +42,7 @@ settings_map_string_to_icaltimezone (GValue *value,
{
GSettings *settings;
const gchar *location = NULL;
- icaltimezone *timezone = NULL;
+ ICalTimezone *timezone = NULL;
settings = e_util_ref_settings ("org.gnome.evolution.calendar");
@@ -52,12 +52,12 @@ settings_map_string_to_icaltimezone (GValue *value,
location = g_variant_get_string (variant, NULL);
if (location != NULL && *location != '\0')
- timezone = icaltimezone_get_builtin_timezone (location);
+ timezone = i_cal_timezone_get_builtin_timezone (location);
if (timezone == NULL)
- timezone = icaltimezone_get_utc_timezone ();
+ timezone = i_cal_timezone_get_utc_timezone ();
- g_value_set_pointer (value, timezone);
+ g_value_set_object (value, timezone);
g_object_unref (settings);
diff --git a/src/modules/settings/e-settings-client-cache.c b/src/modules/settings/e-settings-client-cache.c
index e99440467b..b29c66d4e5 100644
--- a/src/modules/settings/e-settings-client-cache.c
+++ b/src/modules/settings/e-settings-client-cache.c
@@ -41,7 +41,7 @@ settings_map_string_to_icaltimezone (GValue *value,
{
GSettings *settings;
const gchar *location = NULL;
- icaltimezone *timezone = NULL;
+ ICalTimezone *timezone = NULL;
settings = e_util_ref_settings ("org.gnome.evolution.calendar");
@@ -51,12 +51,12 @@ settings_map_string_to_icaltimezone (GValue *value,
location = g_variant_get_string (variant, NULL);
if (location != NULL && *location != '\0')
- timezone = icaltimezone_get_builtin_timezone (location);
+ timezone = i_cal_timezone_get_builtin_timezone (location);
if (timezone == NULL)
- timezone = icaltimezone_get_utc_timezone ();
+ timezone = i_cal_timezone_get_utc_timezone ();
- g_value_set_pointer (value, timezone);
+ g_value_set_object (value, timezone);
g_object_unref (settings);
diff --git a/src/modules/settings/e-settings-meeting-store.c b/src/modules/settings/e-settings-meeting-store.c
index dc9a6a44bb..2c47eadd5d 100644
--- a/src/modules/settings/e-settings-meeting-store.c
+++ b/src/modules/settings/e-settings-meeting-store.c
@@ -41,7 +41,7 @@ settings_map_string_to_icaltimezone (GValue *value,
{
GSettings *settings;
const gchar *location = NULL;
- icaltimezone *timezone = NULL;
+ ICalTimezone *timezone = NULL;
settings = e_util_ref_settings ("org.gnome.evolution.calendar");
@@ -51,12 +51,12 @@ settings_map_string_to_icaltimezone (GValue *value,
location = g_variant_get_string (variant, NULL);
if (location != NULL && *location != '\0')
- timezone = icaltimezone_get_builtin_timezone (location);
+ timezone = i_cal_timezone_get_builtin_timezone (location);
if (timezone == NULL)
- timezone = icaltimezone_get_utc_timezone ();
+ timezone = i_cal_timezone_get_utc_timezone ();
- g_value_set_pointer (value, timezone);
+ g_value_set_object (value, timezone);
g_object_unref (settings);
diff --git a/src/plugins/mail-to-task/mail-to-task.c b/src/plugins/mail-to-task/mail-to-task.c
index c6285176f8..806cc6f825 100644
--- a/src/plugins/mail-to-task/mail-to-task.c
+++ b/src/plugins/mail-to-task/mail-to-task.c
@@ -106,7 +106,7 @@ set_attendees (ECalComponent *comp,
CamelMimeMessage *message,
const gchar *organizer)
{
- GSList *attendees = NULL, *to_free = NULL;
+ GSList *attendees = NULL;
ECalComponentAttendee *ca;
CamelInternetAddress *from, *to, *cc, *bcc, *arr[4];
gint len, i, j;
@@ -139,37 +139,35 @@ set_attendees (ECalComponent *comp,
continue;
}
- ca = g_new0 (ECalComponentAttendee, 1);
+ ca = e_cal_component_attendee_new ();
- ca->value = temp;
- ca->cn = name;
- ca->cutype = ICAL_CUTYPE_INDIVIDUAL;
- ca->status = ICAL_PARTSTAT_NEEDSACTION;
+ e_cal_component_attendee_set_value (ca, temp);
+ e_cal_component_attendee_set_cn (ca, name);
+ e_cal_component_attendee_set_cutype (ca, I_CAL_CUTYPE_INDIVIDUAL);
+ e_cal_component_attendee_set_partstat (ca, I_CAL_PARTSTAT_NEEDSACTION);
if (j == 0) {
/* From */
- ca->role = ICAL_ROLE_CHAIR;
+ e_cal_component_attendee_set_role (ca, I_CAL_ROLE_CHAIR);
} else if (j == 2) {
/* BCC */
- ca->role = ICAL_ROLE_OPTPARTICIPANT;
+ e_cal_component_attendee_set_role (ca, I_CAL_ROLE_OPTPARTICIPANT);
} else {
/* all other */
- ca->role = ICAL_ROLE_REQPARTICIPANT;
+ e_cal_component_attendee_set_role (ca, I_CAL_ROLE_REQPARTICIPANT);
}
- to_free = g_slist_prepend (to_free, temp);
+ attendees = g_slist_prepend (attendees, ca);
- attendees = g_slist_append (attendees, ca);
+ g_free (temp);
}
}
}
- e_cal_component_set_attendee_list (comp, attendees);
+ attendees = g_slist_reverse (attendees);
- g_slist_foreach (attendees, (GFunc) g_free, NULL);
- g_slist_foreach (to_free, (GFunc) g_free, NULL);
+ e_cal_component_set_attendees (comp, attendees);
- g_slist_free (to_free);
- g_slist_free (attendees);
+ g_slist_free_full (attendees, e_cal_component_attendee_free);
}
static const gchar *
@@ -283,20 +281,18 @@ set_description (ECalComponent *comp,
if (!convert_str && str)
convert_str = e_util_utf8_make_valid (str);
- text = g_new0 (ECalComponentText, 1);
if (convert_str)
- text->value = prepend_from (message, &convert_str);
+ text = e_cal_component_text_new (prepend_from (message, &convert_str), NULL);
else
- text->value = prepend_from (message, &str);
- text->altrep = NULL;
+ text = e_cal_component_text_new (prepend_from (message, &str), NULL);
sl = g_slist_append (sl, text);
- e_cal_component_set_description_list (comp, sl);
+ e_cal_component_set_descriptions (comp, sl);
g_free (str);
if (convert_str)
g_free (convert_str);
- e_cal_component_free_text_list (sl);
+ g_slist_free_full (sl, e_cal_component_text_free);
}
static gchar *
@@ -311,7 +307,6 @@ set_organizer (ECalComponent *comp,
ESourceMailIdentity *extension;
const gchar *extension_name;
const gchar *address, *name;
- ECalComponentOrganizer organizer = {NULL, NULL, NULL, NULL};
gchar *mailto = NULL;
gchar *identity_name = NULL, *identity_address = NULL;
@@ -347,10 +342,15 @@ set_organizer (ECalComponent *comp,
}
if (address && *address) {
+ ECalComponentOrganizer *organizer;
+
mailto = g_strconcat ("mailto:", address, NULL);
- organizer.value = mailto;
- organizer.cn = name;
- e_cal_component_set_organizer (comp, &organizer);
+
+ organizer = e_cal_component_organizer_new ();
+ e_cal_component_organizer_set_value (organizer, mailto);
+ e_cal_component_organizer_set_cn (organizer, name);
+ e_cal_component_set_organizer (comp, organizer);
+ e_cal_component_organizer_free (organizer);
}
g_object_unref (source);
@@ -430,7 +430,7 @@ set_attachments (ECalClient *client,
if (n_parts < 1)
return;
- e_cal_component_get_uid (comp, &comp_uid);
+ comp_uid = e_cal_component_get_uid (comp);
g_return_if_fail (comp_uid != NULL);
tmp = g_strdup (comp_uid);
@@ -492,16 +492,15 @@ set_attachments (ECalClient *client,
/* Transfer the URI strings to the GSList. */
for (ii = 0; cb_data.uris[ii] != NULL; ii++) {
- uri_list = g_slist_prepend (uri_list, cb_data.uris[ii]);
- cb_data.uris[ii] = NULL;
+ uri_list = g_slist_prepend (uri_list, i_cal_attach_new_from_url (cb_data.uris[ii]));
}
e_flag_free (cb_data.flag);
- g_free (cb_data.uris);
+ g_strfreev (cb_data.uris);
- /* XXX Does this take ownership of the list? */
- e_cal_component_set_attachment_list (comp, uri_list);
+ e_cal_component_set_attachments (comp, uri_list);
+ g_slist_free_full (uri_list, g_object_unref);
e_attachment_store_remove_all (store);
g_object_unref (destination);
g_object_unref (store);
@@ -517,11 +516,8 @@ set_priority (ECalComponent *comp,
g_return_if_fail (part != NULL);
prio = camel_medium_get_header (CAMEL_MEDIUM (part), "X-Priority");
- if (prio && atoi (prio) > 0) {
- gint priority = 1;
-
- e_cal_component_set_priority (comp, &priority);
- }
+ if (prio && atoi (prio) > 0)
+ e_cal_component_set_priority (comp, 1);
}
struct _report_error
@@ -560,7 +556,7 @@ struct _manage_comp
{
ECalClient *client;
ECalComponent *comp;
- icalcomponent *stored_comp; /* the one in client already */
+ ICalComponent *stored_comp; /* the one in client already */
GCond cond;
GMutex mutex;
gint mails_count;
@@ -576,8 +572,7 @@ free_manage_comp_struct (struct _manage_comp *mc)
g_object_unref (mc->comp);
g_object_unref (mc->client);
- if (mc->stored_comp)
- icalcomponent_free (mc->stored_comp);
+ g_clear_object (&mc->stored_comp);
g_mutex_clear (&mc->mutex);
g_cond_clear (&mc->cond);
if (mc->editor_title)
@@ -761,14 +756,14 @@ do_manage_comp_idle (struct _manage_comp *mc)
const gchar *ask = get_question_edit_old (source_type);
if (ask) {
- gchar *msg = g_strdup_printf (ask, icalcomponent_get_summary (mc->stored_comp) ?
icalcomponent_get_summary (mc->stored_comp) : _("[No Summary]"));
+ gchar *msg = g_strdup_printf (ask, i_cal_component_get_summary (mc->stored_comp) ?
i_cal_component_get_summary (mc->stored_comp) : _("[No Summary]"));
gint chosen;
chosen = do_ask (msg, TRUE);
if (chosen == GTK_RESPONSE_YES) {
edit_comp = e_cal_component_new ();
- if (!e_cal_component_set_icalcomponent (edit_comp, icalcomponent_new_clone
(mc->stored_comp))) {
+ if (!e_cal_component_set_icalcomponent (edit_comp, i_cal_component_new_clone
(mc->stored_comp))) {
g_object_unref (edit_comp);
edit_comp = NULL;
error = g_error_new (
@@ -884,8 +879,8 @@ do_mail_to_event (AsyncData *data)
}
} else {
gint i;
- ECalComponentDateTime dt, dt2;
- struct icaltimetype tt, tt2;
+ ECalComponentDateTime *dt, *dt2;
+ ICalTime *tt, *tt2;
struct _manage_comp *oldmc = NULL;
#define cache_backend_prop(prop) { \
@@ -903,21 +898,19 @@ do_mail_to_event (AsyncData *data)
#undef cache_backend_prop
/* set start day of the event as today, without time - easier than looking for a calendar's
time zone */
- tt = icaltime_today ();
- dt.value = &tt;
- dt.tzid = NULL;
+ tt = i_cal_time_today ();
+ tt2 = i_cal_time_new_clone (tt);
+ i_cal_time_adjust (tt2, 1, 0, 0, 0);
- tt2 = tt;
- icaltime_adjust (&tt2, 1, 0, 0, 0);
- dt2.value = &tt2;
- dt2.tzid = NULL;
+ dt = e_cal_component_datetime_new_take (tt, NULL);
+ dt2 = e_cal_component_datetime_new_take (tt2, NULL);
for (i = 0; i < (uids ? uids->len : 0); i++) {
CamelMimeMessage *message;
ECalComponent *comp;
- ECalComponentText text;
- icalproperty *icalprop;
- icalcomponent *icalcomp;
+ ECalComponentText *text;
+ ICalProperty *prop;
+ ICalComponent *icomp;
struct _manage_comp *mc;
const gchar *message_uid = g_ptr_array_index (uids, i);
@@ -946,28 +939,30 @@ do_mail_to_event (AsyncData *data)
}
e_cal_component_set_uid (comp, camel_mime_message_get_message_id (message));
- e_cal_component_set_dtstart (comp, &dt);
+ e_cal_component_set_dtstart (comp, dt);
if (data->source_type == E_CAL_CLIENT_SOURCE_TYPE_EVENTS) {
/* make it an all-day event */
- e_cal_component_set_dtend (comp, &dt2);
+ e_cal_component_set_dtend (comp, dt2);
}
/* set the summary */
- text.value = camel_mime_message_get_subject (message);
- text.altrep = NULL;
- e_cal_component_set_summary (comp, &text);
+ text = e_cal_component_text_new (camel_mime_message_get_subject (message), NULL);
+ e_cal_component_set_summary (comp, text);
+ e_cal_component_text_free (text);
/* set all fields */
if (data->selected_text) {
GSList sl;
- text.value = data->selected_text;
- text.altrep = NULL;
+ text = e_cal_component_text_new (data->selected_text, NULL);
+
sl.next = NULL;
- sl.data = &text;
+ sl.data = text;
+
+ e_cal_component_set_descriptions (comp, &sl);
- e_cal_component_set_description_list (comp, &sl);
+ e_cal_component_text_free (text);
} else
set_description (comp, message, data->default_charset, data->forced_charset);
@@ -989,11 +984,11 @@ do_mail_to_event (AsyncData *data)
/* no need to increment a sequence number, this is a new component */
e_cal_component_abort_sequence (comp);
- icalcomp = e_cal_component_get_icalcomponent (comp);
+ icomp = e_cal_component_get_icalcomponent (comp);
- icalprop = icalproperty_new_x ("1");
- icalproperty_set_x_name (icalprop, "X-EVOLUTION-MOVE-CALENDAR");
- icalcomponent_add_property (icalcomp, icalprop);
+ prop = i_cal_property_new_x ("1");
+ i_cal_property_set_x_name (prop, "X-EVOLUTION-MOVE-CALENDAR");
+ i_cal_component_take_property (icomp, prop);
mc = g_new0 (struct _manage_comp, 1);
mc->client = g_object_ref (client);
@@ -1022,7 +1017,7 @@ do_mail_to_event (AsyncData *data)
e_cal_client_get_object_sync (
E_CAL_CLIENT (client),
- icalcomponent_get_uid (icalcomp),
+ i_cal_component_get_uid (icomp),
NULL, &mc->stored_comp, NULL, NULL);
/* Prioritize ahead of GTK+ redraws. */
@@ -1044,6 +1039,9 @@ do_mail_to_event (AsyncData *data)
g_mutex_unlock (&oldmc->mutex);
free_manage_comp_struct (oldmc);
}
+
+ e_cal_component_datetime_free (dt);
+ e_cal_component_datetime_free (dt2);
}
/* free memory */
diff --git a/src/plugins/pst-import/pst-importer.c b/src/plugins/pst-import/pst-importer.c
index ed58ec6159..8b029647d4 100644
--- a/src/plugins/pst-import/pst-importer.c
+++ b/src/plugins/pst-import/pst-importer.c
@@ -75,7 +75,7 @@ gchar *foldername_to_utf8 (const gchar *pstname);
gchar *string_to_utf8 (const gchar *string);
void contact_set_date (EContact *contact, EContactField id, FILETIME *date);
static void fill_calcomponent (PstImporter *m, pst_item *item, ECalComponent *ec, const gchar *type);
-struct icaltimetype get_ical_date (FILETIME *date, gboolean is_date);
+ICalTime *get_ical_date (FILETIME *date, gboolean is_date);
gchar *rfc2445_datetime_format (FILETIME *ft);
gboolean org_credativ_evolution_readpst_supported (EPlugin *epl, EImportTarget *target);
@@ -1205,10 +1205,8 @@ pst_process_email (PstImporter *m,
if (item->type == PST_TYPE_SCHEDULE && item->appointment) {
ECalComponent *comp;
- icalcomponent *vcal;
- icalproperty *prop;
- icalvalue *value;
- icalproperty_method method;
+ ICalComponent *vcal;
+ ICalPropertyMethod method;
comp = e_cal_component_new ();
e_cal_component_set_new_vtype (comp, E_CAL_COMPONENT_EVENT);
@@ -1216,26 +1214,23 @@ pst_process_email (PstImporter *m,
vcal = e_cal_util_new_top_level ();
- method = ICAL_METHOD_PUBLISH;
+ method = I_CAL_METHOD_PUBLISH;
if (item->ascii_type) {
if (g_str_has_prefix (item->ascii_type, "IPM.Schedule.Meeting.Request"))
- method = ICAL_METHOD_REQUEST;
+ method = I_CAL_METHOD_REQUEST;
else if (g_str_has_prefix (item->ascii_type, "IPM.Schedule.Meeting.Canceled"))
- method = ICAL_METHOD_CANCEL;
+ method = I_CAL_METHOD_CANCEL;
else if (g_str_has_prefix (item->ascii_type, "IPM.Schedule.Meeting.Resp."))
- method = ICAL_METHOD_REPLY;
+ method = I_CAL_METHOD_REPLY;
}
- prop = icalproperty_new (ICAL_METHOD_PROPERTY);
- value = icalvalue_new_method (method);
- icalproperty_set_value (prop, value);
- icalcomponent_add_property (vcal, prop);
+ i_cal_component_set_method (vcal, method);
- icalcomponent_add_component (vcal, icalcomponent_new_clone (e_cal_component_get_icalcomponent
(comp)));
+ i_cal_component_take_component (vcal, i_cal_component_new_clone
(e_cal_component_get_icalcomponent (comp)));
- comp_str = icalcomponent_as_ical_string_r (vcal);
+ comp_str = i_cal_component_as_ical_string_r (vcal);
- icalcomponent_free (vcal);
+ g_object_unref (vcal);
g_object_unref (comp);
if (comp_str && !*comp_str) {
@@ -1666,11 +1661,11 @@ pst_process_contact (PstImporter *m,
* @date: time value from libpst
* @is_date: treat as date only (all day event)?
*
- * Convert pst time to icaltimetype
+ * Convert pst time to ICalTime
*
* Returns: converted date
*/
-struct icaltimetype
+ICalTime *
get_ical_date (FILETIME *date,
gboolean is_date)
{
@@ -1678,9 +1673,9 @@ get_ical_date (FILETIME *date,
time_t t;
t = pst_fileTimeToUnixTime (date);
- return icaltime_from_timet_with_zone (t, is_date, NULL);
+ return i_cal_time_from_timet_with_zone (t, is_date, NULL);
} else {
- return icaltime_null_date ();
+ return NULL;
}
}
@@ -1698,7 +1693,7 @@ set_cal_attachments (ECalClient *cal,
return;
}
- e_cal_component_get_uid (ec, &uid);
+ uid = e_cal_component_get_uid (ec);
store_dir = g_filename_from_uri (e_cal_client_get_local_attachment_store (cal), NULL, NULL);
while (attach != NULL) {
@@ -1769,7 +1764,7 @@ set_cal_attachments (ECalClient *cal,
g_object_unref (stream);
uri = g_filename_to_uri (path, NULL, NULL);
- list = g_slist_append (list, g_strdup (uri));
+ list = g_slist_append (list, i_cal_attach_new_from_url (uri));
g_free (uri);
g_object_unref (part);
@@ -1781,7 +1776,8 @@ set_cal_attachments (ECalClient *cal,
g_free (store_dir);
- e_cal_component_set_attachment_list (ec, list);
+ e_cal_component_set_attachments (ec, list);
+ g_slist_free_full (list, g_object_unref);
}
static void
@@ -1792,10 +1788,7 @@ fill_calcomponent (PstImporter *m,
{
pst_item_appointment *a;
pst_item_email *e;
-
- ECalComponentText text;
- struct icaltimetype tt_start, tt_end;
- ECalComponentDateTime dt_start, dt_end;
+ ECalComponentText *text;
a = item->appointment;
e = item->email;
@@ -1803,34 +1796,37 @@ fill_calcomponent (PstImporter *m,
g_return_if_fail (item->appointment != NULL);
if (item->create_date) {
- struct icaltimetype tt;
+ ICalTime *tt;
tt = get_ical_date (item->create_date, FALSE);
- e_cal_component_set_created (ec, &tt);
+ e_cal_component_set_created (ec, tt);
+ g_clear_object (&tt);
}
if (item->modify_date) {
- struct icaltimetype tt;
+ ICalTime *tt;
tt = get_ical_date (item->modify_date, FALSE);
- e_cal_component_set_last_modified (ec, &tt);
+ e_cal_component_set_last_modified (ec, tt);
+ g_clear_object (&tt);
}
if (e) {
if (item->subject.str || e->processed_subject.str) {
+ text = NULL;
if (item->subject.str) {
- text.value = item->subject.str;
+ text = e_cal_component_text_new (item->subject.str, NULL);
} else if (e->processed_subject.str) {
- text.value = e->processed_subject.str;
+ text = e_cal_component_text_new (e->processed_subject.str, NULL);
}
- text.altrep = NULL; /* email->proc_subject? */
- e_cal_component_set_summary (ec, &text);
+ e_cal_component_set_summary (ec, text);
+ e_cal_component_text_free (text);
}
if (item->body.str) {
GSList l;
- text.value = item->body.str;
- text.altrep = NULL;
- l.data = &text;
+ text = e_cal_component_text_new (item->body.str, NULL);
+ l.data = text;
l.next = NULL;
- e_cal_component_set_description_list (ec, &l);
+ e_cal_component_set_descriptions (ec, &l);
+ e_cal_component_text_free (text);
}
} else {
g_warning ("%s without subject / body!", type);
@@ -1841,31 +1837,37 @@ fill_calcomponent (PstImporter *m,
}
if (a->start) {
- tt_start = get_ical_date (a->start, a->all_day);
- dt_start.value = &tt_start;
- dt_start.tzid = a->timezonestring.str;
- e_cal_component_set_dtstart (ec, &dt_start);
+ ECalComponentDateTime *dtstart;
+
+ dtstart = e_cal_component_datetime_new_take (
+ get_ical_date (a->start, a->all_day),
+ g_strdup (a->timezonestring.str));
+ e_cal_component_set_dtstart (ec, dtstart);
+ e_cal_component_datetime_free (dtstart);
}
if (a->end) {
- tt_end = get_ical_date (a->end, a->all_day);
- dt_end.value = &tt_end;
- dt_end.tzid = a->timezonestring.str;
- e_cal_component_set_dtend (ec, &dt_end);
+ ECalComponentDateTime *dtend;
+
+ dtend = e_cal_component_datetime_new_take (
+ get_ical_date (a->end, a->all_day),
+ g_strdup (a->timezonestring.str));
+ e_cal_component_set_dtend (ec, dtend);
+ e_cal_component_datetime_free (dtend);
}
switch (a->showas) {
case PST_FREEBUSY_TENTATIVE:
- e_cal_component_set_status (ec, ICAL_STATUS_TENTATIVE);
+ e_cal_component_set_status (ec, I_CAL_STATUS_TENTATIVE);
break;
case PST_FREEBUSY_FREE:
/* mark as transparent and as confirmed */
e_cal_component_set_transparency (ec, E_CAL_COMPONENT_TRANSP_TRANSPARENT);
- e_cal_component_set_status (ec, ICAL_STATUS_CONFIRMED);
+ e_cal_component_set_status (ec, I_CAL_STATUS_CONFIRMED);
break;
case PST_FREEBUSY_BUSY:
case PST_FREEBUSY_OUT_OF_OFFICE:
- e_cal_component_set_status (ec, ICAL_STATUS_CONFIRMED);
+ e_cal_component_set_status (ec, I_CAL_STATUS_CONFIRMED);
break;
}
switch (a->label) {
@@ -1895,14 +1897,17 @@ fill_calcomponent (PstImporter *m,
if (a->alarm || a->alarm_minutes) {
ECalComponentAlarm *alarm;
- ECalComponentAlarmTrigger trigger;
alarm = e_cal_component_alarm_new ();
if (a->alarm_minutes) {
- trigger.type = E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START;
- trigger.u.rel_duration = icaldurationtype_from_int (- (a->alarm_minutes) * 60);
- e_cal_component_alarm_set_trigger (alarm, trigger);
+ ECalComponentAlarmTrigger *trigger = NULL;
+ ICalDuration *duration;
+
+ duration = i_cal_duration_from_int (- (a->alarm_minutes) * 60);
+ trigger = e_cal_component_alarm_trigger_new_relative
(E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START, duration);
+ e_cal_component_alarm_take_trigger (alarm, trigger);
+ g_object_unref (duration);
}
if (a->alarm) {
@@ -1919,31 +1924,44 @@ fill_calcomponent (PstImporter *m,
}
if (a->recurrence_description.str != PST_APP_RECUR_NONE) {
- struct icalrecurrencetype r;
+ ICalRecurrence *recr;
GSList recur_list;
- icalrecurrencetype_clear (&r);
- r.interval = 1; /* Interval not implemented in libpst */
+ recr = i_cal_recurrence_new ();
+
+ i_cal_recurrence_set_interval (recr, 1); /* Interval not implemented in libpst */
if (a->recurrence_end) {
- r.until = get_ical_date (a->recurrence_end, FALSE);
+ ICalTime *tt;
+
+ tt = get_ical_date (a->recurrence_end, FALSE);
+ if (tt) {
+ i_cal_recurrence_set_until (recr, tt);
+ g_object_unref (tt);
+ }
}
switch (a->recurrence_type) {
case PST_APP_RECUR_DAILY:
- r.freq = ICAL_DAILY_RECURRENCE; break;
+ i_cal_recurrence_set_freq (recr, I_CAL_DAILY_RECURRENCE);
+ break;
case PST_APP_RECUR_WEEKLY:
- r.freq = ICAL_WEEKLY_RECURRENCE; break;
+ i_cal_recurrence_set_freq (recr, I_CAL_WEEKLY_RECURRENCE);
+ break;
case PST_APP_RECUR_MONTHLY:
- r.freq = ICAL_MONTHLY_RECURRENCE; break;
+ i_cal_recurrence_set_freq (recr, I_CAL_MONTHLY_RECURRENCE);
+ break;
case PST_APP_RECUR_YEARLY:
- r.freq = ICAL_YEARLY_RECURRENCE; break;
+ i_cal_recurrence_set_freq (recr, I_CAL_YEARLY_RECURRENCE);
+ break;
default:
- r.freq = ICAL_NO_RECURRENCE;
+ i_cal_recurrence_set_freq (recr, I_CAL_NO_RECURRENCE);
+ break;
}
- recur_list.data = &r;
+ recur_list.data = recr;
recur_list.next = NULL;
- e_cal_component_set_rrule_list (ec, &recur_list);
+ e_cal_component_set_rrules (ec, &recur_list);
+ g_object_unref (recr);
}
if (item->type == PST_TYPE_SCHEDULE && item->email && item->ascii_type) {
@@ -1962,28 +1980,31 @@ fill_calcomponent (PstImporter *m,
}
if (organizer || organizer_addr) {
- ECalComponentOrganizer org = { 0 };
+ ECalComponentOrganizer *org;
- org.value = organizer_addr;
- org.cn = organizer;
+ org = e_cal_component_organizer_new ();
+ e_cal_component_organizer_set_value (org, organizer_addr);
+ e_cal_component_organizer_set_cn (org, organizer);
- e_cal_component_set_organizer (ec, &org);
+ e_cal_component_set_organizer (ec, org);
+ e_cal_component_organizer_free (org);
}
if (attendee || attendee_addr) {
- ECalComponentAttendee att = { 0 };
+ ECalComponentAttendee *att;
GSList *attendees;
- att.value = attendee_addr;
- att.cn = attendee;
- att.cutype = ICAL_CUTYPE_INDIVIDUAL;
- att.status = ICAL_PARTSTAT_NEEDSACTION;
- att.role = ICAL_ROLE_REQPARTICIPANT;
- att.rsvp = TRUE;
-
- attendees = g_slist_append (NULL, &att);
- e_cal_component_set_attendee_list (ec, attendees);
- g_slist_free (attendees);
+ att = e_cal_component_attendee_new ();
+ e_cal_component_attendee_set_value (att, attendee_addr);
+ e_cal_component_attendee_set_cn (att, attendee);
+ e_cal_component_attendee_set_cutype (att, I_CAL_CUTYPE_INDIVIDUAL);
+ e_cal_component_attendee_set_partstat (att, I_CAL_PARTSTAT_NEEDSACTION);
+ e_cal_component_attendee_set_role (att, I_CAL_ROLE_REQPARTICIPANT);
+ e_cal_component_attendee_set_rsvp (att, TRUE);
+
+ attendees = g_slist_append (NULL, att);
+ e_cal_component_set_attendees (ec, attendees);
+ g_slist_free_full (attendees, e_cal_component_attendee_free);
}
}
@@ -2010,7 +2031,7 @@ pst_process_component (PstImporter *m,
e_cal_client_create_object_sync (
cal, e_cal_component_get_icalcomponent (ec),
- NULL, NULL, &error);
+ E_CAL_OPERATION_FLAG_NONE, NULL, NULL, &error);
if (error != NULL) {
g_warning (
diff --git a/src/plugins/publish-calendar/publish-format-fb.c
b/src/plugins/publish-calendar/publish-format-fb.c
index 7d6c264b6b..3e37bf1a3e 100644
--- a/src/plugins/publish-calendar/publish-format-fb.c
+++ b/src/plugins/publish-calendar/publish-format-fb.c
@@ -42,14 +42,14 @@ write_calendar (const gchar *uid,
ESourceRegistry *registry;
EClient *client = NULL;
GSList *objects = NULL;
- icaltimezone *utc;
+ ICalTimezone *utc;
time_t start = time (NULL), end;
- icalcomponent *top_level;
+ ICalComponent *top_level;
gchar *email = NULL;
GSList *users = NULL;
gboolean success = FALSE;
- utc = icaltimezone_get_utc_timezone ();
+ utc = i_cal_timezone_get_utc_timezone ();
start = time_day_begin_with_zone (start, utc);
switch (dur_type) {
@@ -102,26 +102,26 @@ write_calendar (const gchar *uid,
for (iter = objects; iter; iter = iter->next) {
ECalComponent *comp = iter->data;
- icalcomponent *icalcomp = icalcomponent_new_clone (e_cal_component_get_icalcomponent
(comp));
+ ICalComponent *icomp = i_cal_component_new_clone (e_cal_component_get_icalcomponent
(comp));
- if (!icalcomp)
+ if (!icomp)
continue;
if (!with_details) {
- icalproperty *prop;
+ ICalProperty *prop;
- for (prop = icalcomponent_get_first_property (icalcomp,
ICAL_FREEBUSY_PROPERTY);
+ for (prop = i_cal_component_get_first_property (icomp,
I_CAL_FREEBUSY_PROPERTY);
prop;
- prop = icalcomponent_get_next_property (icalcomp,
ICAL_FREEBUSY_PROPERTY)) {
- icalproperty_remove_parameter_by_name (prop, "X-SUMMARY");
- icalproperty_remove_parameter_by_name (prop, "X-LOCATION");
+ g_object_unref (prop), prop = i_cal_component_get_next_property (icomp,
I_CAL_FREEBUSY_PROPERTY)) {
+ i_cal_property_remove_parameter_by_name (prop, "X-SUMMARY");
+ i_cal_property_remove_parameter_by_name (prop, "X-LOCATION");
}
}
- icalcomponent_add_component (top_level, icalcomp);
+ i_cal_component_take_component (top_level, icomp);
}
- ical_string = icalcomponent_as_ical_string_r (top_level);
+ ical_string = i_cal_component_as_ical_string_r (top_level);
success = g_output_stream_write_all (
stream, ical_string,
@@ -137,7 +137,7 @@ write_calendar (const gchar *uid,
g_free (email);
g_object_unref (client);
- icalcomponent_free (top_level);
+ g_object_unref (top_level);
return success;
}
diff --git a/src/plugins/publish-calendar/publish-format-ical.c
b/src/plugins/publish-calendar/publish-format-ical.c
index ccaf374f3d..72602f264d 100644
--- a/src/plugins/publish-calendar/publish-format-ical.c
+++ b/src/plugins/publish-calendar/publish-format-ical.c
@@ -34,22 +34,22 @@ typedef struct {
} CompTzData;
static void
-insert_tz_comps (icalparameter *param,
+insert_tz_comps (ICalParameter *param,
gpointer cb_data)
{
const gchar *tzid;
CompTzData *tdata = cb_data;
- icaltimezone *zone = NULL;
- icalcomponent *tzcomp;
+ ICalTimezone *zone = NULL;
+ ICalComponent *tzcomp;
GError *error = NULL;
- tzid = icalparameter_get_tzid (param);
+ tzid = i_cal_parameter_get_tzid (param);
if (g_hash_table_lookup (tdata->zones, tzid))
return;
- e_cal_client_get_timezone_sync (
- tdata->client, tzid, &zone, NULL, &error);
+ if (!e_cal_client_get_timezone_sync (tdata->client, tzid, &zone, NULL, &error))
+ zone = NULL;
if (error != NULL) {
g_warning (
@@ -59,16 +59,16 @@ insert_tz_comps (icalparameter *param,
return;
}
- tzcomp = icalcomponent_new_clone (icaltimezone_get_component (zone));
+ tzcomp = i_cal_component_new_clone (i_cal_timezone_get_component (zone));
g_hash_table_insert (tdata->zones, (gpointer) tzid, (gpointer) tzcomp);
}
static void
append_tz_to_comp (gpointer key,
- gpointer value,
- icalcomponent *toplevel)
+ gpointer value,
+ ICalComponent *toplevel)
{
- icalcomponent_add_component (toplevel, (icalcomponent *) value);
+ i_cal_component_take_component (toplevel, (ICalComponent *) value);
}
static gboolean
@@ -81,7 +81,7 @@ write_calendar (const gchar *uid,
ESourceRegistry *registry;
EClient *client = NULL;
GSList *objects = NULL;
- icalcomponent *top_level;
+ ICalComponent *top_level;
gboolean res = FALSE;
shell = e_shell_get_default ();
@@ -119,9 +119,9 @@ write_calendar (const gchar *uid,
tdata.client = E_CAL_CLIENT (client);
for (iter = objects; iter; iter = iter->next) {
- icalcomponent *icalcomp = icalcomponent_new_clone (iter->data);
- icalcomponent_foreach_tzid (icalcomp, insert_tz_comps, &tdata);
- icalcomponent_add_component (top_level, icalcomp);
+ ICalComponent *icomp = i_cal_component_new_clone (iter->data);
+ i_cal_component_foreach_tzid (icomp, insert_tz_comps, &tdata);
+ i_cal_component_take_component (top_level, icomp);
}
g_hash_table_foreach (tdata.zones, (GHFunc) append_tz_to_comp, top_level);
@@ -129,14 +129,14 @@ write_calendar (const gchar *uid,
g_hash_table_destroy (tdata.zones);
tdata.zones = NULL;
- ical_string = icalcomponent_as_ical_string_r (top_level);
+ ical_string = i_cal_component_as_ical_string_r (top_level);
res = g_output_stream_write_all (stream, ical_string, strlen (ical_string), NULL, NULL,
error);
g_free (ical_string);
e_util_free_nullable_object_slist (objects);
}
g_object_unref (client);
- icalcomponent_free (top_level);
+ g_object_unref (top_level);
return res;
}
diff --git a/src/plugins/save-calendar/CMakeLists.txt b/src/plugins/save-calendar/CMakeLists.txt
index 6dd30c6e62..da4e6d99d1 100644
--- a/src/plugins/save-calendar/CMakeLists.txt
+++ b/src/plugins/save-calendar/CMakeLists.txt
@@ -1,6 +1,7 @@
add_eplug_file(save-calendar org-gnome-save-calendar.eplug)
set(DEPENDENCIES
+ evolution-calendar
evolution-shell
evolution-util
)
diff --git a/src/plugins/save-calendar/csv-format.c b/src/plugins/save-calendar/csv-format.c
index 57b2013c63..f779ac8231 100644
--- a/src/plugins/save-calendar/csv-format.c
+++ b/src/plugins/save-calendar/csv-format.c
@@ -90,10 +90,10 @@ add_list_to_csv (GString *line,
needquotes = TRUE;
switch (type) {
case ECALCOMPONENTATTENDEE:
- str = ((ECalComponentAttendee *) list->data)->value;
+ str = itip_strip_mailto (e_cal_component_attendee_get_value
(((ECalComponentAttendee *) list->data)));
break;
case ECALCOMPONENTTEXT:
- str = ((ECalComponentText *) list->data)->value;
+ str = e_cal_component_text_get_value (((ECalComponentText *) list->data));
break;
case CONSTCHAR:
default:
@@ -123,7 +123,7 @@ add_list_to_csv (GString *line,
static GString *
add_nummeric_to_csv (GString *line,
- gint *nummeric,
+ gint nummeric,
CsvConfig *config)
{
@@ -132,18 +132,15 @@ add_nummeric_to_csv (GString *line,
* it prepends a 0 if it's < 10 and > -1
*/
- if (nummeric)
- g_string_append_printf (
- line, "%s%d",
- (*nummeric < 10 && *nummeric > -1) ? "0" : "",
- *nummeric);
+ if (nummeric >= 0)
+ g_string_append_printf (line, "%02d", nummeric);
return g_string_append (line, config->delimiter);
}
static GString *
add_time_to_csv (GString *line,
- icaltimetype *time,
+ ICalTime *time,
CsvConfig *config)
{
@@ -407,121 +404,108 @@ do_save_calendar_csv (FormatHandler *handler,
ECalComponent *comp = iter->data;
gchar *delimiter_temp = NULL;
const gchar *temp_constchar;
+ gchar *temp_char;
GSList *temp_list;
- ECalComponentDateTime temp_dt;
- struct icaltimetype *temp_time;
- gint *temp_int;
- ECalComponentText temp_comptext;
+ ECalComponentDateTime* temp_dt;
+ ICalTime *temp_time;
+ gint temp_int;
+ ECalComponentText* temp_comptext;
line = g_string_new ("");
/* Getting the stuff */
- e_cal_component_get_uid (comp, &temp_constchar);
+ temp_constchar = e_cal_component_get_uid (comp);
line = add_string_to_csv (line, temp_constchar, config);
- e_cal_component_get_summary (comp, &temp_comptext);
+ temp_comptext = e_cal_component_get_summary (comp);
line = add_string_to_csv (
- line, temp_comptext.value, config);
+ line, temp_comptext ? e_cal_component_text_get_value (temp_comptext) : NULL,
config);
+ e_cal_component_text_free (temp_comptext);
- e_cal_component_get_description_list (comp, &temp_list);
+ temp_list = e_cal_component_get_descriptions (comp);
line = add_list_to_csv (
line, temp_list, config, ECALCOMPONENTTEXT);
- if (temp_list)
- e_cal_component_free_text_list (temp_list);
+ g_slist_free_full (temp_list, e_cal_component_text_free);
- e_cal_component_get_categories_list (comp, &temp_list);
+ temp_list = e_cal_component_get_categories_list (comp);
line = add_list_to_csv (
line, temp_list, config, CONSTCHAR);
- if (temp_list)
- e_cal_component_free_categories_list (temp_list);
+ g_slist_free_full (temp_list, g_free);
- e_cal_component_get_comment_list (comp, &temp_list);
+ temp_list = e_cal_component_get_comments (comp);
line = add_list_to_csv (
line, temp_list, config, ECALCOMPONENTTEXT);
- if (temp_list)
- e_cal_component_free_text_list (temp_list);
+ g_slist_free_full (temp_list, e_cal_component_text_free);
- e_cal_component_get_completed (comp, &temp_time);
+ temp_time = e_cal_component_get_completed (comp);
line = add_time_to_csv (line, temp_time, config);
- if (temp_time)
- e_cal_component_free_icaltimetype (temp_time);
+ g_clear_object (&temp_time);
- e_cal_component_get_created (comp, &temp_time);
+ temp_time = e_cal_component_get_created (comp);
line = add_time_to_csv (line, temp_time, config);
- if (temp_time)
- e_cal_component_free_icaltimetype (temp_time);
+ g_clear_object (&temp_time);
- e_cal_component_get_contact_list (comp, &temp_list);
+ temp_list = e_cal_component_get_contacts (comp);
line = add_list_to_csv (
line, temp_list, config, ECALCOMPONENTTEXT);
- if (temp_list)
- e_cal_component_free_text_list (temp_list);
+ g_slist_free_full (temp_list, e_cal_component_text_free);
- e_cal_component_get_dtstart (comp, &temp_dt);
+ temp_dt = e_cal_component_get_dtstart (comp);
line = add_time_to_csv (
- line, temp_dt.value ?
- temp_dt.value : NULL, config);
- e_cal_component_free_datetime (&temp_dt);
+ line, temp_dt && e_cal_component_datetime_get_value (temp_dt) ?
+ e_cal_component_datetime_get_value (temp_dt) : NULL, config);
+ e_cal_component_datetime_free (temp_dt);
- e_cal_component_get_dtend (comp, &temp_dt);
+ temp_dt = e_cal_component_get_dtend (comp);
line = add_time_to_csv (
- line, temp_dt.value ?
- temp_dt.value : NULL, config);
- e_cal_component_free_datetime (&temp_dt);
+ line, temp_dt && e_cal_component_datetime_get_value (temp_dt) ?
+ e_cal_component_datetime_get_value (temp_dt) : NULL, config);
+ e_cal_component_datetime_free (temp_dt);
- e_cal_component_get_due (comp, &temp_dt);
+ temp_dt = e_cal_component_get_due (comp);
line = add_time_to_csv (
- line, temp_dt.value ?
- temp_dt.value : NULL, config);
- e_cal_component_free_datetime (&temp_dt);
+ line, temp_dt && e_cal_component_datetime_get_value (temp_dt) ?
+ e_cal_component_datetime_get_value (temp_dt) : NULL, config);
+ e_cal_component_datetime_free (temp_dt);
- e_cal_component_get_percent (comp, &temp_int);
+ temp_int = e_cal_component_get_percent_complete (comp);
line = add_nummeric_to_csv (line, temp_int, config);
- e_cal_component_get_priority (comp, &temp_int);
+ temp_int = e_cal_component_get_priority (comp);
line = add_nummeric_to_csv (line, temp_int, config);
- e_cal_component_get_url (comp, &temp_constchar);
- line = add_string_to_csv (line, temp_constchar, config);
+ temp_char = e_cal_component_get_url (comp);
+ line = add_string_to_csv (line, temp_char, config);
+ g_free (temp_char);
if (e_cal_component_has_attendees (comp)) {
- e_cal_component_get_attendee_list (comp, &temp_list);
+ temp_list = e_cal_component_get_attendees (comp);
line = add_list_to_csv (
line, temp_list, config,
ECALCOMPONENTATTENDEE);
- if (temp_list)
- e_cal_component_free_attendee_list (temp_list);
+ g_slist_free_full (temp_list, e_cal_component_attendee_free);
} else {
line = add_list_to_csv (
line, NULL, config,
ECALCOMPONENTATTENDEE);
}
- e_cal_component_get_location (comp, &temp_constchar);
- line = add_string_to_csv (line, temp_constchar, config);
+ temp_char = e_cal_component_get_location (comp);
+ line = add_string_to_csv (line, temp_char, config);
+ g_free (temp_char);
- e_cal_component_get_last_modified (comp, &temp_time);
+ temp_time = e_cal_component_get_last_modified (comp);
/* Append a newline (record delimiter) */
delimiter_temp = config->delimiter;
config->delimiter = config->newline;
line = add_time_to_csv (line, temp_time, config);
+ g_clear_object (&temp_time);
/* And restore for the next record */
config->delimiter = delimiter_temp;
- /* Important note!
- * The documentation is not requiring this!
- *
- * if (temp_time)
- * e_cal_component_free_icaltimetype (temp_time);
- *
- * Please uncomment and fix documentation if untrue
- * http://www.gnome.org/projects/evolution/
- * developer-doc/libecal/ECalComponent.html
- * #e-cal-component-get-last-modified
- */
g_output_stream_write_all (
stream, line->str, line->len,
NULL, NULL, &error);
diff --git a/src/plugins/save-calendar/format-handler.h b/src/plugins/save-calendar/format-handler.h
index dd5ec64d1d..61665e41fb 100644
--- a/src/plugins/save-calendar/format-handler.h
+++ b/src/plugins/save-calendar/format-handler.h
@@ -23,6 +23,7 @@
#include <libecal/libecal.h>
#include <e-util/e-util.h>
+#include <calendar/gui/itip-utils.h>
typedef struct _FormatHandler FormatHandler;
diff --git a/src/plugins/save-calendar/ical-format.c b/src/plugins/save-calendar/ical-format.c
index 43171faf39..3f87255d27 100644
--- a/src/plugins/save-calendar/ical-format.c
+++ b/src/plugins/save-calendar/ical-format.c
@@ -47,22 +47,22 @@ typedef struct {
} CompTzData;
static void
-insert_tz_comps (icalparameter *param,
+insert_tz_comps (ICalParameter *param,
gpointer cb_data)
{
const gchar *tzid;
CompTzData *tdata = cb_data;
- icaltimezone *zone = NULL;
- icalcomponent *tzcomp;
+ ICalTimezone *zone = NULL;
+ ICalComponent *tzcomp;
GError *error = NULL;
- tzid = icalparameter_get_tzid (param);
+ tzid = i_cal_parameter_get_tzid (param);
if (g_hash_table_lookup (tdata->zones, tzid))
return;
- e_cal_client_get_timezone_sync (
- tdata->client, tzid, &zone, NULL, &error);
+ if (!e_cal_client_get_timezone_sync (tdata->client, tzid, &zone, NULL, &error))
+ zone = NULL;
if (error != NULL) {
g_warning (
@@ -72,16 +72,16 @@ insert_tz_comps (icalparameter *param,
return;
}
- tzcomp = icalcomponent_new_clone (icaltimezone_get_component (zone));
+ tzcomp = i_cal_component_new_clone (i_cal_timezone_get_component (zone));
g_hash_table_insert (tdata->zones, (gpointer) tzid, (gpointer) tzcomp);
}
static void
append_tz_to_comp (gpointer key,
- gpointer value,
- icalcomponent *toplevel)
+ gpointer value,
+ ICalComponent *toplevel)
{
- icalcomponent_add_component (toplevel, (icalcomponent *) value);
+ i_cal_component_add_component (toplevel, (ICalComponent *) value);
}
static void
@@ -94,7 +94,7 @@ do_save_calendar_ical (FormatHandler *handler,
EClient *source_client;
GError *error = NULL;
GSList *objects = NULL;
- icalcomponent *top_level = NULL;
+ ICalComponent *top_level = NULL;
if (!dest_uri)
return;
@@ -133,10 +133,10 @@ do_save_calendar_ical (FormatHandler *handler,
tdata.client = E_CAL_CLIENT (source_client);
for (iter = objects; iter; iter = iter->next) {
- icalcomponent *icalcomp = icalcomponent_new_clone (iter->data);
+ ICalComponent *icomp = i_cal_component_new_clone (iter->data);
- icalcomponent_foreach_tzid (icalcomp, insert_tz_comps, &tdata);
- icalcomponent_add_component (top_level, icalcomp);
+ i_cal_component_foreach_tzid (icomp, insert_tz_comps, &tdata);
+ i_cal_component_take_component (top_level, icomp);
}
g_hash_table_foreach (tdata.zones, (GHFunc) append_tz_to_comp, top_level);
@@ -148,7 +148,7 @@ do_save_calendar_ical (FormatHandler *handler,
stream = open_for_writing (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (selector))),
dest_uri, &error);
if (stream) {
- gchar *ical_str = icalcomponent_as_ical_string_r (top_level);
+ gchar *ical_str = i_cal_component_as_ical_string_r (top_level);
g_output_stream_write_all (stream, ical_str, strlen (ical_str), NULL, NULL, &error);
g_output_stream_close (stream, NULL, NULL);
@@ -169,7 +169,7 @@ do_save_calendar_ical (FormatHandler *handler,
/* terminate */
g_object_unref (source_client);
- icalcomponent_free (top_level);
+ g_object_unref (top_level);
}
FormatHandler *
diff --git a/src/plugins/save-calendar/rdf-format.c b/src/plugins/save-calendar/rdf-format.c
index 3be32efe6e..2c7079e12a 100644
--- a/src/plugins/save-calendar/rdf-format.c
+++ b/src/plugins/save-calendar/rdf-format.c
@@ -95,10 +95,10 @@ add_list_to_rdf (xmlNodePtr node,
switch (type) {
case ECALCOMPONENTATTENDEE:
- str = ((ECalComponentAttendee *) list->data)->value;
+ str = itip_strip_mailto (e_cal_component_attendee_get_value
((ECalComponentAttendee *) list->data));
break;
case ECALCOMPONENTTEXT:
- str = ((ECalComponentText *) list->data)->value;
+ str = e_cal_component_text_get_value ((ECalComponentText *) list->data);
break;
case CONSTCHAR:
default:
@@ -116,10 +116,10 @@ add_list_to_rdf (xmlNodePtr node,
static void
add_nummeric_to_rdf (xmlNodePtr node,
const gchar *tag,
- gint *nummeric)
+ gint nummeric)
{
- if (nummeric) {
- gchar *value = g_strdup_printf ("%d", *nummeric);
+ if (nummeric >= 0) {
+ gchar *value = g_strdup_printf ("%d", nummeric);
xmlNodePtr cur_node = xmlNewChild (node, NULL, (guchar *) tag, (guchar *) value);
xmlSetProp (cur_node, (const guchar *)"rdf:datatype", (const guchar
*)"http://www.w3.org/2001/XMLSchema#integer");
g_free (value);
@@ -129,7 +129,7 @@ add_nummeric_to_rdf (xmlNodePtr node,
static void
add_time_to_rdf (xmlNodePtr node,
const gchar *tag,
- icaltimetype *time)
+ ICalTime *time)
{
if (time) {
xmlNodePtr cur_node = NULL;
@@ -254,99 +254,89 @@ do_save_calendar_rdf (FormatHandler *handler,
for (iter = objects; iter; iter = iter->next) {
ECalComponent *comp = iter->data;
const gchar *temp_constchar;
- gchar *tmp_str = NULL;
+ gchar *tmp_str;
GSList *temp_list;
- ECalComponentDateTime temp_dt;
- struct icaltimetype *temp_time;
- gint *temp_int;
- ECalComponentText temp_comptext;
+ ECalComponentDateTime *temp_dt;
+ ICalTime *temp_time;
+ gint temp_int;
+ ECalComponentText *temp_comptext;
xmlNodePtr c_node = xmlNewChild (fnode, NULL, (const guchar *)"component", NULL);
xmlNodePtr node = xmlNewChild (c_node, NULL, (const guchar *)"Vevent", NULL);
/* Getting the stuff */
- e_cal_component_get_uid (comp, &temp_constchar);
+ temp_constchar = e_cal_component_get_uid (comp);
tmp_str = g_strdup_printf ("#%s", temp_constchar);
xmlSetProp (node, (const guchar *)"about", (guchar *) tmp_str);
g_free (tmp_str);
- add_string_to_rdf (node, "uid",temp_constchar);
+ add_string_to_rdf (node, "uid", temp_constchar);
- e_cal_component_get_summary (comp, &temp_comptext);
- add_string_to_rdf (node, "summary", temp_comptext.value);
+ temp_comptext = e_cal_component_get_summary (comp);
+ if (temp_comptext)
+ add_string_to_rdf (node, "summary", e_cal_component_text_get_value
(temp_comptext));
+ e_cal_component_text_free (temp_comptext);
- e_cal_component_get_description_list (comp, &temp_list);
+ temp_list = e_cal_component_get_descriptions (comp);
add_list_to_rdf (node, "description", temp_list, ECALCOMPONENTTEXT);
- if (temp_list)
- e_cal_component_free_text_list (temp_list);
+ g_slist_free_full (temp_list, e_cal_component_text_free);
- e_cal_component_get_categories_list (comp, &temp_list);
+ temp_list = e_cal_component_get_categories_list (comp);
add_list_to_rdf (node, "categories", temp_list, CONSTCHAR);
- if (temp_list)
- e_cal_component_free_categories_list (temp_list);
+ g_slist_free_full (temp_list, g_free);
- e_cal_component_get_comment_list (comp, &temp_list);
+ temp_list = e_cal_component_get_comments (comp);
add_list_to_rdf (node, "comment", temp_list, ECALCOMPONENTTEXT);
+ g_slist_free_full (temp_list, e_cal_component_text_free);
- if (temp_list)
- e_cal_component_free_text_list (temp_list);
-
- e_cal_component_get_completed (comp, &temp_time);
+ temp_time = e_cal_component_get_completed (comp);
add_time_to_rdf (node, "completed", temp_time);
- if (temp_time)
- e_cal_component_free_icaltimetype (temp_time);
+ g_clear_object (&temp_time);
- e_cal_component_get_created (comp, &temp_time);
+ temp_time = e_cal_component_get_created (comp);
add_time_to_rdf (node, "created", temp_time);
- if (temp_time)
- e_cal_component_free_icaltimetype (temp_time);
+ g_clear_object (&temp_time);
- e_cal_component_get_contact_list (comp, &temp_list);
+ temp_list = e_cal_component_get_contacts (comp);
add_list_to_rdf (node, "contact", temp_list, ECALCOMPONENTTEXT);
- if (temp_list)
- e_cal_component_free_text_list (temp_list);
+ g_slist_free_full (temp_list, e_cal_component_text_free);
- e_cal_component_get_dtstart (comp, &temp_dt);
- add_time_to_rdf (node, "dtstart", temp_dt.value ? temp_dt.value : NULL);
- e_cal_component_free_datetime (&temp_dt);
+ temp_dt = e_cal_component_get_dtstart (comp);
+ add_time_to_rdf (node, "dtstart", temp_dt && e_cal_component_datetime_get_value
(temp_dt) ?
+ e_cal_component_datetime_get_value (temp_dt) : NULL);
+ e_cal_component_datetime_free (temp_dt);
- e_cal_component_get_dtend (comp, &temp_dt);
- add_time_to_rdf (node, "dtend", temp_dt.value ? temp_dt.value : NULL);
- e_cal_component_free_datetime (&temp_dt);
+ temp_dt = e_cal_component_get_dtend (comp);
+ add_time_to_rdf (node, "dtend", temp_dt && e_cal_component_datetime_get_value
(temp_dt) ?
+ e_cal_component_datetime_get_value (temp_dt) : NULL);
+ e_cal_component_datetime_free (temp_dt);
- e_cal_component_get_due (comp, &temp_dt);
- add_time_to_rdf (node, "due", temp_dt.value ? temp_dt.value : NULL);
- e_cal_component_free_datetime (&temp_dt);
+ temp_dt = e_cal_component_get_due (comp);
+ add_time_to_rdf (node, "due", temp_dt && e_cal_component_datetime_get_value (temp_dt)
?
+ e_cal_component_datetime_get_value (temp_dt) : NULL);
+ e_cal_component_datetime_free (temp_dt);
- e_cal_component_get_percent (comp, &temp_int);
+ temp_int = e_cal_component_get_percent_complete (comp);
add_nummeric_to_rdf (node, "percentComplete", temp_int);
- e_cal_component_get_priority (comp, &temp_int);
+ temp_int = e_cal_component_get_priority (comp);
add_nummeric_to_rdf (node, "priority", temp_int);
- e_cal_component_get_url (comp, &temp_constchar);
- add_string_to_rdf (node, "URL", temp_constchar);
+ tmp_str = e_cal_component_get_url (comp);
+ add_string_to_rdf (node, "URL", tmp_str);
+ g_free (tmp_str);
if (e_cal_component_has_attendees (comp)) {
- e_cal_component_get_attendee_list (comp, &temp_list);
+ temp_list = e_cal_component_get_attendees (comp);
add_list_to_rdf (node, "attendee", temp_list, ECALCOMPONENTATTENDEE);
- if (temp_list)
- e_cal_component_free_attendee_list (temp_list);
+ g_slist_free_full (temp_list, e_cal_component_attendee_free);
}
- e_cal_component_get_location (comp, &temp_constchar);
- add_string_to_rdf (node, "location", temp_constchar);
+ tmp_str = e_cal_component_get_location (comp);
+ add_string_to_rdf (node, "location", tmp_str);
+ g_free (tmp_str);
- e_cal_component_get_last_modified (comp, &temp_time);
+ temp_time = e_cal_component_get_last_modified (comp);
add_time_to_rdf (node, "lastModified",temp_time);
-
- /* Important note!
- * The documentation is not requiring this!
- *
- * if (temp_time) e_cal_component_free_icaltimetype (temp_time);
- *
- * Please uncomment and fix documentation if untrue
- * http://www.gnome.org/projects/evolution/developer-doc/libecal/ECalComponent.html
- * #e-cal-component-get-last-modified
- */
+ g_clear_object (&temp_time);
}
/* I used a buffer rather than xmlDocDump: I want gio support */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]