evolution-data-server r9067 - trunk/camel/providers/imap



Author: mcrha
Date: Mon Jun 30 09:21:46 2008
New Revision: 9067
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9067&view=rev

Log:
2008-06-30  Milan Crha  <mcrha redhat com>

	** Fix for bug #330838

	* camel-imap-store.c: (get_folders_sync): Notify application about
	server folder changes as soon as we know about them.



Modified:
   trunk/camel/providers/imap/ChangeLog
   trunk/camel/providers/imap/camel-imap-store.c

Modified: trunk/camel/providers/imap/camel-imap-store.c
==============================================================================
--- trunk/camel/providers/imap/camel-imap-store.c	(original)
+++ trunk/camel/providers/imap/camel-imap-store.c	Mon Jun 30 09:21:46 2008
@@ -2598,9 +2598,25 @@
 				if (((fi->flags ^ si->flags) & CAMEL_STORE_INFO_FOLDER_SUBSCRIBED)) {
 					si->flags = (si->flags & ~CAMEL_FOLDER_SUBSCRIBED) | (fi->flags & CAMEL_FOLDER_SUBSCRIBED);
 					camel_store_summary_touch((CamelStoreSummary *)imap_store->summary);
+
+					camel_object_trigger_event (CAMEL_OBJECT (imap_store), "folder_created", fi);
+					camel_object_trigger_event (CAMEL_OBJECT (imap_store), "folder_subscribed", fi);
 				}
 			} else {
-				camel_store_summary_remove((CamelStoreSummary *)imap_store->summary, si);
+				char *dup_folder_name = g_strdup (camel_store_info_path (imap_store->summary, si));
+
+				if (dup_folder_name) {
+					CamelException eex;
+
+					camel_exception_init (&eex);
+					imap_folder_effectively_unsubscribed (imap_store, dup_folder_name, &eex);
+					imap_forget_folder (imap_store, dup_folder_name, &eex);
+
+					g_free (dup_folder_name);
+					camel_exception_clear (&eex);
+				} else
+					camel_store_summary_remove ((CamelStoreSummary *)imap_store->summary, si);
+
 				count--;
 				i--;
 			}



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