diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-02-17 23:17:14 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-02-18 02:36:38 +0800 |
commit | 2e858dc05e7e759971f9ec46af87afdbe4c92569 (patch) | |
tree | d3c357f52c3f56e859dd670d2f291e638372191f | |
parent | b117764a5017f9b6a70a964b8aed469eaef488b5 (diff) | |
download | gsoc2013-evolution-2e858dc05e7e759971f9ec46af87afdbe4c92569.tar.gz gsoc2013-evolution-2e858dc05e7e759971f9ec46af87afdbe4c92569.tar.zst gsoc2013-evolution-2e858dc05e7e759971f9ec46af87afdbe4c92569.zip |
EBookShellView: Use EClientCache to obtain an EClient.
-rw-r--r-- | modules/addressbook/e-book-shell-view-actions.c | 31 | ||||
-rw-r--r-- | modules/addressbook/e-book-shell-view-private.c | 21 |
2 files changed, 44 insertions, 8 deletions
diff --git a/modules/addressbook/e-book-shell-view-actions.c b/modules/addressbook/e-book-shell-view-actions.c index e4e31039da..78ea77d1b2 100644 --- a/modules/addressbook/e-book-shell-view-actions.c +++ b/modules/addressbook/e-book-shell-view-actions.c @@ -229,12 +229,15 @@ map_window_show_contact_editor_cb (EContactMapWindow *window, const gchar *contact_uid, gpointer user_data) { - EShell *shell = e_shell_get_default (); EBookShellView *book_shell_view = user_data; EBookShellSidebar *book_shell_sidebar; + EShell *shell; + EShellView *shell_view; + EShellBackend *shell_backend; ESource *source; ESourceSelector *selector; EClient *client; + EClientCache *client_cache; EContact *contact; EABEditor *editor; GError *error = NULL; @@ -244,7 +247,16 @@ map_window_show_contact_editor_cb (EContactMapWindow *window, source = e_source_selector_ref_primary_selection (selector); g_return_if_fail (source != NULL); - client = e_book_client_connect_sync (source, NULL, &error); + shell_view = E_SHELL_VIEW (book_shell_view); + shell_backend = e_shell_view_get_shell_backend (shell_view); + shell = e_shell_backend_get_shell (shell_backend); + client_cache = e_shell_get_client_cache (shell); + + /* FIXME This blocks. Needs to be asynchronous. */ + client = e_client_cache_get_client_sync ( + client_cache, source, + E_SOURCE_EXTENSION_ADDRESS_BOOK, + NULL, &error); g_object_unref (source); @@ -289,11 +301,15 @@ action_address_book_map_cb (GtkAction *action, EBookShellView *book_shell_view) { #ifdef WITH_CONTACT_MAPS + EShell *shell; + EShellView *shell_view; + EShellBackend *shell_backend; EContactMapWindow *map_window; EBookShellSidebar *book_shell_sidebar; ESource *source; ESourceSelector *selector; EClient *client; + EClientCache *client_cache; GError *error = NULL; book_shell_sidebar = book_shell_view->priv->book_shell_sidebar; @@ -301,7 +317,16 @@ action_address_book_map_cb (GtkAction *action, source = e_source_selector_ref_primary_selection (selector); g_return_if_fail (source != NULL); - client = e_book_client_connect_sync (source, NULL, &error); + shell_view = E_SHELL_VIEW (book_shell_view); + shell_backend = e_shell_view_get_shell_backend (shell_view); + shell = e_shell_backend_get_shell (shell_backend); + client_cache = e_shell_get_client_cache (shell); + + /* FIXME This blocks. Needs to be asynchronous. */ + client = e_client_cache_get_client_sync ( + client_cache, source, + E_SOURCE_EXTENSION_ADDRESS_BOOK, + NULL, &error); g_object_unref (source); diff --git a/modules/addressbook/e-book-shell-view-private.c b/modules/addressbook/e-book-shell-view-private.c index 6f23d4faed..8bb90fe758 100644 --- a/modules/addressbook/e-book-shell-view-private.c +++ b/modules/addressbook/e-book-shell-view-private.c @@ -214,7 +214,8 @@ book_shell_view_client_connect_cb (GObject *source_object, EAddressbookModel *model; GError *error = NULL; - client = e_book_client_connect_finish (result, &error); + client = e_client_cache_get_client_finish ( + E_CLIENT_CACHE (source_object), result, &error); /* Sanity check. */ g_return_if_fail ( @@ -255,10 +256,13 @@ static void book_shell_view_activate_selected_source (EBookShellView *book_shell_view, ESourceSelector *selector) { + EShell *shell; EShellView *shell_view; + EShellBackend *shell_backend; EBookShellContent *book_shell_content; EAddressbookView *view; EAddressbookModel *model; + EClientCache *client_cache; ESource *source; GalViewInstance *view_instance; GHashTable *hash_table; @@ -267,6 +271,9 @@ book_shell_view_activate_selected_source (EBookShellView *book_shell_view, gchar *view_id; shell_view = E_SHELL_VIEW (book_shell_view); + shell_backend = e_shell_view_get_shell_backend (shell_view); + shell = e_shell_backend_get_shell (shell_backend); + client_cache = e_shell_get_client_cache (shell); book_shell_content = book_shell_view->priv->book_shell_content; source = e_source_selector_ref_primary_selection (selector); @@ -288,8 +295,10 @@ book_shell_view_activate_selected_source (EBookShellView *book_shell_view, if (e_addressbook_model_get_client (model) == NULL) /* XXX No way to cancel this? */ - e_book_client_connect ( - source, NULL, + e_client_cache_get_client ( + client_cache, source, + E_SOURCE_EXTENSION_ADDRESS_BOOK, + NULL, book_shell_view_client_connect_cb, g_object_ref (view)); @@ -334,8 +343,10 @@ book_shell_view_activate_selected_source (EBookShellView *book_shell_view, model = e_addressbook_view_get_model (view); /* XXX No way to cancel this? */ - e_book_client_connect ( - source, NULL, + e_client_cache_get_client ( + client_cache, source, + E_SOURCE_EXTENSION_ADDRESS_BOOK, + NULL, book_shell_view_client_connect_cb, g_object_ref (view)); |