aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2004-05-19 10:17:48 +0800
committerMichael Zucci <zucchi@src.gnome.org>2004-05-19 10:17:48 +0800
commitdab04ddab36fa0e882479901900f880284bfb595 (patch)
treebff6a4156f13307ee0c5e7e64d568fbb5598caba
parent670c10ba49c831e83852cf9b600df861116bfca2 (diff)
downloadgsoc2013-evolution-dab04ddab36fa0e882479901900f880284bfb595.tar.gz
gsoc2013-evolution-dab04ddab36fa0e882479901900f880284bfb595.tar.zst
gsoc2013-evolution-dab04ddab36fa0e882479901900f880284bfb595.zip
** See #58641.
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. svn path=/trunk/; revision=25967
-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;