mirror of https://github.com/GNOME/gimp.git
plug-ins: Fix call to internal GIH export after 443947c6
After 443947c6
, the image layers were being passed as a
GList to the internal GIH export code rather than GimpDrawable
pointers.
This commit is contained in:
parent
0471439ed4
commit
1bb515eb64
|
@ -254,7 +254,7 @@ gih_export (GimpProcedure *procedure,
|
||||||
{
|
{
|
||||||
GimpPDBStatusType status = GIMP_PDB_SUCCESS;
|
GimpPDBStatusType status = GIMP_PDB_SUCCESS;
|
||||||
GimpExportReturn export = GIMP_EXPORT_IGNORE;
|
GimpExportReturn export = GIMP_EXPORT_IGNORE;
|
||||||
GList *drawables = NULL;
|
GList *layers = NULL;
|
||||||
gint n_drawables;
|
gint n_drawables;
|
||||||
GimpParasite *parasite;
|
GimpParasite *parasite;
|
||||||
GimpImage *orig_image;
|
GimpImage *orig_image;
|
||||||
|
@ -384,8 +384,8 @@ gih_export (GimpProcedure *procedure,
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
drawables = gimp_image_list_layers (image);
|
layers = gimp_image_list_layers (image);
|
||||||
n_drawables = g_list_length (drawables);
|
n_drawables = g_list_length (layers);
|
||||||
|
|
||||||
g_object_get (config,
|
g_object_get (config,
|
||||||
"spacing", &spacing,
|
"spacing", &spacing,
|
||||||
|
@ -414,17 +414,24 @@ gih_export (GimpProcedure *procedure,
|
||||||
|
|
||||||
if (status == GIMP_PDB_SUCCESS)
|
if (status == GIMP_PDB_SUCCESS)
|
||||||
{
|
{
|
||||||
GimpProcedure *procedure;
|
GimpProcedure *procedure;
|
||||||
GimpValueArray *save_retvals;
|
GimpValueArray *save_retvals;
|
||||||
GimpObjectArray *drawables_array;
|
GimpDrawable **drawables = NULL;
|
||||||
gchar *paramstring;
|
GimpObjectArray *drawables_array;
|
||||||
|
GList *iter;
|
||||||
|
gint i;
|
||||||
|
gchar *paramstring;
|
||||||
|
|
||||||
paramstring = gimp_pixpipe_params_build (&gihparams);
|
paramstring = gimp_pixpipe_params_build (&gihparams);
|
||||||
|
|
||||||
|
drawables = g_new (GimpDrawable *, n_drawables);
|
||||||
|
for (iter = layers, i = 0; iter; iter = iter->next, i++)
|
||||||
|
drawables[i] = iter->data;
|
||||||
|
|
||||||
drawables_array = gimp_object_array_new (GIMP_TYPE_DRAWABLE, (GObject **) drawables,
|
drawables_array = gimp_object_array_new (GIMP_TYPE_DRAWABLE, (GObject **) drawables,
|
||||||
n_drawables, FALSE);
|
n_drawables, FALSE);
|
||||||
procedure = gimp_pdb_lookup_procedure (gimp_get_pdb (),
|
procedure = gimp_pdb_lookup_procedure (gimp_get_pdb (),
|
||||||
"file-gih-export-internal");
|
"file-gih-export-internal");
|
||||||
save_retvals = gimp_procedure_run (procedure,
|
save_retvals = gimp_procedure_run (procedure,
|
||||||
"image", image,
|
"image", image,
|
||||||
"num-drawables", n_drawables,
|
"num-drawables", n_drawables,
|
||||||
|
@ -434,6 +441,7 @@ gih_export (GimpProcedure *procedure,
|
||||||
"name", description,
|
"name", description,
|
||||||
"params", paramstring,
|
"params", paramstring,
|
||||||
NULL);
|
NULL);
|
||||||
|
g_free (drawables);
|
||||||
gimp_object_array_free (drawables_array);
|
gimp_object_array_free (drawables_array);
|
||||||
|
|
||||||
if (GIMP_VALUES_GET_ENUM (save_retvals, 0) == GIMP_PDB_SUCCESS)
|
if (GIMP_VALUES_GET_ENUM (save_retvals, 0) == GIMP_PDB_SUCCESS)
|
||||||
|
@ -467,7 +475,7 @@ gih_export (GimpProcedure *procedure,
|
||||||
if (export == GIMP_EXPORT_EXPORT)
|
if (export == GIMP_EXPORT_EXPORT)
|
||||||
gimp_image_delete (image);
|
gimp_image_delete (image);
|
||||||
|
|
||||||
g_list_free (drawables);
|
g_list_free (layers);
|
||||||
return gimp_procedure_new_return_values (procedure, status, error);
|
return gimp_procedure_new_return_values (procedure, status, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue