aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-reader-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/e-mail-reader-utils.c')
-rw-r--r--mail/e-mail-reader-utils.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c
index 12d87d97c8..3282af34af 100644
--- a/mail/e-mail-reader-utils.c
+++ b/mail/e-mail-reader-utils.c
@@ -26,9 +26,7 @@
#include <glib/gi18n.h>
#include <libxml/tree.h>
#include <gtkhtml/gtkhtml.h>
-#include <camel/camel-mime-message.h>
-#include <camel/camel-vee-folder.h>
-#include <camel/camel-vee-store.h>
+#include <camel/camel.h>
#include "e-util/e-alert-dialog.h"
#include "filter/e-filter-rule.h"
@@ -68,6 +66,7 @@ e_mail_reader_confirm_delete (EMailReader *reader)
EShellBackend *shell_backend;
EShellSettings *shell_settings;
CamelFolder *folder;
+ CamelStore *parent_store;
GtkWidget *check_button;
GtkWidget *content_area;
GtkWidget *dialog;
@@ -90,7 +89,9 @@ e_mail_reader_confirm_delete (EMailReader *reader)
prompt_delete_in_vfolder = e_shell_settings_get_boolean (
shell_settings, "mail-prompt-delete-in-vfolder");
- if (!CAMEL_IS_VEE_STORE (folder->parent_store))
+ parent_store = camel_folder_get_parent_store (folder);
+
+ if (!CAMEL_IS_VEE_STORE (parent_store))
return TRUE;
if (!prompt_delete_in_vfolder)
@@ -98,7 +99,7 @@ e_mail_reader_confirm_delete (EMailReader *reader)
dialog = e_alert_dialog_new_for_args (
window, "mail:ask-delete-vfolder-msg",
- folder->full_name, NULL);
+ camel_folder_get_full_name (folder), NULL);
/* XXX e-error should provide a widget layout and API suitable
* for packing additional widgets to the right of the alert
@@ -251,6 +252,7 @@ e_mail_reader_open_selected (EMailReader *reader)
}
g_free (real_folder_uri);
+ camel_folder_free_message_info (folder, info);
}
for (ii = 0; ii < views->len; ii++) {
@@ -669,7 +671,7 @@ e_mail_reader_header_free (EMailReaderHeader *header)
}
static void
-headers_changed_cb (GConfClient *gconf,
+headers_changed_cb (GConfClient *client,
guint cnxn_id,
GConfEntry *entry,
EMailReader *reader)
@@ -678,7 +680,7 @@ headers_changed_cb (GConfClient *gconf,
EMFormatHTMLDisplay *emfhd;
GSList *header_config_list, *p;
- g_return_if_fail (gconf != NULL);
+ g_return_if_fail (client != NULL);
g_return_if_fail (reader != NULL);
emfhd = e_mail_reader_get_html_display (reader);
@@ -689,7 +691,7 @@ headers_changed_cb (GConfClient *gconf,
g_return_if_fail (emf != NULL);
header_config_list = gconf_client_get_list (
- gconf, "/apps/evolution/mail/display/headers",
+ client, "/apps/evolution/mail/display/headers",
GCONF_VALUE_STRING, NULL);
em_format_clear_headers (emf);
for (p = header_config_list; p; p = g_slist_next(p)) {
@@ -718,16 +720,16 @@ headers_changed_cb (GConfClient *gconf,
static void
remove_header_notify_cb (gpointer data)
{
- GConfClient *gconf = mail_config_get_gconf_client ();
+ GConfClient *client = mail_config_get_gconf_client ();
guint notify_id;
- g_return_if_fail (gconf != NULL);
+ g_return_if_fail (client != NULL);
notify_id = GPOINTER_TO_INT (data);
g_return_if_fail (notify_id != 0);
- gconf_client_notify_remove (gconf, notify_id);
- gconf_client_remove_dir (gconf, "/apps/evolution/mail/display", NULL);
+ gconf_client_notify_remove (client, notify_id);
+ gconf_client_remove_dir (client, "/apps/evolution/mail/display", NULL);
}
/**
@@ -740,19 +742,20 @@ remove_header_notify_cb (gpointer data)
void
e_mail_reader_connect_headers (EMailReader *reader)
{
- GConfClient *gconf = mail_config_get_gconf_client ();
+ GConfClient *client = mail_config_get_gconf_client ();
guint notify_id;
gconf_client_add_dir (
- gconf, "/apps/evolution/mail/display",
+ client, "/apps/evolution/mail/display",
GCONF_CLIENT_PRELOAD_NONE, NULL);
notify_id = gconf_client_notify_add (
- gconf, "/apps/evolution/mail/display/headers",
+ client, "/apps/evolution/mail/display/headers",
(GConfClientNotifyFunc) headers_changed_cb,
reader, NULL, NULL);
+
g_object_set_data_full (
G_OBJECT (reader), "reader-header-notify-id",
GINT_TO_POINTER (notify_id), remove_header_notify_cb);
- headers_changed_cb (gconf, 0, NULL, reader);
+ headers_changed_cb (client, 0, NULL, reader);
}