aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog14
-rw-r--r--mail/mail-component.c2
-rw-r--r--mail/mail-folder-cache.c10
-rw-r--r--mail/mail-ops.c1
-rw-r--r--mail/mail-tools.c5
-rw-r--r--mail/mail-vfolder.c1
6 files changed, 27 insertions, 6 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 22a5631ecf..4c866ed8b3 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,17 @@
+2004-05-22 Not Zed <NotZed@Ximian.com>
+
+ ** Another unread count bug, #58814.
+
+ * mail-vfolder.c (context_rule_added):
+ * mail-tools.c (mail_tool_uri_to_folder):
+ * mail-component.c (mc_add_local_store_done): don't call mail note
+ folder anymore, fix up headers.
+
+ * mail-folder-cache.c (store_folder_opened)
+ (mail_note_store_remove, mail_note_store): handle the new
+ store:folder_opened signal. Don't need the mail_note_folder hack
+ anymore, mail_tool_uri_to_folder slowly does less.
+
2004-05-21 Not Zed <NotZed@Ximian.com>
* mail-mt.c (do_call): add marshaller for p_ppppp call.
diff --git a/mail/mail-component.c b/mail/mail-component.c
index 4db24e0baf..11ecbb9ca4 100644
--- a/mail/mail-component.c
+++ b/mail/mail-component.c
@@ -187,10 +187,12 @@ mc_add_local_store_done(CamelStore *store, CamelFolderInfo *info, void *data)
/*MailComponent *mc = data;*/
int i;
+#if 0
for (i=0;i<sizeof(mc_default_folders)/sizeof(mc_default_folders[0]);i++) {
if (mc_default_folders[i].folder)
mail_note_folder(mc_default_folders[i].folder);
}
+#endif
}
static void
diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c
index b43f33e62c..eb8b016d81 100644
--- a/mail/mail-folder-cache.c
+++ b/mail/mail-folder-cache.c
@@ -529,6 +529,14 @@ store_folder_created(CamelObject *o, void *event_data, void *data)
}
static void
+store_folder_opened(CamelObject *o, void *event_data, void *data)
+{
+ CamelFolder *folder = event_data;
+
+ mail_note_folder(folder);
+}
+
+static void
store_folder_unsubscribed(CamelObject *o, void *event_data, void *data)
{
struct _store_info *si;
@@ -721,6 +729,7 @@ mail_note_store_remove(CamelStore *store)
if (si) {
g_hash_table_remove(stores, store);
+ camel_object_unhook_event(store, "folder_opened", store_folder_opened, NULL);
camel_object_unhook_event(store, "folder_created", store_folder_created, NULL);
camel_object_unhook_event(store, "folder_deleted", store_folder_deleted, NULL);
camel_object_unhook_event(store, "folder_renamed", store_folder_renamed, NULL);
@@ -897,6 +906,7 @@ mail_note_store(CamelStore *store, CamelOperation *op,
g_hash_table_insert(stores, store, si);
e_dlist_init(&si->folderinfo_updates);
+ camel_object_hook_event(store, "folder_opened", store_folder_opened, NULL);
camel_object_hook_event(store, "folder_created", store_folder_created, NULL);
camel_object_hook_event(store, "folder_deleted", store_folder_deleted, NULL);
camel_object_hook_event(store, "folder_renamed", store_folder_renamed, NULL);
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index 9e3febcd8d..75879716c9 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -59,7 +59,6 @@
#include "filter/filter-filter.h"
#include "mail-mt.h"
-#include "mail-folder-cache.h"
#include "em-utils.h"
diff --git a/mail/mail-tools.c b/mail/mail-tools.c
index 5a6f13d5a4..7050cfdba3 100644
--- a/mail/mail-tools.c
+++ b/mail/mail-tools.c
@@ -38,6 +38,7 @@
#include <gconf/gconf-client.h>
#include <camel/camel-vee-folder.h>
+#include <camel/camel-store.h>
#include <camel/camel-file-utils.h>
#include <camel/camel-movemail.h>
@@ -52,7 +53,6 @@
#include "mail-vfolder.h"
#include "mail-tools.h"
#include "mail-mt.h"
-#include "mail-folder-cache.h"
#include "em-utils.h"
/* **************************************** */
@@ -355,9 +355,6 @@ mail_tool_uri_to_folder (const char *uri, guint32 flags, CamelException *ex)
camel_object_unref (store);
}
- if (folder)
- mail_note_folder (folder);
-
camel_url_free (url);
g_free(curi);
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index 14c5bf2ba3..3781e22ae9 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -744,7 +744,6 @@ static void context_rule_added(RuleContext *ctx, FilterRule *rule)
g_hash_table_insert(vfolder_hash, g_strdup(rule->name), folder);
UNLOCK();
- mail_note_folder(folder);
rule_changed(rule, folder);
}
}