From 09e374bfc606916a840e9eb9809d33e6ac5359eb Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 6 Jul 2012 12:09:37 -0400 Subject: Remove mail_ui_session_source_changed_cb(). This function removed a CamelStore from EMFolderTreeModel and then added it again in response to the corresponding ESource emitting a "changed" signal (presumably from editing a mail account and saving changes). In the past this was the only way for changes to the account URI string to take effect without restarting Evolution. But we have CamelSettings now and don't need this hack anymore. Time for it to die. --- mail/e-mail-ui-session.c | 69 ------------------------------------------------ 1 file changed, 69 deletions(-) (limited to 'mail') diff --git a/mail/e-mail-ui-session.c b/mail/e-mail-ui-session.c index ce21c9688b..b9ecea1b5d 100644 --- a/mail/e-mail-ui-session.c +++ b/mail/e-mail-ui-session.c @@ -82,8 +82,6 @@ struct _EMailUISessionPrivate { ESourceRegistry *registry; EMailAccountStore *account_store; EMailLabelListStore *label_store; - - gulong source_changed_handler_id; }; enum { @@ -471,63 +469,6 @@ source_context_free (SourceContext *context) g_slice_free (SourceContext, context); } -static void -mail_ui_session_source_changed_cb (ESourceRegistry *registry, - ESource *source, - EMailSession *session) -{ - EMFolderTreeModel *folder_tree_model; - CamelService *service; - ESource *collection; - gboolean enabled; - const gchar *extension_name; - const gchar *uid; - - uid = e_source_get_uid (source); - - /* We're only interested in mail account data sources. */ - extension_name = E_SOURCE_EXTENSION_MAIL_ACCOUNT; - if (!e_source_has_extension (source, extension_name)) - return; - - /* There should be a CamelStore with the same UID. */ - service = camel_session_get_service (CAMEL_SESSION (session), uid); - - /* send-only accounts */ - if (!CAMEL_IS_STORE (service)) - return; - - /* Remove the store from the folder tree model and, if the - * source is still enabled, re-add it. Easier than trying - * to update the model with the store in place. - * - * em_folder_tree_model_add_store() already knows which types - * of stores to disregard, so we don't have to deal with that - * here. */ - - folder_tree_model = em_folder_tree_model_get_default (); - - em_folder_tree_model_remove_store ( - folder_tree_model, CAMEL_STORE (service)); - - /* If this ESource is part of a collection, we need to - * pick up the enabled state for the entire collection. - * Check the ESource and its ancestors for a collection - * extension and read from the containing source. */ - collection = e_source_registry_find_extension ( - registry, source, E_SOURCE_EXTENSION_COLLECTION); - if (collection != NULL) { - enabled = e_source_get_enabled (collection); - g_object_unref (collection); - } else { - enabled = e_source_get_enabled (source); - } - - if (enabled) - em_folder_tree_model_add_store ( - folder_tree_model, CAMEL_STORE (service)); -} - static gboolean mail_ui_session_add_service_cb (SourceContext *context) { @@ -573,9 +514,6 @@ mail_ui_session_dispose (GObject *object) priv = E_MAIL_UI_SESSION_GET_PRIVATE (object); if (priv->registry != NULL) { - g_signal_handler_disconnect ( - priv->registry, - priv->source_changed_handler_id); g_object_unref (priv->registry); priv->registry = NULL; } @@ -628,13 +566,6 @@ mail_ui_session_constructed (GObject *object) /* Chain up to parent's constructed() method. */ G_OBJECT_CLASS (e_mail_ui_session_parent_class)->constructed (object); - - /* Listen for registry changes. */ - - handler_id = g_signal_connect ( - registry, "source-changed", - G_CALLBACK (mail_ui_session_source_changed_cb), session); - priv->source_changed_handler_id = handler_id; } static CamelService * -- cgit v1.2.3