mirror of https://github.com/GNOME/gimp.git
Issue #11319: support GeglColor as generic GParamObject of type GeglColor.
In some binding (e.g. Python), we have not found how to create GeglParamColor specs for PDB procedures, so we use GParamObject specs with `GeglColor` object_type. Have our code handle both variants. Fixes: > GIMP-WARNING: _gimp_gp_param_def_to_param_spec: GParamSpec type unsupported 'GeglParamColor' Of course such generic spec won't have any future option which we may add to a dedicated param spec (and despite adding code to handle a default value, adding a default color still doesn't work according to tests).
This commit is contained in:
parent
642f12639a
commit
634fe62f74
|
@ -396,7 +396,8 @@ _gimp_param_spec_to_gp_param_def (GParamSpec *pspec,
|
|||
|
||||
param_def->meta.m_string.default_val = gsspec->default_value;
|
||||
}
|
||||
else if (GEGL_IS_PARAM_SPEC_COLOR (pspec))
|
||||
else if (GEGL_IS_PARAM_SPEC_COLOR (pspec) ||
|
||||
(pspec_type == G_TYPE_PARAM_OBJECT && value_type == GEGL_TYPE_COLOR))
|
||||
{
|
||||
GPParamColor *default_val = NULL;
|
||||
GeglColor *default_color;
|
||||
|
@ -405,7 +406,17 @@ _gimp_param_spec_to_gp_param_def (GParamSpec *pspec,
|
|||
/* TODO: no no-alpha support for the time being. */
|
||||
/*param_def->meta.m_gegl_color.has_alpha = TRUE;*/
|
||||
|
||||
default_color = gegl_param_spec_color_get_default (pspec);
|
||||
if (GEGL_IS_PARAM_SPEC_COLOR (pspec))
|
||||
{
|
||||
default_color = gegl_param_spec_color_get_default (pspec);
|
||||
}
|
||||
else
|
||||
{
|
||||
const GValue *value = g_param_spec_get_default_value (pspec);
|
||||
|
||||
default_color = g_value_get_object (value);
|
||||
param_def->type_name = "GeglParamColor";
|
||||
}
|
||||
if (default_color != NULL)
|
||||
{
|
||||
const Babl *format;
|
||||
|
@ -475,7 +486,8 @@ _gimp_param_spec_to_gp_param_def (GParamSpec *pspec,
|
|||
(gchar *) g_type_name (GIMP_PARAM_SPEC_OBJECT_ARRAY (pspec)->object_type);
|
||||
}
|
||||
else if (pspec_type == G_TYPE_PARAM_OBJECT &&
|
||||
value_type != G_TYPE_FILE)
|
||||
value_type != G_TYPE_FILE &&
|
||||
value_type != GEGL_TYPE_COLOR)
|
||||
{
|
||||
const gchar *type_name = NULL;
|
||||
|
||||
|
@ -541,10 +553,6 @@ _gimp_param_spec_to_gp_param_def (GParamSpec *pspec,
|
|||
{
|
||||
type_name = "GimpParamPattern";
|
||||
}
|
||||
else if (value_type == GEGL_TYPE_COLOR)
|
||||
{
|
||||
type_name = "GeglParamColor";
|
||||
}
|
||||
|
||||
if (type_name)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue