diff options
author | Milan Crha <mcrha@redhat.com> | 2012-05-31 17:50:44 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2012-05-31 17:50:44 +0800 |
commit | 93178424f2a5504adcec14f89d868f00bca60f38 (patch) | |
tree | 6ed68831bc63f961dc3a540b237bbfe67807d117 | |
parent | 71924fc48776c642fe8520febc384250cf55973c (diff) | |
download | gsoc2013-evolution-93178424f2a5504adcec14f89d868f00bca60f38.tar.gz gsoc2013-evolution-93178424f2a5504adcec14f89d868f00bca60f38.tar.zst gsoc2013-evolution-93178424f2a5504adcec14f89d868f00bca60f38.zip |
Bug #673946 - Cannot delete search folders
-rw-r--r-- | libemail-engine/mail-vfolder.c | 7 | ||||
-rw-r--r-- | mail/e-mail-reader-utils.c | 6 |
2 files changed, 7 insertions, 6 deletions
diff --git a/libemail-engine/mail-vfolder.c b/libemail-engine/mail-vfolder.c index dd083fafb8..be60534719 100644 --- a/libemail-engine/mail-vfolder.c +++ b/libemail-engine/mail-vfolder.c @@ -895,17 +895,18 @@ store_folder_deleted_cb (CamelStore *store, rule = e_rule_context_find_rule ((ERuleContext *) context, info->full_name, NULL); if (rule) { const gchar *config_dir; + EMailSession *session = E_MAIL_SESSION (camel_service_get_session (CAMEL_SERVICE (store))); /* We need to stop listening to removed events, * otherwise we'll try and remove it again. */ g_signal_handlers_disconnect_matched ( - context, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, - 0, 0, NULL, context_rule_removed, context); + context, G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, context_rule_removed, NULL); e_rule_context_remove_rule ((ERuleContext *) context, rule); g_object_unref (rule); g_signal_connect ( context, "rule_removed", - G_CALLBACK (context_rule_removed), context); + G_CALLBACK (context_rule_removed), session); config_dir = mail_session_get_config_dir (); user = g_build_filename (config_dir, "vfolders.xml", NULL); diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c index 0a8e358938..6d3f6aafc5 100644 --- a/mail/e-mail-reader-utils.c +++ b/mail/e-mail-reader-utils.c @@ -198,13 +198,13 @@ e_mail_reader_delete_folder (EMailReader *reader, EShell *shell; EAlertSink *alert_sink; CamelStore *parent_store; + CamelProvider *provider; MailFolderCache *folder_cache; GtkWindow *parent = e_shell_get_active_window (NULL); GtkWidget *dialog; gboolean store_is_local; const gchar *display_name; const gchar *full_name; - const gchar *uid; CamelFolderInfoFlags flags = 0; gboolean have_flags; @@ -214,9 +214,9 @@ e_mail_reader_delete_folder (EMailReader *reader, full_name = camel_folder_get_full_name (folder); display_name = camel_folder_get_display_name (folder); parent_store = camel_folder_get_parent_store (folder); + provider = camel_service_get_provider (CAMEL_SERVICE (parent_store)); - uid = camel_service_get_uid (CAMEL_SERVICE (parent_store)); - store_is_local = (g_strcmp0 (uid, E_MAIL_SESSION_LOCAL_UID) == 0); + store_is_local = (provider->flags & CAMEL_PROVIDER_IS_LOCAL) != 0; backend = e_mail_reader_get_backend (reader); session = e_mail_backend_get_session (backend); |