[evolution-data-server] Bug #663224 - Deleted message not deleted on other machine
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug #663224 - Deleted message not deleted on other machine
- Date: Mon, 27 Feb 2012 14:49:18 +0000 (UTC)
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]