mirror of https://github.com/GNOME/gimp.git
xcf: Save/load NDE filter clipping setting
752f0fb4
did not fix saving/loading filters in .xcf files. To do this, a new function to retrieve the clip setting was added to gimpdrawablefilters.c, and then used to save the value in xcf-save.c. The existing set_clip function was used in xcf-load.c, just like in752f0fb4
.
This commit is contained in:
parent
3749b23a6c
commit
c17548f01c
|
@ -489,6 +489,14 @@ gimp_drawable_filter_get_composite_mode (GimpDrawableFilter *filter)
|
|||
return filter->composite_mode;
|
||||
}
|
||||
|
||||
gboolean
|
||||
gimp_drawable_filter_get_clip (GimpDrawableFilter *filter)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_DRAWABLE_FILTER (filter), FALSE);
|
||||
|
||||
return filter->clip;
|
||||
}
|
||||
|
||||
GimpFilterRegion
|
||||
gimp_drawable_filter_get_region (GimpDrawableFilter *filter)
|
||||
{
|
||||
|
|
|
@ -75,6 +75,7 @@ GimpLayerColorSpace
|
|||
GimpLayerCompositeMode
|
||||
gimp_drawable_filter_get_composite_mode
|
||||
(GimpDrawableFilter *filter);
|
||||
gboolean gimp_drawable_filter_get_clip (GimpDrawableFilter *filter);
|
||||
GimpFilterRegion
|
||||
gimp_drawable_filter_get_region (GimpDrawableFilter *filter);
|
||||
|
||||
|
|
|
@ -105,6 +105,7 @@ typedef struct
|
|||
GimpLayerColorSpace blend_space;
|
||||
GimpLayerColorSpace composite_space;
|
||||
GimpLayerCompositeMode composite_mode;
|
||||
gboolean clip;
|
||||
GimpFilterRegion region;
|
||||
|
||||
gboolean unsupported_operation;
|
||||
|
@ -1092,6 +1093,7 @@ xcf_load_add_effects (XcfInfo *info,
|
|||
data->blend_space,
|
||||
data->composite_space,
|
||||
data->composite_mode);
|
||||
gimp_drawable_filter_set_clip (filter, data->clip);
|
||||
gimp_drawable_filter_set_region (filter, data->region);
|
||||
|
||||
gimp_drawable_filter_apply (filter, NULL);
|
||||
|
@ -2718,6 +2720,15 @@ set_or_seek_node_property:
|
|||
}
|
||||
break;
|
||||
|
||||
case PROP_FILTER_CLIP:
|
||||
{
|
||||
gboolean clip;
|
||||
|
||||
xcf_read_int32 (info, (guint32 *) &clip, 1);
|
||||
filter->clip = clip;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
#ifdef GIMP_UNSTABLE
|
||||
g_printerr ("unexpected/unknown effect property: %d (skipping)\n",
|
||||
|
|
|
@ -71,7 +71,8 @@ typedef enum
|
|||
PROP_LOCK_VISIBILITY = 42,
|
||||
PROP_SELECTED_PATH = 43,
|
||||
PROP_FILTER_REGION = 44,
|
||||
PROP_FILTER_ARGUMENT = 45
|
||||
PROP_FILTER_ARGUMENT = 45,
|
||||
PROP_FILTER_CLIP = 46
|
||||
} PropType;
|
||||
|
||||
typedef enum
|
||||
|
|
|
@ -852,6 +852,8 @@ xcf_save_effect_props (XcfInfo *info,
|
|||
gimp_drawable_filter_get_composite_space (GIMP_DRAWABLE_FILTER (filter))), ;);
|
||||
xcf_check_error (xcf_save_prop (info, image, PROP_COMPOSITE_MODE, error,
|
||||
gimp_drawable_filter_get_composite_mode (GIMP_DRAWABLE_FILTER (filter))), ;);
|
||||
xcf_check_error (xcf_save_prop (info, image, PROP_FILTER_CLIP, error,
|
||||
gimp_drawable_filter_get_clip (GIMP_DRAWABLE_FILTER (filter))), ;);
|
||||
xcf_check_error (xcf_save_prop (info, image, PROP_FILTER_REGION, error,
|
||||
gimp_drawable_filter_get_region (GIMP_DRAWABLE_FILTER (filter))), ;);
|
||||
|
||||
|
@ -1897,6 +1899,20 @@ xcf_save_prop (XcfInfo *info,
|
|||
|
||||
xcf_check_error (xcf_seek_pos (info, base + size, error), va_end (args));
|
||||
}
|
||||
break;
|
||||
|
||||
case PROP_FILTER_CLIP:
|
||||
{
|
||||
guint32 visible = va_arg (args, guint32);
|
||||
|
||||
size = 4;
|
||||
|
||||
xcf_write_prop_type_check_error (info, prop_type, va_end (args));
|
||||
xcf_write_int32_check_error (info, &size, 1, va_end (args));
|
||||
|
||||
xcf_write_int32_check_error (info, &visible, 1, va_end (args));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
va_end (args);
|
||||
|
|
Loading…
Reference in New Issue