Add em_folder_tree_get_selected_account().
Comes in handy for a few EMailShellView actions.
This commit is contained in:
@ -3157,6 +3157,32 @@ done:
|
||||
return fi;
|
||||
}
|
||||
|
||||
EAccount *
|
||||
em_folder_tree_get_selected_account (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);
|
||||
|
||||
tree_view = GTK_TREE_VIEW (folder_tree);
|
||||
selection = gtk_tree_view_get_selection (tree_view);
|
||||
|
||||
if (gtk_tree_selection_get_selected (selection, &model, &iter))
|
||||
gtk_tree_model_get (
|
||||
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;
|
||||
}
|
||||
|
||||
void
|
||||
em_folder_tree_set_skip_double_click (EMFolderTree *folder_tree, gboolean skip)
|
||||
{
|
||||
|
||||
@ -123,6 +123,8 @@ CamelFolder * em_folder_tree_get_selected_folder
|
||||
CamelFolderInfo *
|
||||
em_folder_tree_get_selected_folder_info
|
||||
(EMFolderTree *folder_tree);
|
||||
EAccount * em_folder_tree_get_selected_account
|
||||
(EMFolderTree *folder_tree);
|
||||
gboolean em_folder_tree_create_folder (EMFolderTree *folder_tree,
|
||||
const gchar *full_name,
|
||||
const gchar *uri);
|
||||
|
||||
@ -86,7 +86,6 @@ action_mail_account_disable_cb (GtkAction *action,
|
||||
EMFolderTree *folder_tree;
|
||||
EAccountList *account_list;
|
||||
EAccount *account;
|
||||
gchar *folder_uri;
|
||||
|
||||
mail_shell_sidebar = mail_shell_view->priv->mail_shell_sidebar;
|
||||
|
||||
@ -97,12 +96,10 @@ action_mail_account_disable_cb (GtkAction *action,
|
||||
session = e_mail_backend_get_session (backend);
|
||||
|
||||
folder_tree = e_mail_shell_sidebar_get_folder_tree (mail_shell_sidebar);
|
||||
folder_uri = em_folder_tree_get_selected_uri (folder_tree);
|
||||
g_return_if_fail (folder_uri != NULL);
|
||||
account = em_folder_tree_get_selected_account (folder_tree);
|
||||
g_return_if_fail (account != NULL);
|
||||
|
||||
account_list = e_get_account_list ();
|
||||
account = e_get_account_by_source_url (folder_uri);
|
||||
g_return_if_fail (account != NULL);
|
||||
|
||||
if (e_account_list_account_has_proxies (account_list, account))
|
||||
e_account_list_remove_account_proxies (account_list, account);
|
||||
@ -115,8 +112,6 @@ action_mail_account_disable_cb (GtkAction *action,
|
||||
e_account_list_remove (account_list, account);
|
||||
|
||||
e_account_list_save (account_list);
|
||||
|
||||
g_free (folder_uri);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1004,9 +999,8 @@ action_mail_tools_subscriptions_cb (GtkAction *action,
|
||||
EMailBackend *backend;
|
||||
EMailSession *session;
|
||||
EMFolderTree *folder_tree;
|
||||
EAccount *account = NULL;
|
||||
EAccount *account;
|
||||
GtkWidget *dialog;
|
||||
gchar *uri;
|
||||
|
||||
shell_view = E_SHELL_VIEW (mail_shell_view);
|
||||
shell_window = e_shell_view_get_shell_window (shell_view);
|
||||
@ -1014,16 +1008,11 @@ action_mail_tools_subscriptions_cb (GtkAction *action,
|
||||
|
||||
mail_shell_sidebar = mail_shell_view->priv->mail_shell_sidebar;
|
||||
folder_tree = e_mail_shell_sidebar_get_folder_tree (mail_shell_sidebar);
|
||||
account = em_folder_tree_get_selected_account (folder_tree);
|
||||
|
||||
backend = E_MAIL_BACKEND (shell_backend);
|
||||
session = e_mail_backend_get_session (backend);
|
||||
|
||||
uri = em_folder_tree_get_selected_uri (folder_tree);
|
||||
if (uri != NULL) {
|
||||
account = e_get_account_by_source_url (uri);
|
||||
g_free (uri);
|
||||
}
|
||||
|
||||
dialog = em_subscription_editor_new (
|
||||
GTK_WINDOW (shell_window),
|
||||
CAMEL_SESSION (session), account);
|
||||
|
||||
@ -844,7 +844,7 @@ mail_shell_view_update_actions (EShellView *shell_view)
|
||||
EMailBackend *backend;
|
||||
EMailSession *session;
|
||||
EMailView *mail_view;
|
||||
EAccount *account = NULL;
|
||||
EAccount *account;
|
||||
GtkAction *action;
|
||||
GList *list;
|
||||
const gchar *label;
|
||||
@ -902,6 +902,8 @@ mail_shell_view_update_actions (EShellView *shell_view)
|
||||
(state & E_MAIL_SIDEBAR_STORE_SUPPORTS_SUBSCRIPTIONS);
|
||||
|
||||
uri = em_folder_tree_get_selected_uri (folder_tree);
|
||||
account = em_folder_tree_get_selected_account (folder_tree);
|
||||
|
||||
if (uri != NULL) {
|
||||
GtkTreeRowReference *reference;
|
||||
EMFolderTreeModel *model;
|
||||
@ -919,8 +921,6 @@ mail_shell_view_update_actions (EShellView *shell_view)
|
||||
folder_tree_and_message_list_agree =
|
||||
(g_strcmp0 (uri, folder_uri) == 0);
|
||||
|
||||
account = e_get_account_by_source_url (uri);
|
||||
|
||||
/* FIXME This belongs in a GroupWise plugin. */
|
||||
account_is_groupwise =
|
||||
(g_strrstr (uri, "groupwise://") != NULL) &&
|
||||
|
||||
Reference in New Issue
Block a user