From fd43cd692ad12e7f9c70386c1b0867b16f9ec15d Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 31 Jan 2013 16:14:49 -0500 Subject: Incorporate ESourceUOA. Where we make exceptions for GNOME Online Accounts, so too shall we for Ubuntu Online Accounts. --- mail/e-mail-account-store.c | 7 +++++++ mail/e-mail-config-notebook.c | 18 +++++++++++++----- mail/e-mail-sidebar.c | 9 ++++++++- 3 files changed, 28 insertions(+), 6 deletions(-) (limited to 'mail') diff --git a/mail/e-mail-account-store.c b/mail/e-mail-account-store.c index a2a639d9b4..cb1f4e000d 100644 --- a/mail/e-mail-account-store.c +++ b/mail/e-mail-account-store.c @@ -1153,6 +1153,13 @@ e_mail_account_store_add_service (EMailAccountStore *store, enabled_visible = FALSE; } + /* Check for Ubuntu Online Accounts linkage. */ + extension_name = E_SOURCE_EXTENSION_UOA; + if (e_source_has_extension (collection, extension_name)) { + online_account = TRUE; + enabled_visible = FALSE; + } + g_object_unref (collection); } else { enabled = e_source_get_enabled (source); diff --git a/mail/e-mail-config-notebook.c b/mail/e-mail-config-notebook.c index 0aff802df5..fd43b20c7e 100644 --- a/mail/e-mail-config-notebook.c +++ b/mail/e-mail-config-notebook.c @@ -311,7 +311,7 @@ mail_config_notebook_constructed (GObject *object) gboolean add_receiving_page = TRUE; gboolean add_sending_page = TRUE; gboolean add_transport_source; - gboolean gnome_online_account = FALSE; + gboolean online_account = FALSE; notebook = E_MAIL_CONFIG_NOTEBOOK (object); @@ -328,13 +328,21 @@ mail_config_notebook_constructed (GObject *object) mail_identity_extension = E_SOURCE_MAIL_IDENTITY (extension); /* If we have a collection source and the collection source - * has a [GNOME Online Accounts] extension, skip the Receiving - * and Sending pages since GOA dictates those settings. */ + * has a [GNOME Online Accounts] or [Ubuntu Online Accounts] + * extension, skip the Receiving and Sending pages since GOA + * and UOA dictates those settings. */ source = notebook->priv->collection_source; if (source != NULL) { extension_name = E_SOURCE_EXTENSION_GOA; if (e_source_has_extension (source, extension_name)) { - gnome_online_account = TRUE; + online_account = TRUE; + add_receiving_page = FALSE; + add_sending_page = FALSE; + } + + extension_name = E_SOURCE_EXTENSION_UOA; + if (e_source_has_extension (source, extension_name)) { + online_account = TRUE; add_receiving_page = FALSE; add_sending_page = FALSE; } @@ -367,7 +375,7 @@ mail_config_notebook_constructed (GObject *object) registry, notebook->priv->identity_source); e_mail_config_identity_page_set_show_instructions ( E_MAIL_CONFIG_IDENTITY_PAGE (page), FALSE); - if (gnome_online_account) { + if (online_account) { e_mail_config_identity_page_set_show_account_info ( E_MAIL_CONFIG_IDENTITY_PAGE (page), FALSE); e_mail_config_identity_page_set_show_email_address ( diff --git a/mail/e-mail-sidebar.c b/mail/e-mail-sidebar.c index aafa6cd302..20cf41404c 100644 --- a/mail/e-mail-sidebar.c +++ b/mail/e-mail-sidebar.c @@ -485,7 +485,7 @@ mail_sidebar_check_state (EMailSidebar *sidebar) can_delete &= !(folder_flags & CAMEL_FOLDER_SYSTEM); } - /* GOA-based accounts cannot be disabled from Evolution. */ + /* GOA and UOA-based accounts cannot be disabled from Evolution. */ if (is_store && !store_is_local && !store_is_vfolder) { EMFolderTree *folder_tree; EMailSession *session; @@ -505,6 +505,13 @@ mail_sidebar_check_state (EMailSidebar *sidebar) g_object_unref (ancestor); } + ancestor = e_source_registry_find_extension ( + registry, source, E_SOURCE_EXTENSION_UOA); + if (ancestor != NULL) { + can_disable = FALSE; + g_object_unref (ancestor); + } + g_object_unref (source); } -- cgit v1.2.3