static void save_file_create_ready_cb (GObject *source, GAsyncResult *res, gpointer user_data) { ScreenshotApplication *self = user_data; GFileOutputStream *os; GError *error = NULL; gchar *basename = g_file_get_basename (G_FILE (source)); gchar *extension = g_strrstr (basename, "."); gchar *format = NULL; GSList *formats = NULL; if (extension == NULL) extension = "png"; else extension++; format = extension; formats = gdk_pixbuf_get_formats(); g_slist_foreach (formats, find_out_writable_format_by_extension, (gpointer) &format); g_slist_free (formats); g_free (basename); if (self->priv->should_overwrite) os = g_file_replace_finish (G_FILE (source), res, &error); else os = g_file_create_finish (G_FILE (source), res, &error); if (error != NULL) { save_pixbuf_handle_error (self, error); g_error_free (error); return; } if (is_png (format)) { if (has_profile (self)) save_with_description_and_profile (self, os, format); else save_with_description (self, os, format); } else { save_with_no_profile_or_description (self, os, format); } g_object_unref (os); g_free (format); }
static void photos_glib_file_create_create (GObject *source_object, GAsyncResult *res, gpointer user_data) { GCancellable *cancellable; GFile *file = G_FILE (source_object); g_autoptr (GFileOutputStream) stream = NULL; g_autoptr (GTask) task = G_TASK (user_data); PhotosGLibFileCreateData *data; cancellable = g_task_get_cancellable (task); data = (PhotosGLibFileCreateData *) g_task_get_task_data (task); { g_autoptr (GError) error = NULL; stream = g_file_create_finish (file, res, &error); if (error != NULL) { g_autoptr (GFile) unique_file = NULL; g_autofree gchar *filename = NULL; if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_EXISTS)) { g_task_return_error (task, g_steal_pointer (&error)); goto out; } if (data->count == G_MAXUINT) { g_task_return_new_error (task, PHOTOS_ERROR, 0, "Exceeded number of copies of a file"); goto out; } data->count++; filename = photos_glib_file_create_data_get_filename (data); unique_file = g_file_get_child (data->dir, filename); g_file_create_async (unique_file, data->flags, data->io_priority, cancellable, photos_glib_file_create_create, g_object_ref (task)); goto out; } } g_task_return_pointer (task, g_object_ref (stream), g_object_unref); out: return; }
static void gb_project_tree_actions__create_cb (GObject *object, GAsyncResult *result, gpointer user_data) { GFile *file = (GFile *)object; g_autoptr(IdeProjectFile) project_file = NULL; g_autoptr(GbTreeNode) node = user_data; g_autoptr(GError) error = NULL; GbProjectTree *self; GbWorkbench *workbench; IdeContext *context; IdeProject *project; GbTreeNode *created; g_assert (G_IS_FILE (file)); g_assert (GB_IS_TREE_NODE (node)); if (!g_file_create_finish (file, result, &error)) { /* todo: show error messsage */ return; } self = GB_PROJECT_TREE (gb_tree_node_get_tree (node)); if (self == NULL) return; workbench = gb_widget_get_workbench (GTK_WIDGET (self)); if (workbench == NULL) return; context = gb_workbench_get_context (workbench); if (context == NULL) return; project = ide_context_get_project (context); project_file = create_file (context, file, G_FILE_TYPE_REGULAR); ide_project_add_file (project, project_file); gb_workbench_open (workbench, file); gb_tree_node_rebuild (node); gb_tree_node_expand (node, FALSE); created = gb_tree_find_item (GB_TREE (self), G_OBJECT (project_file)); if (created != NULL) gb_tree_node_select (created); }
static void on_create_file_ready (GObject *source, GAsyncResult *res, gpointer user_data) { GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (user_data); GFileOutputStream *os; GtkWidget *dialog; os = g_file_create_finish (self->pv->output_file, res, &self->pv->error); /* Try again this time replacing the file */ if (g_error_matches (self->pv->error, G_IO_ERROR, G_IO_ERROR_EXISTS)) { g_clear_error (&self->pv->error); dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW (self->pv->chooser_dialog), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, "<b>%s</b>\n\n%s", _("A file already exists with this name."), _("Do you want to replace it with a new file?")); gtk_dialog_add_buttons (GTK_DIALOG (dialog), _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Replace"), GTK_RESPONSE_ACCEPT, NULL); g_signal_connect (dialog, "response", G_CALLBACK (on_replace_dialog_response), self); if (self->pv->cancellable) g_cancellable_connect (self->pv->cancellable, G_CALLBACK (on_cancel_replace_dialog), g_object_ref (dialog), g_object_unref); gtk_widget_show (dialog); return; } if (self->pv->error) { complete_async_result (self); return; } write_to_outputstream (self, G_OUTPUT_STREAM (os)); }
static void save_file_create_ready_cb (GObject *source, GAsyncResult *res, gpointer user_data) { GFileOutputStream *os; GError *error = NULL; ScreenshotDialog *dialog = user_data; os = g_file_create_finish (G_FILE (source), res, &error); if (error != NULL) { save_file_failed_error (dialog, error); g_error_free (error); return; } if (icc_profile_base64 != NULL) gdk_pixbuf_save_to_stream_async (screenshot, G_OUTPUT_STREAM (os), "png", NULL, save_pixbuf_ready_cb, dialog, "icc-profile", icc_profile_base64, "tEXt::Software", "gnome-screenshot", NULL); else gdk_pixbuf_save_to_stream_async (screenshot, G_OUTPUT_STREAM (os), "png", NULL, save_pixbuf_ready_cb, dialog, "tEXt::Software", "gnome-screenshot", NULL); g_object_unref (os); }
static gboolean rygel_media_container_real_add_item_co (RygelMediaContainerAddItemData* data) { switch (data->_state_) { case 0: goto _state_0; case 27: goto _state_27; case 28: goto _state_28; default: g_assert_not_reached (); } _state_0: { data->_state_ = 27; rygel_media_object_get_writable ((RygelMediaObject*) data->self, data->cancellable, rygel_media_container_add_item_ready, data); return FALSE; _state_27: data->dir = rygel_media_object_get_writable_finish ((RygelMediaObject*) data->self, data->_res_, &data->_inner_error_); if (data->_inner_error_ != NULL) { g_simple_async_result_set_from_error (data->_async_result, data->_inner_error_); g_error_free (data->_inner_error_); { if (data->_state_ == 0) { g_simple_async_result_complete_in_idle (data->_async_result); } else { g_simple_async_result_complete (data->_async_result); } g_object_unref (data->_async_result); return FALSE; } } #line 178 "rygel-media-container.vala" if (data->dir == NULL) { #line 735 "rygel-media-container.c" data->_inner_error_ = g_error_new (RYGEL_CONTENT_DIRECTORY_ERROR, RYGEL_CONTENT_DIRECTORY_ERROR_RESTRICTED_PARENT, _ ("Object creation in %s not allowed"), ((RygelMediaObject*) data->self)->id); { g_simple_async_result_set_from_error (data->_async_result, data->_inner_error_); g_error_free (data->_inner_error_); _g_object_unref0 (data->dir); { if (data->_state_ == 0) { g_simple_async_result_complete_in_idle (data->_async_result); } else { g_simple_async_result_complete (data->_async_result); } g_object_unref (data->_async_result); return FALSE; } } } data->file = g_file_get_child_for_display_name (data->dir, rygel_media_object_get_title ((RygelMediaObject*) data->item), &data->_inner_error_); if (data->_inner_error_ != NULL) { g_simple_async_result_set_from_error (data->_async_result, data->_inner_error_); g_error_free (data->_inner_error_); _g_object_unref0 (data->dir); { if (data->_state_ == 0) { g_simple_async_result_complete_in_idle (data->_async_result); } else { g_simple_async_result_complete (data->_async_result); } g_object_unref (data->_async_result); return FALSE; } } data->_state_ = 28; g_file_create_async (data->file, G_FILE_CREATE_NONE, G_PRIORITY_DEFAULT, data->cancellable, rygel_media_container_add_item_ready, data); return FALSE; _state_28: #line 185 "rygel-media-container.vala" data->_tmp0_ = g_file_create_finish (data->file, data->_res_, &data->_inner_error_); #line 773 "rygel-media-container.c" _g_object_unref0 (data->_tmp0_); if (data->_inner_error_ != NULL) { g_simple_async_result_set_from_error (data->_async_result, data->_inner_error_); g_error_free (data->_inner_error_); _g_object_unref0 (data->dir); _g_object_unref0 (data->file); { if (data->_state_ == 0) { g_simple_async_result_complete_in_idle (data->_async_result); } else { g_simple_async_result_complete (data->_async_result); } g_object_unref (data->_async_result); return FALSE; } } data->uri = g_file_get_uri (data->file); #line 189 "rygel-media-container.vala" ((RygelMediaObject*) data->item)->id = (data->_tmp1_ = g_strdup (data->uri), _g_free0 (((RygelMediaObject*) data->item)->id), data->_tmp1_); #line 190 "rygel-media-container.vala" gee_abstract_collection_add ((GeeAbstractCollection*) ((RygelMediaObject*) data->item)->uris, data->uri); #line 795 "rygel-media-container.c" _g_object_unref0 (data->dir); _g_object_unref0 (data->file); _g_free0 (data->uri); } { if (data->_state_ == 0) { g_simple_async_result_complete_in_idle (data->_async_result); } else { g_simple_async_result_complete (data->_async_result); } g_object_unref (data->_async_result); return FALSE; } }