diff options
author | JP Rosevear <jpr@ximian.com> | 2001-12-09 07:18:37 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2001-12-09 07:18:37 +0800 |
commit | d1ddbc231d6e816af4e582b79da400fda8e8bd01 (patch) | |
tree | 3b96dd341632540f62015d4fd327c83b2246b77d /calendar/cal-util/cal-component.c | |
parent | 9cb9cf06c9063ddf76a87b07cb6e94c2008dd605 (diff) | |
download | gsoc2013-evolution-d1ddbc231d6e816af4e582b79da400fda8e8bd01.tar.gz gsoc2013-evolution-d1ddbc231d6e816af4e582b79da400fda8e8bd01.tar.zst gsoc2013-evolution-d1ddbc231d6e816af4e582b79da400fda8e8bd01.zip |
if we have an alarm that can be represented on the pilot, set the
2001-12-08 JP Rosevear <jpr@ximian.com>
* conduits/calendar/calendar-conduit.c (local_record_from_comp):
if we have an alarm that can be represented on the pilot, set the
appointment fields appropriately, if the duration has values for
minutes and/or hours and/or days, use the lowest common
denominator
(comp_from_remote_record): if the appointment on the pilot has an
alarm, find the first alarm an item currently had that is relative
to the start and with a negative duration and update it (or create
a new one if no valid ones exist)
* cal-util/cal-component.c (cal_component_get_alarm_uids): build
list in the order they appear in the component so we get
consisting order for the gui and for the pilot
svn path=/trunk/; revision=14943
Diffstat (limited to 'calendar/cal-util/cal-component.c')
-rw-r--r-- | calendar/cal-util/cal-component.c | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/calendar/cal-util/cal-component.c b/calendar/cal-util/cal-component.c index 5fc5addf19..eeb51c79f6 100644 --- a/calendar/cal-util/cal-component.c +++ b/calendar/cal-util/cal-component.c @@ -4462,19 +4462,6 @@ make_alarm (icalcomponent *subcomp) return alarm; } -/* Used from g_hash_table_foreach(); adds an alarm UID to a list */ -static void -add_alarm_uid (gpointer key, gpointer value, gpointer data) -{ - const char *auid; - GList **l; - - auid = key; - l = data; - - *l = g_list_prepend (*l, g_strdup (auid)); -} - /** * cal_component_get_alarm_uids: * @comp: A calendar component. @@ -4489,6 +4476,7 @@ GList * cal_component_get_alarm_uids (CalComponent *comp) { CalComponentPrivate *priv; + icalcompiter iter; GList *l; g_return_val_if_fail (comp != NULL, NULL); @@ -4498,7 +4486,29 @@ cal_component_get_alarm_uids (CalComponent *comp) g_return_val_if_fail (priv->icalcomp != NULL, NULL); l = NULL; - g_hash_table_foreach (priv->alarm_uid_hash, add_alarm_uid, &l); + for (iter = icalcomponent_begin_component (priv->icalcomp, ICAL_VALARM_COMPONENT); + icalcompiter_deref (&iter) != NULL; + icalcompiter_next (&iter)) { + icalcomponent *subcomp; + icalproperty *prop; + + subcomp = icalcompiter_deref (&iter); + for (prop = icalcomponent_get_first_property (subcomp, ICAL_X_PROPERTY); + prop; + prop = icalcomponent_get_next_property (subcomp, ICAL_X_PROPERTY)) { + const char *xname; + + xname = icalproperty_get_x_name (prop); + g_assert (xname != NULL); + + if (strcmp (xname, EVOLUTION_ALARM_UID_PROPERTY) == 0) { + const char *auid; + + auid = alarm_uid_from_prop (prop); + l = g_list_append (l, g_strdup (auid)); + } + } + } return l; } |