evolution r36304 - trunk/mail



Author: sragavan
Date: Thu Sep 11 15:11:04 2008
New Revision: 36304
URL: http://svn.gnome.org/viewvc/evolution?rev=36304&view=rev

Log:
2008-09-11  Milan Crha  <mcrha redhat com>

	** Fix for bug #534039

	* mail-vfolder.c: (vfolder_load_storage): Load store to mail component
	first, to have all notifications registered in time of adding rules.
	* mail-folder-cache.c: (real_flush_updates): Dropped unnecessary and
	offending code causing infinite loops when deleting search folder.


Modified:
   trunk/mail/ChangeLog
   trunk/mail/mail-folder-cache.c
   trunk/mail/mail-vfolder.c

Modified: trunk/mail/mail-folder-cache.c
==============================================================================
--- trunk/mail/mail-folder-cache.c	(original)
+++ trunk/mail/mail-folder-cache.c	Thu Sep 11 15:11:04 2008
@@ -206,19 +206,6 @@
 			e_event_emit((EEvent *)e, "folder.changed", (EEventTarget *)t);
 		}
 
-		if (CAMEL_IS_VEE_STORE (up->store) && !up->remove) {
-			/* Normally the vfolder store takes care of the folder_opened event itself,
-			   but we add folder to the noting system later, thus we do not know about
-			   search folders to update them in a tree, thus ensure their changes will
-			   be tracked correctly. */
-			CamelFolder *folder = camel_store_get_folder (up->store, up->full_name, 0, NULL);
-
-			if (folder) {
-				mail_note_folder (folder);
-				camel_object_unref (folder);
-			}
-		}
-
 		free_update(up);
 
 		LOCK(info_lock);

Modified: trunk/mail/mail-vfolder.c
==============================================================================
--- trunk/mail/mail-vfolder.c	(original)
+++ trunk/mail/mail-vfolder.c	Thu Sep 11 15:11:04 2008
@@ -956,6 +956,9 @@
 	g_signal_connect(context, "rule_added", G_CALLBACK(context_rule_added), context);
 	g_signal_connect(context, "rule_removed", G_CALLBACK(context_rule_removed), context);
 
+	/* load store to mail component */
+	mail_component_load_store_by_uri (mail_component_peek (), storeuri, _("Search Folders"));
+
 	/* and setup the rules we have */
 	rule = NULL;
 	while ( (rule = rule_context_next_rule((RuleContext *)context, rule, NULL)) ) {
@@ -966,9 +969,6 @@
 			d(printf("invalid rule (%p) encountered: rule->name is NULL\n", rule));
 	}
 
-	/* load store to mail component at the end, when everything is loaded */
-	mail_component_load_store_by_uri (mail_component_peek (), storeuri, _("Search Folders"));
-
 	g_free(storeuri);
 
 	/* reenable the feature if required */



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