diff options
author | Milan Crha <mcrha@redhat.com> | 2012-09-05 21:41:16 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2012-09-05 21:42:03 +0800 |
commit | 511acab89a83114aad35e9c6f76a8f284907dab9 (patch) | |
tree | 4455567f90a3708dc43b172491388daf0f8c590e /mail/e-mail-account-store.c | |
parent | 86c5e71225cda76616a5a5d5cfba46b84351b863 (diff) | |
download | gsoc2013-evolution-511acab89a83114aad35e9c6f76a8f284907dab9.tar gsoc2013-evolution-511acab89a83114aad35e9c6f76a8f284907dab9.tar.gz gsoc2013-evolution-511acab89a83114aad35e9c6f76a8f284907dab9.tar.bz2 gsoc2013-evolution-511acab89a83114aad35e9c6f76a8f284907dab9.tar.lz gsoc2013-evolution-511acab89a83114aad35e9c6f76a8f284907dab9.tar.xz gsoc2013-evolution-511acab89a83114aad35e9c6f76a8f284907dab9.tar.zst gsoc2013-evolution-511acab89a83114aad35e9c6f76a8f284907dab9.zip |
Bug #682425 - Can do network operations on disabled accounts
Diffstat (limited to 'mail/e-mail-account-store.c')
-rw-r--r-- | mail/e-mail-account-store.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/mail/e-mail-account-store.c b/mail/e-mail-account-store.c index a78034aee5..9c777b5c6b 100644 --- a/mail/e-mail-account-store.c +++ b/mail/e-mail-account-store.c @@ -1365,6 +1365,47 @@ e_mail_account_store_queue_enabled_services (EMailAccountStore *store, } } +gboolean +e_mail_account_store_have_enabled_service (EMailAccountStore *store, + GType service_type) +{ + GtkTreeModel *tree_model; + GtkTreeIter iter; + gboolean iter_set; + gint column; + gboolean found = FALSE; + + g_return_val_if_fail (E_IS_MAIL_ACCOUNT_STORE (store), FALSE); + + tree_model = GTK_TREE_MODEL (store); + + iter_set = gtk_tree_model_get_iter_first (tree_model, &iter); + + while (iter_set && !found) { + GValue value = G_VALUE_INIT; + gboolean enabled; + + column = E_MAIL_ACCOUNT_STORE_COLUMN_ENABLED; + gtk_tree_model_get_value (tree_model, &iter, column, &value); + enabled = g_value_get_boolean (&value); + g_value_unset (&value); + + if (enabled) { + CamelService *service; + + column = E_MAIL_ACCOUNT_STORE_COLUMN_SERVICE; + gtk_tree_model_get_value (tree_model, &iter, column, &value); + service = g_value_get_object (&value); + found = service && G_TYPE_CHECK_INSTANCE_TYPE (service, service_type); + g_value_unset (&value); + } + + iter_set = gtk_tree_model_iter_next (tree_model, &iter); + } + + return found; +} + void e_mail_account_store_reorder_services (EMailAccountStore *store, GQueue *ordered_services) |