mirror of https://github.com/GNOME/gimp.git
app: save compatibility mode data in a parasite.
If one explicitely enabled the compat mode on an image, we should assume this mode should be reused upon following saves, even after shutdown.
This commit is contained in:
parent
55bdd4e817
commit
cb84d4bd7e
|
@ -363,6 +363,17 @@ xcf_load_image (Gimp *gimp,
|
||||||
gimp_parasite_name (parasite));
|
gimp_parasite_name (parasite));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* check for a gimp-compatibility-mode parasite */
|
||||||
|
parasite = gimp_image_parasite_find (GIMP_IMAGE (image),
|
||||||
|
"gimp-compatibility-mode");
|
||||||
|
if (parasite)
|
||||||
|
{
|
||||||
|
GimpImagePrivate *private = GIMP_IMAGE_GET_PRIVATE (image);
|
||||||
|
|
||||||
|
gimp_image_set_xcf_compat_mode (image, TRUE);
|
||||||
|
gimp_parasite_list_remove (private->parasites,
|
||||||
|
gimp_parasite_name (parasite));
|
||||||
|
}
|
||||||
xcf_progress_update (info);
|
xcf_progress_update (info);
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
|
|
|
@ -337,10 +337,11 @@ xcf_save_image_props (XcfInfo *info,
|
||||||
GimpImage *image,
|
GimpImage *image,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
GimpImagePrivate *private = GIMP_IMAGE_GET_PRIVATE (image);
|
GimpImagePrivate *private = GIMP_IMAGE_GET_PRIVATE (image);
|
||||||
GimpParasite *grid_parasite = NULL;
|
GimpParasite *grid_parasite = NULL;
|
||||||
GimpParasite *meta_parasite = NULL;
|
GimpParasite *meta_parasite = NULL;
|
||||||
GimpUnit unit = gimp_image_get_unit (image);
|
GimpParasite *compat_parasite = NULL;
|
||||||
|
GimpUnit unit = gimp_image_get_unit (image);
|
||||||
gdouble xres;
|
gdouble xres;
|
||||||
gdouble yres;
|
gdouble yres;
|
||||||
|
|
||||||
|
@ -410,6 +411,20 @@ xcf_save_image_props (XcfInfo *info,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gimp_image_get_xcf_compat_mode (image))
|
||||||
|
{
|
||||||
|
gint gimp_version;
|
||||||
|
|
||||||
|
/* Save the GIMP version we are trying to get compatible with.
|
||||||
|
* This specific information is unused as of now though. */
|
||||||
|
gimp_image_get_xcf_version (image, FALSE, &gimp_version, NULL);
|
||||||
|
compat_parasite = gimp_parasite_new ("gimp-compatibility-mode",
|
||||||
|
GIMP_PARASITE_PERSISTENT,
|
||||||
|
sizeof (gimp_version),
|
||||||
|
&gimp_version);
|
||||||
|
gimp_parasite_list_add (private->parasites, compat_parasite);
|
||||||
|
}
|
||||||
|
|
||||||
if (gimp_parasite_list_length (private->parasites) > 0)
|
if (gimp_parasite_list_length (private->parasites) > 0)
|
||||||
{
|
{
|
||||||
xcf_check_error (xcf_save_prop (info, image, PROP_PARASITES, error,
|
xcf_check_error (xcf_save_prop (info, image, PROP_PARASITES, error,
|
||||||
|
@ -430,6 +445,12 @@ xcf_save_image_props (XcfInfo *info,
|
||||||
gimp_parasite_free (meta_parasite);
|
gimp_parasite_free (meta_parasite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (compat_parasite)
|
||||||
|
{
|
||||||
|
gimp_parasite_list_remove (private->parasites,
|
||||||
|
gimp_parasite_name (compat_parasite));
|
||||||
|
gimp_parasite_free (compat_parasite);
|
||||||
|
}
|
||||||
xcf_check_error (xcf_save_prop (info, image, PROP_END, error));
|
xcf_check_error (xcf_save_prop (info, image, PROP_END, error));
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
Loading…
Reference in New Issue