[evolution-patches] [calendar-alarms] fix for bug #269685
- From: "Chakravarthi P" <pchakravarthi novell com>
- To: <evolution-patches gnome org>
- Subject: [evolution-patches] [calendar-alarms] fix for bug #269685
- Date: Sun, 28 Aug 2005 22:42:58 -0600
hi,
after choosing to snooze the alarm
doesn't display the latest summary
(if a modification is made to it in the meanwhile)
this is because the cal component that
CompQueuedAlarms structure stores is not
updated when it is modified. The attached patch
does this and fixes the problem. (bug # 269685)
regards.
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2802
diff -u -p -w -r1.2802 ChangeLog
--- ChangeLog 25 Aug 2005 10:26:27 -0000 1.2802
+++ ChangeLog 27 Aug 2005 11:07:42 -0000
@@ -1,3 +1,13 @@
+2005-08-27 P. S. Chakravarthi <pchakravarthi novell com>
+
+ Fixes #269685
+ * gui/alarm-notify/alarm-queue.c:
+ (query_objects_changed_cb): update the CompQueuedAlarms
+ structure with the modified component whenever there is
+ a modification in the component.
+ (set_comp_queued_alarms): added this function to facilitate
+ above change.
+
2005-08-24 Chenthill Palanisamy <pchenthill novell com>
Fixes #313705
Index: gui/alarm-notify/alarm-queue.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-queue.c,v
retrieving revision 1.87
diff -u -p -w -r1.87 alarm-queue.c
--- gui/alarm-notify/alarm-queue.c 16 May 2005 06:12:59 -0000 1.87
+++ gui/alarm-notify/alarm-queue.c 27 Aug 2005 11:07:43 -0000
@@ -488,6 +488,14 @@ lookup_comp_queued_alarms (ClientAlarms
return g_hash_table_lookup (ca->uid_alarms_hash, uid);
}
+/* Sets a component's queued alarm structure by its uid in a client alarms structure */
+static void
+set_comp_queued_alarms (ClientAlarms *ca, const char *uid, CompQueuedAlarms *cqa)
+{
+ g_hash_table_insert (ca->uid_alarms_hash, uid, cqa);
+ return;
+}
+
static void
remove_alarms (CompQueuedAlarms *cqa, gboolean free_object)
{
@@ -544,7 +552,7 @@ query_objects_changed_cb (ECal *client,
ECalComponentAlarms *alarms;
gboolean found;
icaltimezone *zone;
- CompQueuedAlarms *cqa;
+ CompQueuedAlarms *cqa = NULL;
GList *l;
ca = data;
@@ -562,7 +570,9 @@ query_objects_changed_cb (ECal *client,
for (l = objects; l != NULL; l = l->next) {
const char *uid;
GSList *sl;
+ ECalComponent *comp = e_cal_component_new ();
+ e_cal_component_set_icalcomponent (comp, l->data);
uid = icalcomponent_get_uid (l->data);
found = e_cal_get_alarms_for_object (ca->client, uid, from, day_end, &alarms);
@@ -584,6 +594,11 @@ query_objects_changed_cb (ECal *client,
if (alarms == NULL || alarms->alarms == NULL) {
if (alarms)
e_cal_component_alarms_free (alarms);
+ if (cqa && cqa->alarms) {
+ /* Update the comp with alarm and the cqa structure with the comp*/
+ cqa->alarms->comp = e_cal_component_clone (comp);
+ set_comp_queued_alarms (ca, uid, cqa);
+ }
continue;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]