Migrate the remaining bits of PpMaintenanceCommand to GTask

They were still using the deprecated GSimpleAsyncResult and throwing
a lot of warnings when building.

https://bugzilla.gnome.org/show_bug.cgi?id=766861
This commit is contained in:
Mario Sanchez Prada 2016-07-09 12:41:48 +01:00
parent c41bbfa7d0
commit bbe6b6309d

View file

@ -181,11 +181,12 @@ static gboolean _pp_maintenance_command_is_supported (const gchar *printer_name,
const gchar *command); const gchar *command);
static void static void
_pp_maintenance_command_execute_thread (GSimpleAsyncResult *res, _pp_maintenance_command_execute_thread (GTask *task,
GObject *object, gpointer source_object,
GCancellable *cancellable) gpointer task_data,
GCancellable *cancellable)
{ {
PpMaintenanceCommand *command = (PpMaintenanceCommand *) object; PpMaintenanceCommand *command = PP_MAINTENANCE_COMMAND (source_object);
PpMaintenanceCommandPrivate *priv = command->priv; PpMaintenanceCommandPrivate *priv = command->priv;
gboolean success = FALSE; gboolean success = FALSE;
GError *error = NULL; GError *error = NULL;
@ -245,13 +246,13 @@ _pp_maintenance_command_execute_thread (GSimpleAsyncResult *res,
if (!success) if (!success)
{ {
g_simple_async_result_set_error (res, g_task_return_new_error (task,
G_IO_ERROR, G_IO_ERROR,
G_IO_ERROR_FAILED, G_IO_ERROR_FAILED,
"Execution of maintenance command failed."); "Execution of maintenance command failed.");
} }
g_simple_async_result_set_op_res_gboolean (res, success); g_task_return_boolean (task, success);
} }
void void
@ -260,31 +261,23 @@ pp_maintenance_command_execute_async (PpMaintenanceCommand *command,
GAsyncReadyCallback callback, GAsyncReadyCallback callback,
gpointer user_data) gpointer user_data)
{ {
GSimpleAsyncResult *res; GTask *task;
res = g_simple_async_result_new (G_OBJECT (command), callback, user_data, pp_maintenance_command_execute_async); task = g_task_new (command, cancellable, callback, user_data);
g_task_set_check_cancellable (task, TRUE);
g_task_run_in_thread (task, _pp_maintenance_command_execute_thread);
g_simple_async_result_set_check_cancellable (res, cancellable); g_object_unref (task);
g_simple_async_result_run_in_thread (res, _pp_maintenance_command_execute_thread, 0, cancellable);
g_object_unref (res);
} }
gboolean gboolean
pp_maintenance_command_execute_finish (PpMaintenanceCommand *command, pp_maintenance_command_execute_finish (PpMaintenanceCommand *command,
GAsyncResult *res, GAsyncResult *result,
GError **error) GError **error)
{ {
GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res); g_return_val_if_fail (g_task_is_valid (result, command), FALSE);
g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == pp_maintenance_command_execute_async); return g_task_propagate_boolean (G_TASK (result), error);
if (g_simple_async_result_propagate_error (simple, error))
{
return FALSE;
}
return g_simple_async_result_get_op_res_gboolean (simple);
} }
static gboolean static gboolean