static void eject_done_cb (GObject *object, GAsyncResult *res, gpointer user_data) { gboolean succeeded; GError *error = NULL; GFile *file = G_FILE (user_data); succeeded = g_mount_eject_with_operation_finish (G_MOUNT (object), res, &error); g_object_unref (G_MOUNT (object)); if (!succeeded) { print_file_error (file, error->message); success = FALSE; g_error_free (error); } g_object_unref (file); outstanding_mounts--; if (outstanding_mounts == 0) g_main_loop_quit (main_loop); }
static void eject_cb (GObject *object, GAsyncResult *result, gpointer nothing) { GError *error = NULL; if (G_IS_VOLUME (object)) { GVolume *volume = G_VOLUME (object); rb_debug ("finishing ejection of volume"); g_volume_eject_with_operation_finish (volume, result, &error); } else if (G_IS_MOUNT (object)) { GMount *mount = G_MOUNT (object); rb_debug ("finishing ejection of mount"); g_mount_eject_with_operation_finish (mount, result, &error); } if (error != NULL) { if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_FAILED_HANDLED)) { rb_error_dialog (NULL, _("Unable to eject"), "%s", error->message); } else { rb_debug ("eject failure has already been handled"); } g_error_free (error); } }
static void unmount_mount_callback (GObject *source_object, GAsyncResult *res, gpointer user_data) { GError *error; char *primary; gboolean unmounted; gboolean should_eject; GtkWidget *dialog; should_eject = user_data != NULL; error = NULL; if (should_eject) { unmounted = g_mount_eject_with_operation_finish (G_MOUNT (source_object), res, &error); } else { unmounted = g_mount_unmount_with_operation_finish (G_MOUNT (source_object), res, &error); } if (! unmounted) { if (error->code != G_IO_ERROR_FAILED_HANDLED) { if (should_eject) { primary = g_strdup_printf (_("Unable to eject %p"), source_object); } else { primary = g_strdup_printf (_("Unable to unmount %p"), source_object); } dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s", primary); gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (dialog), "%s", error->message); gtk_widget_show (GTK_WIDGET (dialog)); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_free (primary); } } if (error != NULL) { g_error_free (error); } }
static void _mount_eject_cb (GMount *mount, GAsyncResult *result, gpointer data) { GError *error = NULL; g_return_if_fail (MPD_IS_STORAGE_DEVICE_TILE (data)); g_mount_eject_with_operation_finish (mount, result, &error); if (error) { /* TODO inform user */ mx_widget_set_disabled (MX_WIDGET (data), FALSE); g_warning ("%s : %s", G_STRLOC, error->message); g_clear_error (&error); } }
static void eject_done_cb (GObject *object, GAsyncResult *res, gpointer user_data) { gboolean succeeded; GError *error = NULL; succeeded = g_mount_eject_with_operation_finish (G_MOUNT (object), res, &error); g_object_unref (G_MOUNT (object)); if (!succeeded) g_printerr (_("Error ejecting mount: %s\n"), error->message); outstanding_mounts--; if (outstanding_mounts == 0) g_main_loop_quit (main_loop); }
// -------------------------------------------------------------------------------- // void Unmounted_Device( GObject * object, GAsyncResult * result, guGIO_Mount * mnt ) { GError * error = NULL; if( G_IS_MOUNT( object ) ) { GMount * mount = ( GMount * ) object; g_mount_eject_with_operation_finish( mount, result, &error); } if( error ) { if( !g_error_matches( error, G_IO_ERROR, G_IO_ERROR_FAILED_HANDLED ) ) { guLogError( wxT( "Unable to eject %s" ), error->message ); } else { guLogMessage( wxT( "Eject was already done" ) ); } g_error_free (error); } }
static void on_mount_action_finished(GObject* src, GAsyncResult *res, gpointer user_data) { struct MountData* data = user_data; switch(data->action) { case MOUNT_VOLUME: data->ret = g_volume_mount_finish(G_VOLUME(src), res, &data->err); break; case MOUNT_GFILE: data->ret = g_file_mount_enclosing_volume_finish(G_FILE(src), res, &data->err); break; case UMOUNT_MOUNT: data->ret = g_mount_unmount_with_operation_finish(G_MOUNT(src), res, &data->err); break; case EJECT_MOUNT: data->ret = g_mount_eject_with_operation_finish(G_MOUNT(src), res, &data->err); break; case EJECT_VOLUME: data->ret = g_volume_eject_with_operation_finish(G_VOLUME(src), res, &data->err); break; } g_main_loop_quit(data->loop); }