[evolution] Fixes bug 499107 (bnc) - delete all the recurring instances from the folder.
- From: Chenthill Palanisamy <pchen src gnome org>
- To: svn-commits-list gnome org
- Subject: [evolution] Fixes bug 499107 (bnc) - delete all the recurring instances from the folder.
- Date: Thu, 21 May 2009 05:07:31 -0400 (EDT)
commit 66687b22ec92a829f752c39fa9418be33b16c0bd
Author: Chenthill Palanisamy <pchenthill novell com>
Date: Thu May 21 14:06:28 2009 +0530
Fixes bug 499107 (bnc) - delete all the recurring instances from the folder.
Reset the index properly so that all the recurring instances are deleted
once the mail is processed.
---
plugins/itip-formatter/itip-formatter.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c
index 6eebfde..c2f64a1 100644
--- a/plugins/itip-formatter/itip-formatter.c
+++ b/plugins/itip-formatter/itip-formatter.c
@@ -38,6 +38,7 @@
#include <camel/camel-multipart.h>
#include <camel/camel-service.h>
#include <camel/camel-store.h>
+#include <camel/camel-db.h>
#include <libecal/e-cal.h>
#include <libecal/e-cal-time-util.h>
#include <libedataserverui/e-source-selector.h>
@@ -1876,6 +1877,7 @@ view_response_cb (GtkWidget *widget, ItipViewResponse response, gpointer data)
camel_message_info_free (mi);
if (tag) {
int i = 0, count;
+ GSList *list = NULL;
count = camel_folder_summary_count (pitip->folder->summary);
for (i = 0; i < count; i++) {
@@ -1884,12 +1886,18 @@ view_response_cb (GtkWidget *widget, ItipViewResponse response, gpointer data)
continue;
camel_message_info_ref (mi);
if ( camel_message_info_user_tag (mi, "recurrence-key") && g_str_equal (camel_message_info_user_tag (mi, "recurrence-key"), tag)) {
+ camel_folder_summary_remove_uid_fast (pitip->folder->summary, (char *)(mi->uid));
+ camel_folder_change_info_remove_uid (changes, (char *) mi->uid);
+ list = g_slist_prepend (list, (gpointer) mi->uid);
- camel_folder_summary_remove_uid(pitip->folder->summary, (char *)(mi->uid));
- camel_folder_change_info_remove_uid (changes, (char *)(mi->uid));
+ /* step back once to have the right index */
+ count--;
+ i--;
}
camel_message_info_free (mi);
}
+ camel_db_delete_uids (pitip->folder->parent_store->cdb_w, pitip->folder->full_name, list, NULL);
+ g_slist_free (list);
}
} else {
/* Either not a recurring appointment or "apply-to-all" is not selected. So just delete this instance alone */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]