aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-vfolder.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/mail-vfolder.c')
-rw-r--r--mail/mail-vfolder.c40
1 files changed, 8 insertions, 32 deletions
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index b37d042077..99caa6c0ec 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -49,11 +49,6 @@
#include "mail-tools.h"
#include "mail-vfolder.h"
-#include "e-mail-local.h"
-#include "e-mail-store.h"
-
-#define VFOLDER_SERVICE_UID "vfolder"
-
#define d(x) /* (printf("%s:%s: ", G_STRLOC, G_STRFUNC), (x))*/
static EMVFolderContext *context; /* context remains open all time */
@@ -720,7 +715,7 @@ rule_changed (EFilterRule *rule,
session = e_mail_backend_get_session (backend);
service = camel_session_get_service (
- CAMEL_SESSION (session), VFOLDER_SERVICE_UID);
+ CAMEL_SESSION (session), E_MAIL_SESSION_VFOLDER_UID);
g_return_if_fail (CAMEL_IS_SERVICE (service));
/* if the folder has changed name, then add it, then remove the old manually */
@@ -820,7 +815,7 @@ context_rule_added (ERuleContext *ctx,
session = e_mail_backend_get_session (backend);
service = camel_session_get_service (
- CAMEL_SESSION (session), VFOLDER_SERVICE_UID);
+ CAMEL_SESSION (session), E_MAIL_SESSION_VFOLDER_UID);
g_return_if_fail (CAMEL_IS_SERVICE (service));
/* this always runs quickly */
@@ -853,7 +848,7 @@ context_rule_removed (ERuleContext *ctx,
session = e_mail_backend_get_session (backend);
service = camel_session_get_service (
- CAMEL_SESSION (session), VFOLDER_SERVICE_UID);
+ CAMEL_SESSION (session), E_MAIL_SESSION_VFOLDER_UID);
g_return_if_fail (CAMEL_IS_SERVICE (service));
/* TODO: remove from folder info cache? */
@@ -1008,8 +1003,7 @@ vfolder_load_storage (EMailBackend *backend)
/* lock for loading storage, it is safe to call it more than once */
G_LOCK_DEFINE_STATIC (vfolder_hash);
- CamelService *service;
- const gchar *key;
+ CamelStore *vfolder_store;
const gchar *config_dir;
gchar *user;
EFilterRule *rule;
@@ -1034,27 +1028,14 @@ vfolder_load_storage (EMailBackend *backend)
config_dir = mail_session_get_config_dir ();
session = e_mail_backend_get_session (backend);
-
- /* first, create the vfolder store, and set it up */
- service = camel_session_add_service (
- CAMEL_SESSION (session), "vfolder",
- "vfolder", CAMEL_PROVIDER_STORE, NULL);
- if (service != NULL) {
- camel_service_set_display_name (service, _("Search Folders"));
- em_utils_connect_service_sync (service, NULL, NULL);
- } else {
- g_warning("Cannot open vfolder store - no vfolders available");
- return;
- }
-
- g_return_if_fail (CAMEL_IS_STORE (service));
+ vfolder_store = e_mail_session_get_vfolder_store (session);
g_signal_connect (
- service, "folder-deleted",
+ vfolder_store, "folder-deleted",
G_CALLBACK (store_folder_deleted_cb), backend);
g_signal_connect (
- service, "folder-renamed",
+ vfolder_store, "folder-renamed",
G_CALLBACK (store_folder_renamed_cb), NULL);
/* load our rules */
@@ -1076,9 +1057,6 @@ vfolder_load_storage (EMailBackend *backend)
context, "rule_removed",
G_CALLBACK (context_rule_removed), context);
- /* load store to mail component */
- e_mail_store_add (session, CAMEL_STORE (service));
-
/* and setup the rules we have */
rule = NULL;
while ((rule = e_rule_context_next_rule ((ERuleContext *) context, rule, NULL))) {
@@ -1092,9 +1070,7 @@ vfolder_load_storage (EMailBackend *backend)
/* reenable the feature if required */
settings = g_settings_new ("org.gnome.evolution.mail");
- key = "enable-vfolders";
- if (!g_settings_get_boolean (settings, key))
- g_settings_set_boolean (settings, key, TRUE);
+ g_settings_set_boolean (settings, "enable-vfolders", TRUE);
g_object_unref (settings);
folder_cache = e_mail_session_get_folder_cache (session);