aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-vfolder.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-04-26 20:36:24 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-04-30 23:30:19 +0800
commitaec33928b7b77fe64b0afdf13b5db126e7f5dfac (patch)
tree04236fce76b859c96dc977741106aa06e28aa977 /mail/mail-vfolder.c
parent2214b6049d9402f91567d1bea66259b29993ae9f (diff)
downloadgsoc2013-evolution-aec33928b7b77fe64b0afdf13b5db126e7f5dfac.tar
gsoc2013-evolution-aec33928b7b77fe64b0afdf13b5db126e7f5dfac.tar.gz
gsoc2013-evolution-aec33928b7b77fe64b0afdf13b5db126e7f5dfac.tar.bz2
gsoc2013-evolution-aec33928b7b77fe64b0afdf13b5db126e7f5dfac.tar.lz
gsoc2013-evolution-aec33928b7b77fe64b0afdf13b5db126e7f5dfac.tar.xz
gsoc2013-evolution-aec33928b7b77fe64b0afdf13b5db126e7f5dfac.tar.zst
gsoc2013-evolution-aec33928b7b77fe64b0afdf13b5db126e7f5dfac.zip
Adapt to Camel API changes.
Diffstat (limited to 'mail/mail-vfolder.c')
-rw-r--r--mail/mail-vfolder.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index 3ff43cd10c..a97b5bb6b6 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -81,7 +81,9 @@ struct _setup_msg {
static gchar *
vfolder_setup_desc (struct _setup_msg *m)
{
- return g_strdup_printf(_("Setting up Search Folder: %s"), m->folder->full_name);
+ return g_strdup_printf (
+ _("Setting up Search Folder: %s"),
+ camel_folder_get_full_name (m->folder));
}
static void
@@ -90,8 +92,6 @@ vfolder_setup_exec (struct _setup_msg *m)
GList *l, *list = NULL;
CamelFolder *folder;
- d(printf("Setting up Search Folder: %s\n", m->folder->full_name));
-
camel_vee_folder_set_expression((CamelVeeFolder *)m->folder, m->query);
l = m->sources_uri;
@@ -110,7 +110,6 @@ vfolder_setup_exec (struct _setup_msg *m)
l = m->sources_folder;
while (l && !vfolder_shutdown) {
- d(printf(" Adding folder: %s\n", ((CamelFolder *)l->data)->full_name));
g_object_ref (l->data);
list = g_list_append(list, l->data);
l = l->next;
@@ -807,9 +806,12 @@ rule_changed(EFilterRule *rule, CamelFolder *folder)
{
GList *sources_uri = NULL, *sources_folder = NULL;
GString *query;
+ const gchar *full_name;
+
+ full_name = camel_folder_get_full_name (folder);
/* if the folder has changed name, then add it, then remove the old manually */
- if (strcmp(folder->full_name, rule->name) != 0) {
+ if (strcmp (full_name, rule->name) != 0) {
gchar *oldname;
gpointer key;
@@ -817,18 +819,17 @@ rule_changed(EFilterRule *rule, CamelFolder *folder)
G_LOCK (vfolder);
d(printf("Changing folder name in hash table to '%s'\n", rule->name));
- if (g_hash_table_lookup_extended (vfolder_hash, folder->full_name, &key, &oldfolder)) {
+ if (g_hash_table_lookup_extended (vfolder_hash, full_name, &key, &oldfolder)) {
g_hash_table_remove (vfolder_hash, key);
g_free (key);
g_hash_table_insert (vfolder_hash, g_strdup(rule->name), folder);
G_UNLOCK (vfolder);
} else {
G_UNLOCK (vfolder);
- g_warning("couldn't find a vfolder rule in our table? %s", folder->full_name);
+ g_warning("couldn't find a vfolder rule in our table? %s", full_name);
}
- /* TODO: make the folder->full_name var thread accessible */
- oldname = g_strdup(folder->full_name);
+ oldname = g_strdup (full_name);
camel_store_rename_folder(vfolder_store, oldname, rule->name, NULL);
g_free(oldname);
}
@@ -1023,6 +1024,7 @@ vfolder_load_storage(void)
EFilterRule *rule;
gchar *xmlfile;
GConfClient *gconf;
+ CamelException ex;
G_LOCK (vfolder_hash);
@@ -1036,15 +1038,19 @@ vfolder_load_storage(void)
G_UNLOCK (vfolder_hash);
+ camel_exception_init (&ex);
+
/* first, create the vfolder store, and set it up */
data_dir = mail_session_get_data_dir ();
storeuri = g_strdup_printf("vfolder:%s/vfolder", data_dir);
- vfolder_store = camel_session_get_store(session, storeuri, NULL);
+ vfolder_store = camel_session_get_store(session, storeuri, &ex);
if (vfolder_store == NULL) {
g_warning("Cannot open vfolder store - no vfolders available");
return;
}
+ camel_exception_clear (&ex);
+
camel_object_hook_event(vfolder_store, "folder_created",
(CamelObjectEventHookFunc)store_folder_created, NULL);
camel_object_hook_event(vfolder_store, "folder_deleted",