aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-reader.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-12-02 00:43:13 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-12-02 04:01:14 +0800
commit5e938b590f66a44ed69e0867efe5158b634a7f57 (patch)
treeac3881b20ef9bcff5e93cf478e8d8abf9875dc0a /mail/e-mail-reader.c
parent76fbb9d23242cba427d71ded5590a9cad271b2b3 (diff)
downloadgsoc2013-evolution-5e938b590f66a44ed69e0867efe5158b634a7f57.tar
gsoc2013-evolution-5e938b590f66a44ed69e0867efe5158b634a7f57.tar.gz
gsoc2013-evolution-5e938b590f66a44ed69e0867efe5158b634a7f57.tar.bz2
gsoc2013-evolution-5e938b590f66a44ed69e0867efe5158b634a7f57.tar.lz
gsoc2013-evolution-5e938b590f66a44ed69e0867efe5158b634a7f57.tar.xz
gsoc2013-evolution-5e938b590f66a44ed69e0867efe5158b634a7f57.tar.zst
gsoc2013-evolution-5e938b590f66a44ed69e0867efe5158b634a7f57.zip
Expand the EMailReader interface so it's easier to use.
Adds the following methods: CamelFolder * (*get_folder) (EMailReader *reader); const gchar * (*get_folder_uri) (EMailReader *reader); GPtrArray * (*get_selected_uids) (EMailReader *reader);
Diffstat (limited to 'mail/e-mail-reader.c')
-rw-r--r--mail/e-mail-reader.c268
1 files changed, 146 insertions, 122 deletions
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index 9055d6b26a..7ea11698a4 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -69,17 +69,14 @@ action_mail_add_sender_cb (GtkAction *action,
{
EShell *shell;
EShellBackend *shell_backend;
- GtkWidget *message_list;
CamelMessageInfo *info;
CamelFolder *folder;
GPtrArray *uids;
const gchar *address;
- message_list = e_mail_reader_get_message_list (reader);
+ folder = e_mail_reader_get_folder (reader);
shell_backend = e_mail_reader_get_shell_backend (reader);
-
- folder = MESSAGE_LIST (message_list)->folder;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
+ uids = e_mail_reader_get_selected_uids (reader);
if (uids->len != 1)
goto exit;
@@ -159,14 +156,11 @@ static void
action_mail_check_for_junk_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GPtrArray *uids;
- message_list = e_mail_reader_get_message_list (reader);
-
- folder = MESSAGE_LIST (message_list)->folder;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
+ folder = e_mail_reader_get_folder (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
mail_filter_junk (folder, uids);
}
@@ -188,21 +182,18 @@ static void
action_mail_copy_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GtkWidget *folder_tree;
GtkWidget *dialog;
- GtkWindow *parent;
- GPtrArray *selected;
+ GtkWindow *window;
+ GPtrArray *uids;
const gchar *uri;
- parent = e_mail_reader_get_window (reader);
- message_list = e_mail_reader_get_message_list (reader);
+ folder = e_mail_reader_get_folder (reader);
+ window = e_mail_reader_get_window (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
folder_tree = em_folder_tree_new ();
- selected = message_list_get_selected (MESSAGE_LIST (message_list));
-
- folder = MESSAGE_LIST (message_list)->folder;
em_folder_tree_set_excluded (
EM_FOLDER_TREE (folder_tree),
@@ -210,7 +201,7 @@ action_mail_copy_cb (GtkAction *action,
EMFT_EXCLUDE_VTRASH);
dialog = em_folder_selector_new (
- parent, EM_FOLDER_TREE (folder_tree),
+ window, EM_FOLDER_TREE (folder_tree),
EM_FOLDER_SELECTOR_CAN_CREATE,
_("Copy to Folder"), NULL, _("C_opy"));
@@ -230,13 +221,13 @@ action_mail_copy_cb (GtkAction *action,
if (uri != NULL) {
mail_transfer_messages (
- folder, selected, FALSE, uri, 0, NULL, NULL);
- selected = NULL;
+ folder, uids, FALSE, uri, 0, NULL, NULL);
+ uids = NULL;
}
exit:
- if (selected != NULL)
- em_utils_uids_free (selected);
+ if (uids != NULL)
+ em_utils_uids_free (uids);
gtk_widget_destroy (dialog);
}
@@ -290,14 +281,11 @@ static void
action_mail_filters_apply_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GPtrArray *uids;
- message_list = e_mail_reader_get_message_list (reader);
-
- folder = MESSAGE_LIST (message_list)->folder;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
+ folder = e_mail_reader_get_folder (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
mail_filter_on_demand (folder, uids);
}
@@ -314,18 +302,15 @@ action_mail_flag_clear_cb (GtkAction *action,
EMailReader *reader)
{
EMFormatHTMLDisplay *html_display;
- GtkWidget *message_list;
CamelFolder *folder;
GtkWindow *window;
GPtrArray *uids;
+ folder = e_mail_reader_get_folder (reader);
html_display = e_mail_reader_get_html_display (reader);
- message_list = e_mail_reader_get_message_list (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
window = e_mail_reader_get_window (reader);
- folder = MESSAGE_LIST (message_list)->folder;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
-
em_utils_flag_for_followup_clear (window, folder, uids);
em_format_redraw (EM_FORMAT (html_display));
@@ -336,18 +321,15 @@ action_mail_flag_completed_cb (GtkAction *action,
EMailReader *reader)
{
EMFormatHTMLDisplay *html_display;
- GtkWidget *message_list;
CamelFolder *folder;
GtkWindow *window;
GPtrArray *uids;
+ folder = e_mail_reader_get_folder (reader);
html_display = e_mail_reader_get_html_display (reader);
- message_list = e_mail_reader_get_message_list (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
window = e_mail_reader_get_window (reader);
- folder = MESSAGE_LIST (message_list)->folder;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
-
em_utils_flag_for_followup_completed (window, folder, uids);
em_format_redraw (EM_FORMAT (html_display));
@@ -357,17 +339,14 @@ static void
action_mail_flag_for_followup_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GtkWindow *window;
GPtrArray *uids;
- message_list = e_mail_reader_get_message_list (reader);
+ folder = e_mail_reader_get_folder (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
window = e_mail_reader_get_window (reader);
- folder = MESSAGE_LIST (message_list)->folder;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
-
em_utils_flag_for_followup (reader, folder, uids);
}
@@ -375,18 +354,16 @@ static void
action_mail_forward_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GtkWindow *window;
GPtrArray *uids;
const gchar *folder_uri;
- message_list = e_mail_reader_get_message_list (reader);
+ folder = e_mail_reader_get_folder (reader);
+ folder_uri = e_mail_reader_get_folder_uri (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
window = e_mail_reader_get_window (reader);
- folder = MESSAGE_LIST (message_list)->folder;
- folder_uri = MESSAGE_LIST (message_list)->folder_uri;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
g_return_if_fail (uids != NULL);
if (em_utils_ask_open_many (window, uids->len))
@@ -399,18 +376,16 @@ static void
action_mail_forward_attached_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GtkWindow *window;
GPtrArray *uids;
const gchar *folder_uri;
- message_list = e_mail_reader_get_message_list (reader);
+ folder = e_mail_reader_get_folder (reader);
+ folder_uri = e_mail_reader_get_folder_uri (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
window = e_mail_reader_get_window (reader);
- folder = MESSAGE_LIST (message_list)->folder;
- folder_uri = MESSAGE_LIST (message_list)->folder_uri;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
g_return_if_fail (uids != NULL);
if (em_utils_ask_open_many (window, uids->len))
@@ -423,18 +398,16 @@ static void
action_mail_forward_inline_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GtkWindow *window;
GPtrArray *uids;
const gchar *folder_uri;
- message_list = e_mail_reader_get_message_list (reader);
+ folder = e_mail_reader_get_folder (reader);
+ folder_uri = e_mail_reader_get_folder_uri (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
window = e_mail_reader_get_window (reader);
- folder = MESSAGE_LIST (message_list)->folder;
- folder_uri = MESSAGE_LIST (message_list)->folder_uri;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
g_return_if_fail (uids != NULL);
if (em_utils_ask_open_many (window, uids->len))
@@ -447,18 +420,16 @@ static void
action_mail_forward_quoted_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GtkWindow *window;
GPtrArray *uids;
const gchar *folder_uri;
- message_list = e_mail_reader_get_message_list (reader);
+ folder = e_mail_reader_get_folder (reader);
+ folder_uri = e_mail_reader_get_folder_uri (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
window = e_mail_reader_get_window (reader);
- folder = MESSAGE_LIST (message_list)->folder;
- folder_uri = MESSAGE_LIST (message_list)->folder_uri;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
g_return_if_fail (uids != NULL);
if (em_utils_ask_open_many (window, uids->len))
@@ -555,16 +526,13 @@ static void
action_mail_message_edit_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GtkWindow *window;
GPtrArray *uids;
+ folder = e_mail_reader_get_folder (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
window = e_mail_reader_get_window (reader);
- message_list = e_mail_reader_get_message_list (reader);
-
- folder = MESSAGE_LIST (message_list)->folder;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
em_utils_edit_messages (folder, uids, FALSE);
}
@@ -573,12 +541,9 @@ static void
action_mail_message_new_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
const gchar *folder_uri;
- message_list = e_mail_reader_get_message_list (reader);
-
- folder_uri = MESSAGE_LIST (message_list)->folder_uri;
+ folder_uri = e_mail_reader_get_folder_uri (reader);
em_utils_compose_new_message (folder_uri);
}
@@ -594,21 +559,18 @@ static void
action_mail_move_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GtkWidget *folder_tree;
GtkWidget *dialog;
- GtkWindow *parent;
- GPtrArray *selected;
+ GtkWindow *window;
+ GPtrArray *uids;
const gchar *uri;
- parent = e_mail_reader_get_window (reader);
- message_list = e_mail_reader_get_message_list (reader);
+ folder = e_mail_reader_get_folder (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
+ window = e_mail_reader_get_window (reader);
folder_tree = em_folder_tree_new ();
- selected = message_list_get_selected (MESSAGE_LIST (message_list));
-
- folder = MESSAGE_LIST (message_list)->folder;
em_folder_tree_set_excluded (
EM_FOLDER_TREE (folder_tree),
@@ -616,7 +578,7 @@ action_mail_move_cb (GtkAction *action,
EMFT_EXCLUDE_VTRASH);
dialog = em_folder_selector_new (
- parent, EM_FOLDER_TREE (folder_tree),
+ window, EM_FOLDER_TREE (folder_tree),
EM_FOLDER_SELECTOR_CAN_CREATE,
_("Move to Folder"), NULL, _("_Move"));
@@ -636,13 +598,13 @@ action_mail_move_cb (GtkAction *action,
if (uri != NULL) {
mail_transfer_messages (
- folder, selected, TRUE, uri, 0, NULL, NULL);
- selected = NULL;
+ folder, uids, TRUE, uri, 0, NULL, NULL);
+ uids = NULL;
}
exit:
- if (selected != NULL)
- em_utils_uids_free (selected);
+ if (uids != NULL)
+ em_utils_uids_free (uids);
gtk_widget_destroy (dialog);
}
@@ -795,10 +757,10 @@ action_mail_redirect_cb (GtkAction *action,
GtkWindow *window;
const gchar *uid;
+ folder = e_mail_reader_get_folder (reader);
message_list = e_mail_reader_get_message_list (reader);
window = e_mail_reader_get_window (reader);
- folder = MESSAGE_LIST (message_list)->folder;
uid = MESSAGE_LIST (message_list)->cursor_uid;
g_return_if_fail (uid != NULL);
@@ -832,7 +794,6 @@ action_mail_save_as_cb (GtkAction *action,
{
EShell *shell;
EShellBackend *shell_backend;
- GtkWidget *message_list;
CamelMessageInfo *info;
CamelFolder *folder;
GPtrArray *uids;
@@ -841,12 +802,10 @@ action_mail_save_as_cb (GtkAction *action,
const gchar *suggestion;
gchar *uri;
- message_list = e_mail_reader_get_message_list (reader);
+ folder = e_mail_reader_get_folder (reader);
shell_backend = e_mail_reader_get_shell_backend (reader);
- shell = e_shell_backend_get_shell (shell_backend);
+ uids = e_mail_reader_get_selected_uids (reader);
- folder = MESSAGE_LIST (message_list)->folder;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
g_return_if_fail (uids->len > 0);
title = ngettext ("Save Message", "Save Messages", uids->len);
@@ -859,6 +818,7 @@ action_mail_save_as_cb (GtkAction *action,
} else
suggestion = NULL;
+ shell = e_shell_backend_get_shell (shell_backend);
file = e_shell_run_save_dialog (shell, title, suggestion, NULL, NULL);
if (file == NULL) {
@@ -947,18 +907,16 @@ action_mail_show_source_cb (GtkAction *action,
{
EMFormatHTMLDisplay *html_display;
EShellBackend *shell_backend;
- GtkWidget *message_list;
CamelFolder *folder;
GtkWidget *browser;
GPtrArray *uids;
const gchar *folder_uri;
- message_list = e_mail_reader_get_message_list (reader);
+ folder = e_mail_reader_get_folder (reader);
+ folder_uri = e_mail_reader_get_folder_uri (reader);
shell_backend = e_mail_reader_get_shell_backend (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
- folder = MESSAGE_LIST (message_list)->folder;
- folder_uri = MESSAGE_LIST (message_list)->folder_uri;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
g_return_if_fail (uids->len > 0);
browser = e_mail_browser_new (shell_backend);
@@ -976,15 +934,12 @@ static void
action_mail_toggle_important_cb (GtkAction *action,
EMailReader *reader)
{
- GtkWidget *message_list;
CamelFolder *folder;
GPtrArray *uids;
guint ii;
- message_list = e_mail_reader_get_message_list (reader);
-
- folder = MESSAGE_LIST (message_list)->folder;
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
+ folder = e_mail_reader_get_folder (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
camel_folder_freeze (folder);
@@ -1060,15 +1015,15 @@ action_search_folder_recipient_cb (GtkAction *action,
EMailReader *reader)
{
EMFormatHTMLDisplay *html_display;
- GtkWidget *message_list;
EWebView *web_view;
CamelURL *curl;
+ const gchar *folder_uri;
const gchar *uri;
/* This action is defined in EMailDisplay. */
+ folder_uri = e_mail_reader_get_folder_uri (reader);
html_display = e_mail_reader_get_html_display (reader);
- message_list = e_mail_reader_get_message_list (reader);
web_view = E_WEB_VIEW (EM_FORMAT_HTML (html_display)->html);
@@ -1080,13 +1035,10 @@ action_search_folder_recipient_cb (GtkAction *action,
if (curl->path != NULL && *curl->path != '\0') {
CamelInternetAddress *inet_addr;
- const gchar *folder_uri;
/* Ensure vfolder is running. */
vfolder_load_storage ();
- folder_uri = MESSAGE_LIST (message_list)->folder_uri;
-
inet_addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (inet_addr), curl->path);
vfolder_gui_add_from_address (inet_addr, AUTO_TO, folder_uri);
@@ -1101,15 +1053,15 @@ action_search_folder_sender_cb (GtkAction *action,
EMailReader *reader)
{
EMFormatHTMLDisplay *html_display;
- GtkWidget *message_list;
EWebView *web_view;
CamelURL *curl;
+ const gchar *folder_uri;
const gchar *uri;
/* This action is defined in EMailDisplay. */
+ folder_uri = e_mail_reader_get_folder_uri (reader);
html_display = e_mail_reader_get_html_display (reader);
- message_list = e_mail_reader_get_message_list (reader);
web_view = E_WEB_VIEW (EM_FORMAT_HTML (html_display)->html);
@@ -1121,13 +1073,10 @@ action_search_folder_sender_cb (GtkAction *action,
if (curl->path != NULL && *curl->path != '\0') {
CamelInternetAddress *inet_addr;
- const gchar *folder_uri;
/* Ensure vfolder is running. */
vfolder_load_storage ();
- folder_uri = MESSAGE_LIST (message_list)->folder_uri;
-
inet_addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (inet_addr), curl->path);
vfolder_gui_add_from_address (inet_addr, AUTO_FROM, folder_uri);
@@ -1918,10 +1867,12 @@ mail_reader_message_selected_timeout_cb (EMailReader *reader)
{
EMFormatHTMLDisplay *html_display;
GtkWidget *message_list;
+ CamelFolder *folder;
const gchar *cursor_uid;
const gchar *format_uid;
const gchar *key;
+ folder = e_mail_reader_get_folder (reader);
html_display = e_mail_reader_get_html_display (reader);
message_list = e_mail_reader_get_message_list (reader);
@@ -1944,8 +1895,7 @@ mail_reader_message_selected_timeout_cb (EMailReader *reader)
gint op_id;
op_id = mail_get_messagex (
- MESSAGE_LIST (message_list)->folder,
- cursor_uid,
+ folder, cursor_uid,
mail_reader_message_loaded_cb,
g_object_ref (reader),
mail_msg_fast_ordered_push);
@@ -2007,24 +1957,58 @@ mail_reader_emit_folder_loaded (EMailReader *reader)
g_signal_emit (reader, signals[FOLDER_LOADED], 0);
}
+static GPtrArray *
+mail_reader_get_selected_uids (EMailReader *reader)
+{
+ GtkWidget *message_list;
+
+ message_list = e_mail_reader_get_message_list (reader);
+
+ return message_list_get_selected (MESSAGE_LIST (message_list));
+}
+
+static CamelFolder *
+mail_reader_get_folder (EMailReader *reader)
+{
+ GtkWidget *message_list;
+
+ message_list = e_mail_reader_get_message_list (reader);
+
+ return MESSAGE_LIST (message_list)->folder;
+}
+
+static const gchar *
+mail_reader_get_folder_uri (EMailReader *reader)
+{
+ GtkWidget *message_list;
+
+ message_list = e_mail_reader_get_message_list (reader);
+
+ return MESSAGE_LIST (message_list)->folder_uri;
+}
+
static void
mail_reader_set_folder (EMailReader *reader,
CamelFolder *folder,
const gchar *folder_uri)
{
EMFormatHTMLDisplay *html_display;
+ CamelFolder *previous_folder;
GtkWidget *message_list;
+ const gchar *previous_folder_uri;
gboolean outgoing;
html_display = e_mail_reader_get_html_display (reader);
message_list = e_mail_reader_get_message_list (reader);
- if (MESSAGE_LIST (message_list)->folder != NULL)
- mail_sync_folder (
- MESSAGE_LIST (message_list)->folder, NULL, NULL);
+ previous_folder = e_mail_reader_get_folder (reader);
+ previous_folder_uri = e_mail_reader_get_folder_uri (reader);
+
+ if (previous_folder != NULL)
+ mail_sync_folder (previous_folder, NULL, NULL);
/* Skip the rest if we're already viewing the folder. */
- if (g_strcmp0 (folder_uri, MESSAGE_LIST (message_list)->folder_uri) == 0)
+ if (g_strcmp0 (folder_uri, previous_folder_uri) == 0)
return;
outgoing = folder != NULL && folder_uri != NULL && (
@@ -2416,6 +2400,9 @@ mail_reader_init_charset_actions (EMailReader *reader)
static void
mail_reader_class_init (EMailReaderIface *iface)
{
+ iface->get_selected_uids = mail_reader_get_selected_uids;
+ iface->get_folder = mail_reader_get_folder;
+ iface->get_folder_uri = mail_reader_get_folder_uri;
iface->set_folder = mail_reader_set_folder;
iface->set_message = mail_reader_set_message;
iface->update_actions = mail_reader_update_actions;
@@ -2673,7 +2660,6 @@ e_mail_reader_changed (EMailReader *reader)
guint32
e_mail_reader_check_state (EMailReader *reader)
{
- GtkWidget *message_list;
GPtrArray *uids;
CamelFolder *folder;
CamelStore *store = NULL;
@@ -2698,10 +2684,9 @@ e_mail_reader_check_state (EMailReader *reader)
g_return_val_if_fail (E_IS_MAIL_READER (reader), 0);
- message_list = e_mail_reader_get_message_list (reader);
- uids = message_list_get_selected (MESSAGE_LIST (message_list));
- folder_uri = MESSAGE_LIST (message_list)->folder_uri;
- folder = MESSAGE_LIST (message_list)->folder;
+ folder = e_mail_reader_get_folder (reader);
+ folder_uri = e_mail_reader_get_folder_uri (reader);
+ uids = e_mail_reader_get_selected_uids (reader);
if (folder != NULL) {
store = CAMEL_STORE (folder->parent_store);
@@ -2921,6 +2906,19 @@ e_mail_reader_get_popup_menu (EMailReader *reader)
return iface->get_popup_menu (reader);
}
+GPtrArray *
+e_mail_reader_get_selected_uids (EMailReader *reader)
+{
+ EMailReaderIface *iface;
+
+ g_return_val_if_fail (E_IS_MAIL_READER (reader), NULL);
+
+ iface = E_MAIL_READER_GET_IFACE (reader);
+ g_return_val_if_fail (iface->get_selected_uids != NULL, NULL);
+
+ return iface->get_selected_uids (reader);
+}
+
EShellBackend *
e_mail_reader_get_shell_backend (EMailReader *reader)
{
@@ -2947,6 +2945,32 @@ e_mail_reader_get_window (EMailReader *reader)
return iface->get_window (reader);
}
+CamelFolder *
+e_mail_reader_get_folder (EMailReader *reader)
+{
+ EMailReaderIface *iface;
+
+ g_return_val_if_fail (E_IS_MAIL_READER (reader), NULL);
+
+ iface = E_MAIL_READER_GET_IFACE (reader);
+ g_return_val_if_fail (iface->get_folder != NULL, NULL);
+
+ return iface->get_folder (reader);
+}
+
+const gchar *
+e_mail_reader_get_folder_uri (EMailReader *reader)
+{
+ EMailReaderIface *iface;
+
+ g_return_val_if_fail (E_IS_MAIL_READER (reader), NULL);
+
+ iface = E_MAIL_READER_GET_IFACE (reader);
+ g_return_val_if_fail (iface->get_folder_uri != NULL, NULL);
+
+ return iface->get_folder_uri (reader);
+}
+
void
e_mail_reader_set_folder (EMailReader *reader,
CamelFolder *folder,