static void photos_source_manager_goa_client (GObject *source_object, GAsyncResult *res, gpointer user_data) { PhotosSourceManager *self; PhotosSourceManagerPrivate *priv; GError *error; GoaClient *client; error = NULL; client = goa_client_new_finish (res, &error); if (error != NULL) { if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) g_warning ("Unable to create GoaClient: %s", error->message); g_error_free (error); return; } self = PHOTOS_SOURCE_MANAGER (user_data); priv = self->priv; priv->client = client; g_signal_connect_swapped (priv->client, "account-added", G_CALLBACK (photos_source_manager_refresh_accounts), self); g_signal_connect_swapped (priv->client, "account-changed", G_CALLBACK (photos_source_manager_refresh_accounts), self); g_signal_connect_swapped (priv->client, "account-removed", G_CALLBACK (photos_source_manager_refresh_accounts), self); photos_source_manager_refresh_accounts (self); }
static void goa_client_new_cb (GObject *object, GAsyncResult *result, gpointer user_data) { AddAccountData *data = user_data; data->goa_client = goa_client_new_finish (result, &data->error); if (data->goa_client == NULL) { g_set_error (&data->error, GOA_ERROR, GOA_ERROR_FAILED, _("Failed to initialize a GOA client")); g_main_loop_quit (data->loop); return; } if (!check_existing_goa_accounts (data)) { data->goa_account_added_id = g_signal_connect (data->goa_client, "account-added", G_CALLBACK (goa_account_added_cb), data); } }