aboutsummaryrefslogtreecommitdiffstats
path: root/modules/mail/e-mail-shell-view-private.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-06-15 10:55:03 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-06-15 11:21:41 +0800
commit5b1742b202ca9505ccd818918b4afe82fc61b63b (patch)
tree6653da03ad3e8139e938e79ed3571c5fea4c818a /modules/mail/e-mail-shell-view-private.c
parentcf669f10f22de13ab4ee9b323d274325af22b0b9 (diff)
downloadgsoc2013-evolution-5b1742b202ca9505ccd818918b4afe82fc61b63b.tar
gsoc2013-evolution-5b1742b202ca9505ccd818918b4afe82fc61b63b.tar.gz
gsoc2013-evolution-5b1742b202ca9505ccd818918b4afe82fc61b63b.tar.bz2
gsoc2013-evolution-5b1742b202ca9505ccd818918b4afe82fc61b63b.tar.lz
gsoc2013-evolution-5b1742b202ca9505ccd818918b4afe82fc61b63b.tar.xz
gsoc2013-evolution-5b1742b202ca9505ccd818918b4afe82fc61b63b.tar.zst
gsoc2013-evolution-5b1742b202ca9505ccd818918b4afe82fc61b63b.zip
Add e_mail_reader_ref_folder().
Replaces e_mail_reader_get_folder().
Diffstat (limited to 'modules/mail/e-mail-shell-view-private.c')
-rw-r--r--modules/mail/e-mail-shell-view-private.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/modules/mail/e-mail-shell-view-private.c b/modules/mail/e-mail-shell-view-private.c
index aa9addf4a5..16971771de 100644
--- a/modules/mail/e-mail-shell-view-private.c
+++ b/modules/mail/e-mail-shell-view-private.c
@@ -212,7 +212,7 @@ mail_shell_view_folder_tree_selection_done_cb (EMailShellView *mail_shell_view,
reader = E_MAIL_READER (mail_view);
message_list = e_mail_reader_get_message_list (reader);
- /* Don't use e_mail_reader_get_folder() here. The fact that the
+ /* Don't use e_mail_reader_ref_folder() here. The fact that the
* method gets the folder from the message list is supposed to be
* a hidden implementation detail, and we want to explicitly get
* the folder URI from the message list here. */
@@ -523,18 +523,18 @@ mail_shell_view_prepare_for_quit_cb (EMailShellView *mail_shell_view,
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
reader = E_MAIL_READER (mail_view);
- folder = e_mail_reader_get_folder (reader);
+ folder = e_mail_reader_ref_folder (reader);
message_list = e_mail_reader_get_message_list (reader);
message_list_save_state (MESSAGE_LIST (message_list));
- if (folder == NULL)
- return;
-
- mail_sync_folder (
- folder, TRUE,
- mail_shell_view_prepare_for_quit_done_cb,
- g_object_ref (activity));
+ if (folder != NULL) {
+ mail_sync_folder (
+ folder, TRUE,
+ mail_shell_view_prepare_for_quit_done_cb,
+ g_object_ref (activity));
+ g_object_unref (folder);
+ }
}
static void
@@ -914,7 +914,7 @@ e_mail_shell_view_restore_state (EMailShellView *mail_shell_view)
searchbar = e_mail_shell_content_get_searchbar (mail_shell_content);
reader = E_MAIL_READER (mail_view);
- folder = e_mail_reader_get_folder (reader);
+ folder = e_mail_reader_ref_folder (reader);
if (folder == NULL) {
if (e_shell_searchbar_get_state_group (searchbar)) {
@@ -930,11 +930,11 @@ e_mail_shell_view_restore_state (EMailShellView *mail_shell_view)
vee_folder = mail_shell_view->priv->search_account_all;
if (vee_folder != NULL && folder == CAMEL_FOLDER (vee_folder))
- return;
+ goto exit;
vee_folder = mail_shell_view->priv->search_account_current;
if (vee_folder != NULL && folder == CAMEL_FOLDER (vee_folder))
- return;
+ goto exit;
folder_uri = e_mail_folder_uri_from_folder (folder);
new_state_group = g_strdup_printf ("Folder %s", folder_uri);
@@ -948,6 +948,9 @@ e_mail_shell_view_restore_state (EMailShellView *mail_shell_view)
}
g_free (new_state_group);
+
+exit:
+ g_clear_object (&folder);
}
void
@@ -989,7 +992,7 @@ e_mail_shell_view_update_sidebar (EMailShellView *mail_shell_view)
registry = e_shell_get_registry (shell);
reader = E_MAIL_READER (mail_view);
- folder = e_mail_reader_get_folder (reader);
+ folder = e_mail_reader_ref_folder (reader);
/* If no folder is selected, reset the sidebar banners
* to their default values and stop. */
@@ -1113,6 +1116,8 @@ e_mail_shell_view_update_sidebar (EMailShellView *mail_shell_view)
g_free (title);
g_string_free (buffer, TRUE);
+
+ g_clear_object (&folder);
}
typedef struct {