static void volume_mount_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) { PanelVolumeMountData *mount_data = user_data; GError *error; char *primary; char *name; error = NULL; if (!g_volume_mount_finish (G_VOLUME (source_object), res, &error)) { if (error->code != G_IO_ERROR_FAILED_HANDLED) { name = g_volume_get_name (G_VOLUME (source_object)); primary = g_strdup_printf (_("Unable to mount %s"), name); g_free (name); panel_error_dialog (NULL, mount_data->screen, "cannot_mount_volume", TRUE, primary, error->message); g_free (primary); } g_error_free (error); } //FIXME: should we activate the root of the new mount? g_object_unref (mount_data->mount_op); g_slice_free (PanelVolumeMountData, mount_data); }
static void remount_done_cb (GObject *object, GAsyncResult *result, gpointer no) { gboolean ok; GError *error = NULL; ok = g_volume_mount_finish (G_VOLUME (object), result, &error); if (ok) { rb_debug ("volume remounted successfully"); } else { g_warning ("Unable to remount MTP device: %s", error->message); g_error_free (error); } g_object_unref (object); }
void Directory::async_result(GObject *source_object, GAsyncResult *res, gpointer p_this) { Directory* _this = static_cast<Directory*>(p_this); g_object_unref(_this->gcancellable); _this->gcancellable = 0; Async_result_type t = _this->async_result_type; _this->async_result_type = async_result_unexpected; GError* e = 0; if (t == _this->async_result_mount_volume) { GVolume* volume = reinterpret_cast<GVolume*>(source_object); g_volume_mount_finish(volume, res, &e); if (e) { if (e->code == G_IO_ERROR_CANCELLED) { qDebug() << "Operation was cancelled"; } else { emit _this->error( tr("Error %1: %2").arg(e->message) .arg(QString::fromLocal8Bit(e->message)) ); } g_error_free(e); return; } GMount* mount = g_volume_get_mount(volume); if (!mount) { qWarning("mount == null"); emit _this->error(tr("Unexpected failure while mounting a volume.")); return; } GFile* f = g_mount_get_root(mount); if (!f) { qWarning("f == null"); emit _this->error(tr("Unexpected failure while mounting a volume.")); return; } char* path = g_file_get_path(f); _this->uri = QString::fromLocal8Bit(path); g_free(path); g_object_unref(f); g_object_unref(mount); _this->refresh(); } else { qWarning("Directory::async_result: unexpected call"); qDebug() << "type: " << t; #ifdef TESTS_MODE throw std::runtime_error("Directory::async_result: unexpected call"); #endif } }
void mountVolumeAsyncCallback (GObject *source_object, GAsyncResult *res, gpointer user_data) { GVolume *volume = (GVolume*) user_data; ASBiDirElem *item = ASVolume_findGVolume_item (AppState.volumes, volume); if (item) { GError* error = NULL; ASVolume *v = (ASVolume*)item->data; Bool success = g_volume_mount_finish (v->gVolume, res, &error); LOCAL_DEBUG_OUT ("result = %p, eror = %p", res, error); clear_flags (v->flags, ASVolume_MountRequested); if (success) GVolume2ASVolume (v, volume); else show_error( "Mount on volume \"%s\" failed with message \"%s\"", v->name, error? error->message : "unknown error"); ASVolume_refreshDisplay (v); } }
static void mount_with_device_file_cb (GObject *object, GAsyncResult *res, gpointer user_data) { GVolume *volume; gboolean succeeded; GError *error = NULL; volume = G_VOLUME (object); succeeded = g_volume_mount_finish (volume, res, &error); if (!succeeded) { g_printerr (_("Error mounting %s: %s\n"), g_volume_get_identifier (volume, G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE), error->message); g_error_free (error); success = FALSE; } else { GMount *mount; GFile *root; char *mount_path; mount = g_volume_get_mount (volume); root = g_mount_get_root (mount); mount_path = g_file_get_path (root); g_print (_("Mounted %s at %s\n"), g_volume_get_identifier (volume, G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE), mount_path); g_object_unref (mount); g_object_unref (root); g_free (mount_path); } outstanding_mounts--; if (outstanding_mounts == 0) g_main_loop_quit (main_loop); }
static void mount_with_device_file_cb (GObject *object, GAsyncResult *res, gpointer user_data) { GVolume *volume; gboolean succeeded; GError *error = NULL; gchar *device_path = (gchar *)user_data; volume = G_VOLUME (object); succeeded = g_volume_mount_finish (volume, res, &error); if (!succeeded) { print_error ("%s: %s", device_path, error->message); g_error_free (error); success = FALSE; } else { GMount *mount; GFile *root; char *mount_path; mount = g_volume_get_mount (volume); root = g_mount_get_root (mount); mount_path = g_file_get_path (root); g_print (_("Mounted %s at %s\n"), device_path, mount_path); g_object_unref (mount); g_object_unref (root); g_free (mount_path); } g_free (device_path); outstanding_mounts--; if (outstanding_mounts == 0) g_main_loop_quit (main_loop); }
static void volume_mount_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) { PanelVolumeMountData *mount_data = user_data; GError *error; error = NULL; if (!g_volume_mount_finish (G_VOLUME (source_object), res, &error)) { char *primary; char *name; if (error->code != G_IO_ERROR_FAILED_HANDLED) { name = g_volume_get_name (G_VOLUME (source_object)); primary = g_strdup_printf (_("Unable to mount %s"), name); g_free (name); panel_error_dialog (NULL, mount_data->screen, "cannot_mount_volume", TRUE, primary, error->message); g_free (primary); } g_error_free (error); } else { GMount *mount; GFile *root; char *rooturi; mount = g_volume_get_mount (G_VOLUME (source_object)); root = g_mount_get_root (mount); rooturi = g_file_get_uri (root); activate_uri_on_screen (rooturi, mount_data->screen); g_object_unref (mount); g_object_unref (root); g_free (rooturi); } g_object_unref (mount_data->mount_op); g_slice_free (PanelVolumeMountData, mount_data); }
static void brasero_gio_operation_mount_finish (GObject *source, GAsyncResult *result, gpointer user_data) { BraseroGioOperation *op = user_data; op->result = g_volume_mount_finish (G_VOLUME (source), result, &op->error); if (op->error) { if (op->error->code == G_IO_ERROR_ALREADY_MOUNTED) { g_error_free (op->error); op->error = NULL; op->result = TRUE; } } brasero_gio_operation_end (op); }
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); }
static void xfdesktop_volume_icon_mount_finish(GObject *object, GAsyncResult *result, gpointer user_data) { XfdesktopVolumeIcon *icon = XFDESKTOP_VOLUME_ICON(user_data); GtkWidget *icon_view = xfdesktop_icon_peek_icon_view(XFDESKTOP_ICON(icon)); GtkWidget *toplevel = gtk_widget_get_toplevel(icon_view); GVolume *volume = G_VOLUME(object); GError *error = NULL; if(!g_volume_mount_finish(volume, result, &error)) { if(error->domain != G_IO_ERROR || error->code != G_IO_ERROR_FAILED_HANDLED) { gchar *volume_name = g_volume_get_name(volume); gchar *primary = g_markup_printf_escaped(_("Failed to mount \"%s\""), volume_name); xfce_message_dialog(toplevel ? GTK_WINDOW(toplevel) : NULL, _("Mount Failed"), GTK_STOCK_DIALOG_ERROR, primary, error->message, GTK_STOCK_CLOSE, GTK_RESPONSE_ACCEPT, NULL); g_free(primary); g_free(volume_name); } g_error_free(error); } else { GMount *mount = g_volume_get_mount(volume); GFile *file = NULL; GFileInfo *info = NULL; if(mount) { file = g_mount_get_root(mount); info = g_file_query_info(file, XFDESKTOP_FILE_INFO_NAMESPACE, G_FILE_QUERY_INFO_NONE, NULL, NULL); g_object_unref(mount); } if(file && info) { gboolean activated = FALSE; if(icon->priv->file) g_object_unref(icon->priv->file); icon->priv->file = g_object_ref(file); xfdesktop_file_icon_update_file_info(XFDESKTOP_FILE_ICON(icon), info); activated = GPOINTER_TO_UINT(g_object_get_qdata(G_OBJECT(icon), xfdesktop_volume_icon_activated_quark)); if(activated) { XfdesktopIcon *icon_p = XFDESKTOP_ICON(icon); XFDESKTOP_ICON_CLASS(xfdesktop_volume_icon_parent_class)->activated(icon_p); } g_object_set_qdata(G_OBJECT(icon), xfdesktop_volume_icon_activated_quark, NULL); } else { if(icon->priv->file) g_object_unref(icon->priv->file); icon->priv->file = NULL; xfdesktop_file_icon_update_file_info(XFDESKTOP_FILE_ICON(icon), NULL); } if(file) g_object_unref(file); if(info) g_object_unref(info); } }