[evolution-data-server] Bug #663224 - Deleted message not deleted on other machine



commit 6b11c4ffffcdbe6df7b0ca72a1a66c93afe57817
Author: Milan Crha <mcrha redhat com>
Date:   Mon Feb 27 15:48:53 2012 +0100

    Bug #663224 - Deleted message not deleted on other machine

 camel/camel-folder-summary.c               |    6 ++++--
 camel/providers/imapx/camel-imapx-server.c |   22 +++++-----------------
 2 files changed, 9 insertions(+), 19 deletions(-)
---
diff --git a/camel/camel-folder-summary.c b/camel/camel-folder-summary.c
index cff451a..43c7c98 100644
--- a/camel/camel-folder-summary.c
+++ b/camel/camel-folder-summary.c
@@ -2167,6 +2167,7 @@ camel_folder_summary_add_preview (CamelFolderSummary *summary,
 {
 	camel_folder_summary_lock (summary, CAMEL_FOLDER_SUMMARY_SUMMARY_LOCK);
 	g_hash_table_insert (summary->priv->preview_updates, (gchar *) info->uid, ((CamelMessageInfoBase *) info)->preview);
+	camel_folder_summary_touch (summary);
 	camel_folder_summary_unlock (summary, CAMEL_FOLDER_SUMMARY_SUMMARY_LOCK);
 }
 
@@ -2792,7 +2793,7 @@ camel_folder_summary_add (CamelFolderSummary *summary,
 	/* Summary always holds a ref for the loaded infos */
 	g_hash_table_insert (summary->priv->loaded_infos, (gpointer) camel_message_info_uid (info), info);
 
-	summary->flags |= CAMEL_SUMMARY_DIRTY;
+	camel_folder_summary_touch (summary);
 
 	camel_folder_summary_unlock (summary, CAMEL_FOLDER_SUMMARY_SUMMARY_LOCK);
 }
@@ -2825,7 +2826,7 @@ camel_folder_summary_insert (CamelFolderSummary *summary,
 			(gpointer) camel_pstring_strdup (camel_message_info_uid (info)),
 			GUINT_TO_POINTER (camel_message_info_flags (info)));
 
-		summary->flags |= CAMEL_SUMMARY_DIRTY;
+		camel_folder_summary_touch (summary);
 	}
 
 	/* Summary always holds a ref for the loaded infos */
@@ -3225,6 +3226,7 @@ camel_folder_summary_remove_uid (CamelFolderSummary *summary,
 
 	camel_pstring_free (uid_copy);
 
+	camel_folder_summary_touch (summary);
 	camel_folder_summary_unlock (summary, CAMEL_FOLDER_SUMMARY_SUMMARY_LOCK);
 
 	return res;
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index 0117b6f..51d1975 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -952,10 +952,7 @@ imapx_expunge_uid_from_summary (CamelIMAPXServer *is,
 	camel_folder_change_info_remove_uid (is->changes, uid);
 
 	if (imapx_idle_supported (is) && imapx_in_idle (is)) {
-		const gchar *full_name;
-
-		full_name = camel_folder_get_full_name (is->select_folder);
-		camel_db_delete_uids (is->store->cdb_w, full_name, is->expunged, NULL);
+		camel_folder_summary_save_to_db (is->select_folder->summary, NULL);
 		imapx_update_store_summary (is->select_folder);
 		camel_folder_changed (is->select_folder, is->changes);
 
@@ -1740,14 +1737,7 @@ imapx_completion (CamelIMAPXServer *is,
 	c(is->tagprefix, "Got completion response for command %05u '%s'\n", ic->tag, ic->name);
 
 	if (camel_folder_change_info_changed (is->changes)) {
-		if (is->changes->uid_changed->len)
-			camel_folder_summary_save_to_db (is->select_folder->summary, NULL);
-		else {
-			const gchar *full_name;
-
-			full_name = camel_folder_get_full_name (is->select_folder);
-			camel_db_delete_uids (is->store->cdb_w, full_name, is->expunged, NULL);
-		}
+		camel_folder_summary_save_to_db (is->select_folder->summary, NULL);
 
 		g_list_free_full (is->expunged, (GDestroyNotify) g_free);
 		is->expunged = NULL;
@@ -3877,13 +3867,12 @@ imapx_job_scan_changes_done (CamelIMAPXServer *is,
 		}
 
 		if (removed != NULL) {
-			const gchar *full_name;
+			camel_folder_summary_touch (s);
 
-			full_name = camel_folder_get_full_name (camel_folder_summary_get_folder (s));
-			camel_db_delete_uids (is->store->cdb_w, full_name, removed, NULL);
 			g_list_free_full (removed, (GDestroyNotify) g_free);
 		}
 
+		camel_folder_summary_save_to_db (s, NULL);
 		imapx_update_store_summary (job->folder);
 
 		if (camel_folder_change_info_changed (data->changes))
@@ -3985,8 +3974,8 @@ imapx_command_fetch_new_messages_done (CamelIMAPXServer *is,
 	}
 
 	if (camel_folder_change_info_changed (data->changes)) {
-		imapx_update_store_summary (job->folder);
 		camel_folder_summary_save_to_db (job->folder->summary, NULL);
+		imapx_update_store_summary (job->folder);
 		camel_folder_changed (job->folder, data->changes);
 		camel_folder_change_info_clear (data->changes);
 	}
@@ -4481,7 +4470,6 @@ imapx_command_expunge_done (CamelIMAPXServer *is,
 				removed = g_list_prepend (removed, (gpointer) uids->pdata[i]);
 			}
 
-			camel_db_delete_uids (parent_store->cdb_w, full_name, removed, NULL);
 			camel_folder_summary_save_to_db (folder->summary, NULL);
 			camel_folder_changed (folder, changes);
 			camel_folder_change_info_free (changes);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]