mirror of https://github.com/GNOME/gimp.git
plug-ins, libgimp: GimpRunThumbnailFunc now uses a GimpProcedureConfig rather…
… than a GimpValueArray. Similar to other GimpProcedure, move to using a config object. A difference is that thumbnail procedures are always run non-interactively. Also fixing WMF load thumbnail procedure: the dimension computation was wrong when the image was wider than tall.
This commit is contained in:
parent
601437addd
commit
ed98b990c5
|
@ -141,8 +141,10 @@ gimp_thumbnail_procedure_run (GimpProcedure *procedure,
|
|||
GimpThumbnailProcedure *thumbnail_proc = GIMP_THUMBNAIL_PROCEDURE (procedure);
|
||||
GimpValueArray *remaining;
|
||||
GimpValueArray *return_values;
|
||||
GimpProcedureConfig *config;
|
||||
GFile *file;
|
||||
gint size;
|
||||
GimpPDBStatusType status = GIMP_PDB_EXECUTION_ERROR;
|
||||
gint i;
|
||||
|
||||
file = GIMP_VALUES_GET_FILE (args, 0);
|
||||
|
@ -157,13 +159,30 @@ gimp_thumbnail_procedure_run (GimpProcedure *procedure,
|
|||
gimp_value_array_append (remaining, value);
|
||||
}
|
||||
|
||||
config = gimp_procedure_create_config (procedure);
|
||||
gimp_procedure_config_begin_run (config, NULL, GIMP_RUN_NONINTERACTIVE, remaining);
|
||||
gimp_value_array_unref (remaining);
|
||||
|
||||
return_values = thumbnail_proc->priv->run_func (procedure,
|
||||
file,
|
||||
size,
|
||||
remaining,
|
||||
config,
|
||||
thumbnail_proc->priv->run_data);
|
||||
|
||||
gimp_value_array_unref (remaining);
|
||||
if (return_values != NULL &&
|
||||
gimp_value_array_length (return_values) > 0 &&
|
||||
G_VALUE_HOLDS_ENUM (gimp_value_array_index (return_values, 0)))
|
||||
status = GIMP_VALUES_GET_ENUM (return_values, 0);
|
||||
|
||||
gimp_procedure_config_end_run (config, status);
|
||||
/* This is debug printing to help plug-in developers figure out best
|
||||
* practices.
|
||||
*/
|
||||
if (G_OBJECT (config)->ref_count > 1)
|
||||
g_printerr ("%s: ERROR: the GimpThumbnailProcedure config object was refed "
|
||||
"by plug-in, it MUST NOT do that!\n", G_STRFUNC);
|
||||
|
||||
g_object_unref (config);
|
||||
|
||||
return return_values;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ G_BEGIN_DECLS
|
|||
* @procedure: the #GimpProcedure that runs.
|
||||
* @file: the #GFile to load the thumbnail from.
|
||||
* @size: the requested thumbnail size.
|
||||
* @args: the @procedure's remaining arguments.
|
||||
* @config: the @procedure's remaining arguments.
|
||||
* @run_data: (closure): the run_data given in gimp_thumbnail_procedure_new().
|
||||
*
|
||||
* The thumbnail function is run during the lifetime of the GIMP session,
|
||||
|
@ -47,7 +47,7 @@ G_BEGIN_DECLS
|
|||
typedef GimpValueArray * (* GimpRunThumbnailFunc) (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ static GimpValueArray * gif_load (GimpProcedure *procedure,
|
|||
static GimpValueArray * gif_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
|
||||
static GimpImage * load_image (GFile *file,
|
||||
|
@ -271,11 +271,11 @@ gif_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
gif_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
gif_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
GimpImage *image;
|
||||
|
|
|
@ -231,7 +231,7 @@ static GimpValueArray * pdf_load (GimpProcedure *procedure,
|
|||
static GimpValueArray * pdf_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
|
||||
static GimpImage * load_image (PopplerDocument *doc,
|
||||
|
@ -575,11 +575,11 @@ pdf_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
pdf_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
pdf_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
gdouble width = 0;
|
||||
|
|
|
@ -141,7 +141,7 @@ static GimpValueArray * ps_load (GimpProcedure *procedure,
|
|||
static GimpValueArray * ps_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
static GimpValueArray * ps_save (GimpProcedure *procedure,
|
||||
GimpRunMode run_mode,
|
||||
|
@ -618,23 +618,18 @@ ps_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
ps_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
ps_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpProcedureConfig *config;
|
||||
GimpValueArray *return_vals;
|
||||
GimpImage *image = NULL;
|
||||
GError *error = NULL;
|
||||
GimpValueArray *return_vals;
|
||||
GimpImage *image = NULL;
|
||||
GError *error = NULL;
|
||||
|
||||
gegl_init (NULL, NULL);
|
||||
|
||||
config = gimp_procedure_create_config (procedure);
|
||||
gimp_procedure_config_begin_run (config, image,
|
||||
GIMP_RUN_NONINTERACTIVE, args);
|
||||
|
||||
/* We should look for an embedded preview but for now we
|
||||
* just load the document at a small resolution and the
|
||||
* first page only.
|
||||
|
@ -643,9 +638,6 @@ ps_load_thumb (GimpProcedure *procedure,
|
|||
|
||||
image = load_image (file, NULL, &error);
|
||||
|
||||
gimp_procedure_config_end_run (config, GIMP_PDB_SUCCESS);
|
||||
g_object_unref (config);
|
||||
|
||||
if (! image)
|
||||
return gimp_procedure_new_return_values (procedure,
|
||||
GIMP_PDB_EXECUTION_ERROR,
|
||||
|
|
|
@ -85,7 +85,7 @@ static GimpValueArray * svg_load (GimpProcedure *procedure,
|
|||
static GimpValueArray * svg_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
|
||||
static GimpImage * load_image (GFile *file,
|
||||
|
@ -294,11 +294,11 @@ svg_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
svg_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
svg_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
gint width = 0;
|
||||
|
|
|
@ -83,7 +83,7 @@ static GimpValueArray * wmf_load (GimpProcedure *procedure,
|
|||
static GimpValueArray * wmf_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
|
||||
static GimpImage * load_image (GFile *file,
|
||||
|
@ -258,16 +258,16 @@ wmf_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
wmf_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
wmf_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
GimpImage *image;
|
||||
gint width;
|
||||
gint height;
|
||||
gint width = 0;
|
||||
gint height = 0;
|
||||
GError *error = NULL;
|
||||
WmfLoadVals load_vals = { WMF_DEFAULT_RESOLUTION, 0, 0, };
|
||||
|
||||
|
@ -282,8 +282,8 @@ wmf_load_thumb (GimpProcedure *procedure,
|
|||
|
||||
if ((gdouble) load_vals.width > (gdouble) load_vals.height)
|
||||
{
|
||||
load_vals.height *= (size / (gdouble) load_vals.width);
|
||||
load_vals.width = size;
|
||||
load_vals.height *= size / (gdouble) load_vals.width;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -167,7 +167,7 @@ static GimpValueArray * xmc_load (GimpProcedure *pro
|
|||
static GimpValueArray * xmc_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
static GimpValueArray * xmc_save (GimpProcedure *procedure,
|
||||
GimpRunMode run_mode,
|
||||
|
@ -471,11 +471,11 @@ xmc_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
xmc_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
xmc_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
gint width;
|
||||
|
|
|
@ -74,7 +74,7 @@ static GimpValueArray * icns_load (GimpProcedure *procedure,
|
|||
static GimpValueArray * icns_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
static GimpValueArray * icns_save (GimpProcedure *procedure,
|
||||
GimpRunMode run_mode,
|
||||
|
@ -228,11 +228,11 @@ icns_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
icns_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
icns_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
gint width;
|
||||
|
|
|
@ -86,12 +86,12 @@ static GimpValueArray * ani_load (GimpProcedure *procedure,
|
|||
static GimpValueArray * ico_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
static GimpValueArray * ani_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
static GimpValueArray * ico_save (GimpProcedure *procedure,
|
||||
GimpRunMode run_mode,
|
||||
|
@ -493,11 +493,11 @@ ani_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
ico_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
ico_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
gint width;
|
||||
|
@ -535,7 +535,7 @@ static GimpValueArray *
|
|||
ani_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
|
|
|
@ -68,7 +68,7 @@ static GimpValueArray * jpeg_load (GimpProcedure *procedure,
|
|||
static GimpValueArray * jpeg_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
static GimpValueArray * jpeg_save (GimpProcedure *procedure,
|
||||
GimpRunMode run_mode,
|
||||
|
@ -371,11 +371,11 @@ jpeg_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
jpeg_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
jpeg_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
GimpImage *image;
|
||||
|
|
|
@ -66,7 +66,7 @@ static GimpValueArray * psd_load (GimpProcedure *procedure,
|
|||
static GimpValueArray * psd_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
static GimpValueArray * psd_save (GimpProcedure *procedure,
|
||||
GimpRunMode run_mode,
|
||||
|
@ -386,11 +386,11 @@ psd_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
psd_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
psd_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
gint width = 0;
|
||||
|
|
|
@ -68,7 +68,7 @@ static GimpValueArray * darktable_load (GimpProcedure *proce
|
|||
static GimpValueArray * darktable_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
|
||||
static GimpImage * load_image (GFile *file,
|
||||
|
@ -333,11 +333,11 @@ darktable_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
darktable_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
darktable_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
gint width;
|
||||
|
|
|
@ -69,7 +69,7 @@ static GimpValueArray * rawtherapee_load (GimpProcedure *pro
|
|||
static GimpValueArray * rawtherapee_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
|
||||
static GimpImage * load_image (GFile *file,
|
||||
|
@ -284,11 +284,11 @@ rawtherapee_load (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
rawtherapee_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
const GimpValueArray *args,
|
||||
gpointer run_data)
|
||||
rawtherapee_load_thumb (GimpProcedure *procedure,
|
||||
GFile *file,
|
||||
gint size,
|
||||
GimpProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
GimpValueArray *return_vals;
|
||||
GimpImage *image;
|
||||
|
|
Loading…
Reference in New Issue