static void vectors_import_response (GtkWidget *widget, gint response_id, VectorsImportDialog *dialog) { if (response_id == GTK_RESPONSE_OK) { gchar *filename; GError *error = NULL; vectors_import_merge = dialog->merge_vectors; vectors_import_scale = dialog->scale_vectors; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); if (gimp_vectors_import_file (dialog->image, filename, vectors_import_merge, vectors_import_scale, -1, NULL, &error)) { gimp_image_flush (dialog->image); } else { gimp_message (dialog->image->gimp, G_OBJECT (widget), GIMP_MESSAGE_ERROR, "%s", error->message); g_error_free (error); return; } g_free (filename); } gtk_widget_destroy (widget); }
static void vectors_import_callback (GtkWidget *dialog, GimpImage *image, GFile *file, GFile *import_folder, gboolean merge_vectors, gboolean scale_vectors, gpointer user_data) { GimpDialogConfig *config = GIMP_DIALOG_CONFIG (image->gimp->config); gchar *path = NULL; GError *error = NULL; if (import_folder) path = gimp_file_get_config_path (import_folder, NULL); g_object_set (config, "path-import-path", path, "path-import-merge", merge_vectors, "path-import-scale", scale_vectors, NULL); if (path) g_free (path); if (gimp_vectors_import_file (image, file, config->vectors_import_merge, config->vectors_import_scale, GIMP_IMAGE_ACTIVE_PARENT, -1, NULL, &error)) { gimp_image_flush (image); } else { gimp_message (image->gimp, G_OBJECT (dialog), GIMP_MESSAGE_ERROR, "%s", error->message); g_error_free (error); return; } gtk_widget_destroy (dialog); }