Issue #11988: GEGL param specs are not serialized anymore.
This is a regression brought with commits9b5463b5c5
andf7aaba9fc9
. Technically the bug already existed, but it was brought to light after the reordering of our param bit flags, because GEGL_PARAM_PAD_INPUT (which is set on all op properties) and GIMP_PARAM_DONT_SERIALIZE are now the same value. It used to be same as GIMP_CONFIG_PARAM_AGGREGATE, which, by chance only, didn't have unfortunate consequence on serialization, yet that was also a bug. The real fix is that we should not propagate GEGL bit flags in our operation config types.
This commit is contained in:
@ -151,6 +151,10 @@ gimp_operation_config_get_type (Gimp *gimp,
|
||||
strcmp (pspec->name, "input") &&
|
||||
strcmp (pspec->name, "output"))
|
||||
{
|
||||
GParamFlags flags;
|
||||
|
||||
flags = pspec->flags & ~(GEGL_PARAM_PAD_INPUT | GEGL_PARAM_PAD_OUTPUT);
|
||||
|
||||
if (GEGL_IS_PARAM_SPEC_COLOR (pspec))
|
||||
{
|
||||
/* As special exception, let's transform GeglParamColor
|
||||
@ -165,7 +169,7 @@ gimp_operation_config_get_type (Gimp *gimp,
|
||||
g_param_spec_get_blurb (pspec),
|
||||
TRUE,
|
||||
gegl_param_spec_color_get_default (pspec),
|
||||
pspec->flags);
|
||||
flags);
|
||||
prop_keys = gegl_operation_list_property_keys (operation, pspec->name, &n_keys);
|
||||
for (gint k = 0; k < n_keys; k++)
|
||||
{
|
||||
@ -179,9 +183,12 @@ gimp_operation_config_get_type (Gimp *gimp,
|
||||
}
|
||||
else
|
||||
{
|
||||
pspecs[j] = pspec;
|
||||
pspecs[j] = gimp_config_param_spec_duplicate (pspec);
|
||||
if (pspecs[j])
|
||||
pspecs[j]->flags = flags;
|
||||
}
|
||||
|
||||
if (pspecs[j])
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user