summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivasa Ragavan <sragavan@novell.com>2009-01-30 09:28:43 +0000
committerSrinivasa Ragavan <sragavan@src.gnome.org>2009-01-30 09:28:43 +0000
commit67ee0c165c2b69b7c93e2ee104afb565d8ce74fc (patch)
tree9bb0bd2e64ad9f825efa97a7486d1ba3945a3b76
parent62e25a6d48fe2f3b3a95d4dbe1a94f1b898f7b01 (diff)
downloadevolution-data-server-67ee0c165c2b69b7c93e2ee104afb565d8ce74fc.tar.gz
Removed unused stuff from db.
2009-01-30 Srinivasa Ragavan <sragavan@novell.com> * camel-vee-folder.c: (vee_sync), (vf_getv): Removed unused stuff from db. svn path=/branches/gnome-2-24/; revision=10003
-rw-r--r--camel/ChangeLog5
-rw-r--r--camel/camel-vee-folder.c22
2 files changed, 26 insertions, 1 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 20df0069d..5a7c40a8f 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,5 +1,10 @@
2009-01-30 Srinivasa Ragavan <sragavan@novell.com>
+ * camel-vee-folder.c: (vee_sync), (vf_getv): Removed unused stuff from
+ db.
+
+2009-01-30 Srinivasa Ragavan <sragavan@novell.com>
+
** Fix for bug #557348
* camel-folder-summary.c: (camel_folder_summary_add),
diff --git a/camel/camel-vee-folder.c b/camel/camel-vee-folder.c
index 98fdb71f1..fbe06d35e 100644
--- a/camel/camel-vee-folder.c
+++ b/camel/camel-vee-folder.c
@@ -611,7 +611,27 @@ vee_sync(CamelFolder *folder, gboolean expunge, CamelException *ex)
CAMEL_VEE_FOLDER_UNLOCK(vf, changed_lock);
}
#endif
+ if (vf->priv->unread_vfolder == 1) {
+ /* Cleanup Junk/Trash uids */
+ int i, count;
+ count = folder->summary->uids->len;
+ GSList *del = NULL;
+
+ for (i=0; i < count; i++) {
+ CamelVeeMessageInfo *mi = camel_folder_summary_index (folder->summary, i);
+ if (mi->old_flags & CAMEL_MESSAGE_DELETED) {
+ del = g_slist_prepend (del, (gpointer) camel_pstring_strdup(((CamelMessageInfo *)mi)->uid));
+ camel_folder_summary_remove_index_fast (folder->summary, i);
+ count--;
+ i--;
+ }
+ camel_message_info_free (mi);
+ }
+ camel_db_delete_vuids (folder->parent_store->cdb_w, folder->full_name, "", del, ex);
+ g_slist_foreach (del, (GFunc) camel_pstring_free, NULL);
+ g_slist_free (del);
+ }
CAMEL_VEE_FOLDER_UNLOCK(vf, subfolder_lock);
camel_object_state_write(vf);
@@ -2029,7 +2049,7 @@ vf_getv(CamelObject *object, CamelException *ex, CamelArgGetV *args)
break;
case CAMEL_FOLDER_ARG_VISIBLE:
if (vf->priv->unread_vfolder == 1)
- count = unread == -1 ? 0 : unread - deleted - junked_not_deleted;
+ count = unread == -1 ? 0 : unread - junked_not_deleted;
else
count = visible == -1 ? 0 : visible;