aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog12
-rw-r--r--camel/camel-store.c5
-rw-r--r--camel/camel-vee-folder.c4
3 files changed, 19 insertions, 2 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 79932332d1..2aacd3d40b 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,15 @@
+2004-05-19 Not Zed <NotZed@Ximian.com>
+
+ ** See #58641.
+
+ * camel-vee-folder.c (vee_sync): don't rebuild auto-type vfolders.
+ they should always be consistent and it saves a lot of unecessary
+ work.
+
+ * camel-store.c (store_sync): we don't want to sync any vfolders
+ as part of the store sync call. its used for a different purpose
+ in vFolders. oh well its a hack.
+
2004-05-18 Not Zed <NotZed@Ximian.com>
* providers/local/camel-maildir-store.c (fill_fi): do the same
diff --git a/camel/camel-store.c b/camel/camel-store.c
index 3b6b60afff..14e3d073ee 100644
--- a/camel/camel-store.c
+++ b/camel/camel-store.c
@@ -651,11 +651,14 @@ store_sync (CamelStore *store, int expunge, CamelException *ex)
CamelException x;
int i;
+ /* we don't sync any vFolders, that is used to update certain vfolder queries mainly,
+ and we're really only interested in storing/expunging the physical mails */
camel_exception_init(&x);
folders = camel_object_bag_list(store->folders);
for (i=0;i<folders->len;i++) {
folder = folders->pdata[i];
- if (!camel_exception_is_set(&x))
+ if (!CAMEL_IS_VEE_FOLDER(folder)
+ && !camel_exception_is_set(&x))
camel_folder_sync(folder, expunge, &x);
camel_object_unref(folder);
}
diff --git a/camel/camel-vee-folder.c b/camel/camel-vee-folder.c
index cf4301df03..c74b001cc9 100644
--- a/camel/camel-vee-folder.c
+++ b/camel/camel-vee-folder.c
@@ -634,7 +634,9 @@ vee_sync(CamelFolder *folder, gboolean expunge, CamelException *ex)
break;
}
- if (vee_folder_build_folder(vf, f, ex) == -1)
+ /* auto update vfolders shouldn't need a rebuild */
+ if ((vf->flags & CAMEL_STORE_VEE_FOLDER_AUTO) == 0
+ && vee_folder_build_folder(vf, f, ex) == -1)
break;
node = node->next;