diff options
author | Rodrigo Moya <rodrigo@novell.com> | 2005-01-19 21:19:52 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2005-01-19 21:19:52 +0800 |
commit | c73a9949e7a93e1d60b39b4ad208ff1f0f245199 (patch) | |
tree | 10fd071787e9d82334759f69c0d348652d5a4f56 | |
parent | 3e7d1857888141e68e1804884f9730d2d87c0c1c (diff) | |
download | gsoc2013-evolution-c73a9949e7a93e1d60b39b4ad208ff1f0f245199.tar gsoc2013-evolution-c73a9949e7a93e1d60b39b4ad208ff1f0f245199.tar.gz gsoc2013-evolution-c73a9949e7a93e1d60b39b4ad208ff1f0f245199.tar.bz2 gsoc2013-evolution-c73a9949e7a93e1d60b39b4ad208ff1f0f245199.tar.lz gsoc2013-evolution-c73a9949e7a93e1d60b39b4ad208ff1f0f245199.tar.xz gsoc2013-evolution-c73a9949e7a93e1d60b39b4ad208ff1f0f245199.tar.zst gsoc2013-evolution-c73a9949e7a93e1d60b39b4ad208ff1f0f245199.zip |
use receive_objects method instead of individually updating objects.
2005-01-19 Rodrigo Moya <rodrigo@novell.com>
* importers/icalendar-imporer.c (update_objects): use receive_objects
method instead of individually updating objects.
svn path=/trunk/; revision=28449
-rw-r--r-- | calendar/ChangeLog | 5 | ||||
-rw-r--r-- | calendar/importers/icalendar-importer.c | 40 |
2 files changed, 18 insertions, 27 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 770a6b3235..e64e540ea5 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,8 @@ +2005-01-19 Rodrigo Moya <rodrigo@novell.com> + + * importers/icalendar-imporer.c (update_objects): use receive_objects + method instead of individually updating objects. + 2005-01-18 Rodrigo Moya <rodrigo@novell.com> Fixes #71407 diff --git a/calendar/importers/icalendar-importer.c b/calendar/importers/icalendar-importer.c index 28318f01ba..d7fae2eb1d 100644 --- a/calendar/importers/icalendar-importer.c +++ b/calendar/importers/icalendar-importer.c @@ -187,39 +187,25 @@ update_objects (ECal *client, icalcomponent *icalcomp) { icalcomponent *subcomp; icalcomponent_kind kind; + icalcomponent *vcal; + GError *error = NULL; + gboolean success = TRUE; kind = icalcomponent_isa (icalcomp); - if (kind == ICAL_VTODO_COMPONENT || kind == ICAL_VEVENT_COMPONENT) - return update_single_object (client, icalcomp); - else if (kind != ICAL_VCALENDAR_COMPONENT) + if (kind == ICAL_VTODO_COMPONENT || kind == ICAL_VEVENT_COMPONENT) { + vcal = e_cal_util_new_top_level (); + icalcomponent_add_component (vcal, icalcomponent_new_clone (icalcomp)); + } else if (kind == ICAL_VCALENDAR_COMPONENT) { + vcal = icalcomponent_new_clone (icalcomp); + } else return FALSE; - subcomp = icalcomponent_get_first_component (icalcomp, ICAL_ANY_COMPONENT); - while (subcomp) { - gboolean success; - - kind = icalcomponent_isa (subcomp); - if (kind == ICAL_VTIMEZONE_COMPONENT) { - icaltimezone *zone; - - zone = icaltimezone_new (); - icaltimezone_set_component (zone, subcomp); - - success = e_cal_add_timezone (client, zone, NULL); - icaltimezone_free (zone, 1); - if (!success) - return success; - } else if (kind == ICAL_VTODO_COMPONENT || - kind == ICAL_VEVENT_COMPONENT) { - success = update_single_object (client, subcomp); - if (!success) - return success; - } + if (!e_cal_receive_objects (client, vcal, NULL)) + success = FALSE; - subcomp = icalcomponent_get_next_component (icalcomp, ICAL_ANY_COMPONENT); - } + icalcomponent_free (vcal); - return TRUE; + return success; } static void |