diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-08-31 07:05:30 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2011-08-31 08:35:11 +0800 |
commit | f67a5f3d42aa9d743e6b78ace26a6ed1dbdc43e7 (patch) | |
tree | 98d3c6e13879d356ed0a4236ed9d2f5d48627980 /mail/em-folder-tree.c | |
parent | 60383e0427e57bfb5e2fb836b450ec7cf9717b5f (diff) | |
download | gsoc2013-evolution-f67a5f3d42aa9d743e6b78ace26a6ed1dbdc43e7.tar.gz gsoc2013-evolution-f67a5f3d42aa9d743e6b78ace26a6ed1dbdc43e7.tar.zst gsoc2013-evolution-f67a5f3d42aa9d743e6b78ace26a6ed1dbdc43e7.zip |
Miscellaneous cleanups.
Reducing diff noise with the account-mgmt branch.
Trying to erode our dependency on EAccount as much as possible, or at
least isolate its usage, to make things easier for me on the branch.
Diffstat (limited to 'mail/em-folder-tree.c')
-rw-r--r-- | mail/em-folder-tree.c | 43 |
1 files changed, 11 insertions, 32 deletions
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c index 18320eccf7..85a0acbcb1 100644 --- a/mail/em-folder-tree.c +++ b/mail/em-folder-tree.c @@ -39,7 +39,6 @@ #include <gdk/gdkkeysyms.h> #include <glib/gi18n.h> -#include "e-util/e-account-utils.h" #include "e-util/e-mktemp.h" #include "e-util/e-icon-factory.h" #include "e-util/e-alert-dialog.h" @@ -496,10 +495,9 @@ folder_tree_expand_node (const gchar *key, GtkTreeView *tree_view; GtkTreeModel *model; GtkTreePath *path; - EAccount *account; EMailBackend *backend; EMailSession *session; - CamelStore *store; + CamelService *service; const gchar *p; gchar *uid; gsize n; @@ -520,36 +518,21 @@ folder_tree_expand_node (const gchar *key, backend = em_folder_tree_get_backend (folder_tree); session = e_mail_backend_get_session (backend); - if ((account = e_get_account_by_uid (uid)) && account->enabled) { - store = (CamelStore *) camel_session_get_service ( - CAMEL_SESSION (session), account->uid); - - if (store == NULL) - return; - - g_object_ref (store); - } else if (!strcmp (uid, "vfolder")) { - if (!(store = vfolder_store)) - return; - - g_object_ref (store); - } else if (!strcmp (uid, "local")) { - if (!(store = e_mail_local_get_store ())) - return; + service = camel_session_get_service (CAMEL_SESSION (session), uid); - g_object_ref (store); - } else { + if (!CAMEL_IS_STORE (service)) return; - } + + g_object_ref (service); si = em_folder_tree_model_lookup_store_info ( - EM_FOLDER_TREE_MODEL (model), store); + EM_FOLDER_TREE_MODEL (model), CAMEL_STORE (service)); if (si == NULL) { - g_object_unref (store); + g_object_unref (service); return; } - g_object_unref (store); + g_object_unref (service); if (p != NULL) { if (!(row = g_hash_table_lookup (si->full_hash, p + 1))) @@ -3308,15 +3291,14 @@ em_folder_tree_get_selected_folder (EMFolderTree *folder_tree) return folder; } -EAccount * -em_folder_tree_get_selected_account (EMFolderTree *folder_tree) +CamelStore * +em_folder_tree_get_selected_store (EMFolderTree *folder_tree) { GtkTreeView *tree_view; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; CamelStore *store = NULL; - const gchar *uid = NULL; g_return_val_if_fail (EM_IS_FOLDER_TREE (folder_tree), NULL); @@ -3331,10 +3313,7 @@ em_folder_tree_get_selected_account (EMFolderTree *folder_tree) model, &iter, COL_POINTER_CAMEL_STORE, &store, -1); - if (CAMEL_IS_STORE (store)) - uid = camel_service_get_uid (CAMEL_SERVICE (store)); - - return (uid != NULL) ? e_get_account_by_uid (uid) : NULL; + return CAMEL_IS_STORE (store) ? store : NULL; } void |