aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/conduits
diff options
context:
space:
mode:
authorJP Rosevear <jpr@helixcode.com>2000-10-16 22:03:03 +0800
committerJP Rosevear <jpr@src.gnome.org>2000-10-16 22:03:03 +0800
commit6793123da8bf07d588c2b7c403e8d070ef7d3e91 (patch)
tree536169756bd79dfe07adb4574eb4c5542bad3392 /calendar/conduits
parent45e9efcab1f4d35eb8f162f2dd3048f1a4f7c417 (diff)
downloadgsoc2013-evolution-6793123da8bf07d588c2b7c403e8d070ef7d3e91.tar.gz
gsoc2013-evolution-6793123da8bf07d588c2b7c403e8d070ef7d3e91.tar.zst
gsoc2013-evolution-6793123da8bf07d588c2b7c403e8d070ef7d3e91.zip
Remove pilot cruft. All pilot stuff is in the conduits now and uses the
2000-10-16 JP Rosevear <jpr@helixcode.com> * cal-client/cal-client.h: Remove pilot cruft. All pilot stuff is in the conduits now and uses the logging facility. * pcs/cal-backend-file.c: ditto * pcs/cal-backend.h: ditto * pcs/cal-backend.c: ditto * pcs/cal.c: ditto * pcs/cal.h: ditto * idl/evolution-calendar.idl: ditto * cal-util/cal-component.h: ditto * cal-util/cal-component.c: ditto * cal-client/cal-client.c: ditto * conduits/calendar/calendar-conduit.c (local_record_from_comp): Take a stab at storing recurrence stuff on the pilot properly * pcs/cal-backend.c (cal_backend_update_object): Don't log the event until after the update in case its a new item svn path=/trunk/; revision=5940
Diffstat (limited to 'calendar/conduits')
-rw-r--r--calendar/conduits/calendar/calendar-conduit.c41
1 files changed, 40 insertions, 1 deletions
diff --git a/calendar/conduits/calendar/calendar-conduit.c b/calendar/conduits/calendar/calendar-conduit.c
index 757dd66958..37661377b1 100644
--- a/calendar/conduits/calendar/calendar-conduit.c
+++ b/calendar/conduits/calendar/calendar-conduit.c
@@ -415,7 +415,8 @@ local_record_from_comp (ECalLocalRecord *local, CalComponent *comp, ECalConduitC
CalComponentDateTime dt;
time_t dt_time;
CalComponentClassification classif;
-
+ int i;
+
LOG ("local_record_from_comp\n");
g_return_if_fail (local != NULL);
@@ -463,6 +464,44 @@ local_record_from_comp (ECalLocalRecord *local, CalComponent *comp, ECalConduitC
local->appt->event = 1;
}
+ /* Recurrence Rules */
+ local->appt->repeatType = repeatNone;
+
+ if (cal_component_has_rrules (comp)) {
+ GSList *list;
+ struct icalrecurrencetype *recur;
+
+ cal_component_get_rrule_list (comp, &list);
+ recur = list->data;
+
+ switch (recur->freq) {
+ case ICAL_DAILY_RECURRENCE:
+ local->appt->repeatType = repeatDaily;
+ break;
+ case ICAL_WEEKLY_RECURRENCE:
+ local->appt->repeatType = repeatWeekly;
+ for (i = 0; i<= 7 && recur->by_day[i] != SHRT_MAX; i++)
+ local->appt->repeatDays[0] = 0;
+ break;
+ case ICAL_MONTHLY_RECURRENCE:
+ if (recur->by_month_day[0] != SHRT_MAX) {
+ local->appt->repeatType = repeatMonthlyByDate;
+ }
+ break;
+ case ICAL_YEARLY_RECURRENCE:
+ local->appt->repeatType = repeatYearly;
+ break;
+ default:
+ break;
+ }
+
+ if (local->appt->repeatType != repeatNone) {
+ local->appt->repeatFrequency = recur->interval;
+ }
+
+ cal_component_free_recur_list (list);
+ }
+
cal_component_get_classification (comp, &classif);
if (classif == CAL_COMPONENT_CLASS_PRIVATE)