static void file_replace_contents_cb (GFile *file, GAsyncResult *result, GSimpleAsyncResult *simple) { AsyncContext *context; gchar *new_etag = NULL; GError *error = NULL; context = g_simple_async_result_get_op_res_gpointer (simple); g_file_replace_contents_finish (file, result, &new_etag, &error); if (!e_activity_handle_cancellation (context->activity, error)) e_activity_set_state (context->activity, E_ACTIVITY_COMPLETED); if (error == NULL) context->new_etag = new_etag; else { g_warn_if_fail (new_etag == NULL); g_simple_async_result_take_error (simple, error); } g_simple_async_result_complete (simple); g_object_unref (simple); }
static gboolean e_alert_sink_thread_job_done_cb (gpointer user_data) { EAlertSinkThreadJobData *job_data = user_data; EAlertSink *alert_sink; GCancellable *cancellable; g_return_val_if_fail (job_data != NULL, FALSE); g_return_val_if_fail (job_data->func != NULL, FALSE); alert_sink = e_activity_get_alert_sink (job_data->activity); cancellable = e_activity_get_cancellable (job_data->activity); camel_operation_pop_message (cancellable); if (e_activity_handle_cancellation (job_data->activity, job_data->error)) { /* do nothing */ } else if (job_data->error != NULL) { if (job_data->alert_arg_0) { e_alert_submit ( alert_sink, job_data->alert_ident, job_data->alert_arg_0, job_data->error->message, NULL); } else { e_alert_submit ( alert_sink, job_data->alert_ident, job_data->error->message, NULL); } } else { e_activity_set_state (job_data->activity, E_ACTIVITY_COMPLETED); } /* clean-up */ g_clear_object (&job_data->activity); g_clear_error (&job_data->error); g_free (job_data->alert_ident); g_free (job_data->alert_arg_0); if (job_data->free_user_data) job_data->free_user_data (job_data->user_data); g_free (job_data); return FALSE; }
static void address_book_refresh_done_cb (GObject *source_object, GAsyncResult *result, gpointer user_data) { EClient *client; ESource *source; EActivity *activity; EAlertSink *alert_sink; const gchar *display_name; GError *local_error = NULL; g_return_if_fail (E_IS_CLIENT (source_object)); client = E_CLIENT (source_object); source = e_client_get_source (client); activity = user_data; e_client_refresh_finish (client, result, &local_error); alert_sink = e_activity_get_alert_sink (activity); display_name = e_source_get_display_name (source); if (e_activity_handle_cancellation (activity, local_error)) { /* nothing to do */ } else if (local_error != NULL) { e_alert_submit ( alert_sink, "addressbook:refresh-error", display_name, local_error->message, NULL); } else { e_activity_set_state (activity, E_ACTIVITY_COMPLETED); } g_clear_object (&activity); g_clear_error (&local_error); }
static void source_util_remove_cb (GObject *source_object, GAsyncResult *result, gpointer user_data) { ESource *source; EActivity *activity; EAlertSink *alert_sink; AsyncContext *async_context; const gchar *display_name; GError *error = NULL; source = E_SOURCE (source_object); async_context = (AsyncContext *) user_data; activity = async_context->activity; alert_sink = e_activity_get_alert_sink (activity); display_name = e_source_get_display_name (source); e_source_remove_finish (source, result, &error); if (e_activity_handle_cancellation (activity, error)) { g_error_free (error); } else if (error != NULL) { e_alert_submit ( alert_sink, "system:remove-source-fail", display_name, error->message, NULL); g_error_free (error); } else { e_activity_set_state (activity, E_ACTIVITY_COMPLETED); } async_context_free (async_context); }
static void mail_shell_view_got_folder_cb (CamelStore *store, GAsyncResult *result, AsyncContext *context) { EAlertSink *alert_sink; CamelFolder *folder; GError *error = NULL; alert_sink = e_activity_get_alert_sink (context->activity); folder = camel_store_get_folder_finish (store, result, &error); if (e_activity_handle_cancellation (context->activity, error)) { g_warn_if_fail (folder == NULL); async_context_free (context); g_error_free (error); return; } else if (error != NULL) { g_warn_if_fail (folder == NULL); e_alert_submit ( alert_sink, "mail:folder-open", error->message, NULL); async_context_free (context); g_error_free (error); return; } e_mail_reader_set_folder (context->reader, folder); e_shell_view_update_actions_in_idle (context->shell_view); g_object_unref (folder); async_context_free (context); }