aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-account-store.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2012-09-05 21:41:16 +0800
committerMilan Crha <mcrha@redhat.com>2012-09-05 21:42:03 +0800
commit511acab89a83114aad35e9c6f76a8f284907dab9 (patch)
tree4455567f90a3708dc43b172491388daf0f8c590e /mail/e-mail-account-store.c
parent86c5e71225cda76616a5a5d5cfba46b84351b863 (diff)
downloadgsoc2013-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.c41
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)