diff options
Diffstat (limited to 'calendar/cal-util')
-rw-r--r-- | calendar/cal-util/cal-component.c | 35 | ||||
-rw-r--r-- | calendar/cal-util/cal-component.h | 1 |
2 files changed, 36 insertions, 0 deletions
diff --git a/calendar/cal-util/cal-component.c b/calendar/cal-util/cal-component.c index 7ef6f9e477..b4784c6124 100644 --- a/calendar/cal-util/cal-component.c +++ b/calendar/cal-util/cal-component.c @@ -4066,6 +4066,41 @@ cal_component_remove_alarm (CalComponent *comp, const char *auid) icalcomponent_free (alarm); } +static gboolean +for_each_remove_all_alarms (gpointer key, gpointer value, gpointer data) +{ + CalComponent *comp = CAL_COMPONENT (data); + CalComponentPrivate *priv; + icalcomponent *alarm = value; + + priv = comp->priv; + + icalcomponent_remove_component (priv->icalcomp, alarm); + icalcomponent_free (alarm); + + return TRUE; +} + +/** + * cal_component_remove_all_alarms: + * @comp: A calendar component + * + * Remove all alarms from the calendar component + **/ +void +cal_component_remove_all_alarms (CalComponent *comp) +{ + CalComponentPrivate *priv; + + g_return_if_fail (comp != NULL); + g_return_if_fail (IS_CAL_COMPONENT (comp)); + + priv = comp->priv; + g_return_if_fail (priv->icalcomp != NULL); + + g_hash_table_foreach_remove (priv->alarm_uid_hash, for_each_remove_all_alarms, comp); +} + /* Scans an icalproperty from a calendar component and adds its mapping to our * own alarm structure. diff --git a/calendar/cal-util/cal-component.h b/calendar/cal-util/cal-component.h index 1ab8ee24bd..801cdc51f0 100644 --- a/calendar/cal-util/cal-component.h +++ b/calendar/cal-util/cal-component.h @@ -394,6 +394,7 @@ typedef struct { gboolean cal_component_has_alarms (CalComponent *comp); void cal_component_add_alarm (CalComponent *comp, CalComponentAlarm *alarm); void cal_component_remove_alarm (CalComponent *comp, const char *auid); +void cal_component_remove_all_alarms (CalComponent *comp); GList *cal_component_get_alarm_uids (CalComponent *comp); CalComponentAlarm *cal_component_get_alarm (CalComponent *comp, const char *auid); |