mirror of https://github.com/GNOME/gimp.git
libgimpconfig: add a preferred gray profile to GimpColorConfig
This commit is contained in:
parent
169f436e75
commit
5cbe6f2003
|
@ -65,6 +65,10 @@
|
||||||
_("The preferred RGB working space color profile. It will be offered " \
|
_("The preferred RGB working space color profile. It will be offered " \
|
||||||
"next to the built-in RGB profile when a color profile can be chosen.")
|
"next to the built-in RGB profile when a color profile can be chosen.")
|
||||||
|
|
||||||
|
#define GRAY_PROFILE_BLURB \
|
||||||
|
_("The preferred grayscale working space color profile. It will be offered " \
|
||||||
|
"next to the built-in grayscale profile when a color profile can be chosen.")
|
||||||
|
|
||||||
#define CMYK_PROFILE_BLURB \
|
#define CMYK_PROFILE_BLURB \
|
||||||
_("The CMYK color profile used to convert between RGB and CMYK.")
|
_("The CMYK color profile used to convert between RGB and CMYK.")
|
||||||
|
|
||||||
|
@ -106,6 +110,7 @@ enum
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_MODE,
|
PROP_MODE,
|
||||||
PROP_RGB_PROFILE,
|
PROP_RGB_PROFILE,
|
||||||
|
PROP_GRAY_PROFILE,
|
||||||
PROP_CMYK_PROFILE,
|
PROP_CMYK_PROFILE,
|
||||||
PROP_DISPLAY_PROFILE,
|
PROP_DISPLAY_PROFILE,
|
||||||
PROP_DISPLAY_PROFILE_FROM_GDK,
|
PROP_DISPLAY_PROFILE_FROM_GDK,
|
||||||
|
@ -133,6 +138,9 @@ static void gimp_color_config_get_property (GObject *object,
|
||||||
static void gimp_color_config_set_rgb_profile (GimpColorConfig *config,
|
static void gimp_color_config_set_rgb_profile (GimpColorConfig *config,
|
||||||
const gchar *filename,
|
const gchar *filename,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
static void gimp_color_config_set_gray_profile (GimpColorConfig *config,
|
||||||
|
const gchar *filename,
|
||||||
|
GError **error);
|
||||||
static void gimp_color_config_set_cmyk_profile (GimpColorConfig *config,
|
static void gimp_color_config_set_cmyk_profile (GimpColorConfig *config,
|
||||||
const gchar *filename,
|
const gchar *filename,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
@ -173,6 +181,10 @@ gimp_color_config_class_init (GimpColorConfigClass *klass)
|
||||||
"rgb-profile", RGB_PROFILE_BLURB,
|
"rgb-profile", RGB_PROFILE_BLURB,
|
||||||
GIMP_CONFIG_PATH_FILE, NULL,
|
GIMP_CONFIG_PATH_FILE, NULL,
|
||||||
GIMP_PARAM_STATIC_STRINGS);
|
GIMP_PARAM_STATIC_STRINGS);
|
||||||
|
GIMP_CONFIG_INSTALL_PROP_PATH (object_class, PROP_GRAY_PROFILE,
|
||||||
|
"gray-profile", GRAY_PROFILE_BLURB,
|
||||||
|
GIMP_CONFIG_PATH_FILE, NULL,
|
||||||
|
GIMP_PARAM_STATIC_STRINGS);
|
||||||
GIMP_CONFIG_INSTALL_PROP_PATH (object_class, PROP_CMYK_PROFILE,
|
GIMP_CONFIG_INSTALL_PROP_PATH (object_class, PROP_CMYK_PROFILE,
|
||||||
"cmyk-profile", CMYK_PROFILE_BLURB,
|
"cmyk-profile", CMYK_PROFILE_BLURB,
|
||||||
GIMP_CONFIG_PATH_FILE, NULL,
|
GIMP_CONFIG_PATH_FILE, NULL,
|
||||||
|
@ -241,6 +253,9 @@ gimp_color_config_finalize (GObject *object)
|
||||||
if (color_config->rgb_profile)
|
if (color_config->rgb_profile)
|
||||||
g_free (color_config->rgb_profile);
|
g_free (color_config->rgb_profile);
|
||||||
|
|
||||||
|
if (color_config->gray_profile)
|
||||||
|
g_free (color_config->gray_profile);
|
||||||
|
|
||||||
if (color_config->cmyk_profile)
|
if (color_config->cmyk_profile)
|
||||||
g_free (color_config->cmyk_profile);
|
g_free (color_config->cmyk_profile);
|
||||||
|
|
||||||
|
@ -275,6 +290,11 @@ gimp_color_config_set_property (GObject *object,
|
||||||
g_value_get_string (value),
|
g_value_get_string (value),
|
||||||
&error);
|
&error);
|
||||||
break;
|
break;
|
||||||
|
case PROP_GRAY_PROFILE:
|
||||||
|
gimp_color_config_set_gray_profile (color_config,
|
||||||
|
g_value_get_string (value),
|
||||||
|
&error);
|
||||||
|
break;
|
||||||
case PROP_CMYK_PROFILE:
|
case PROP_CMYK_PROFILE:
|
||||||
gimp_color_config_set_cmyk_profile (color_config,
|
gimp_color_config_set_cmyk_profile (color_config,
|
||||||
g_value_get_string (value),
|
g_value_get_string (value),
|
||||||
|
@ -344,6 +364,9 @@ gimp_color_config_get_property (GObject *object,
|
||||||
case PROP_RGB_PROFILE:
|
case PROP_RGB_PROFILE:
|
||||||
g_value_set_string (value, color_config->rgb_profile);
|
g_value_set_string (value, color_config->rgb_profile);
|
||||||
break;
|
break;
|
||||||
|
case PROP_GRAY_PROFILE:
|
||||||
|
g_value_set_string (value, color_config->gray_profile);
|
||||||
|
break;
|
||||||
case PROP_CMYK_PROFILE:
|
case PROP_CMYK_PROFILE:
|
||||||
g_value_set_string (value, color_config->cmyk_profile);
|
g_value_set_string (value, color_config->cmyk_profile);
|
||||||
break;
|
break;
|
||||||
|
@ -415,6 +438,37 @@ gimp_color_config_get_rgb_color_profile (GimpColorConfig *config,
|
||||||
return profile;
|
return profile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GimpColorProfile *
|
||||||
|
gimp_color_config_get_gray_color_profile (GimpColorConfig *config,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
GimpColorProfile *profile = NULL;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_COLOR_CONFIG (config), NULL);
|
||||||
|
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
||||||
|
|
||||||
|
if (config->gray_profile)
|
||||||
|
{
|
||||||
|
GFile *file = g_file_new_for_path (config->gray_profile);
|
||||||
|
|
||||||
|
profile = gimp_color_profile_new_from_file (file, error);
|
||||||
|
|
||||||
|
if (profile && ! gimp_color_profile_is_gray (profile))
|
||||||
|
{
|
||||||
|
g_object_unref (profile);
|
||||||
|
profile = NULL;
|
||||||
|
|
||||||
|
g_set_error (error, GIMP_CONFIG_ERROR, 0,
|
||||||
|
_("Color profile '%s' is not for GRAY color space."),
|
||||||
|
gimp_file_get_utf8_name (file));
|
||||||
|
}
|
||||||
|
|
||||||
|
g_object_unref (file);
|
||||||
|
}
|
||||||
|
|
||||||
|
return profile;
|
||||||
|
}
|
||||||
|
|
||||||
GimpColorProfile *
|
GimpColorProfile *
|
||||||
gimp_color_config_get_cmyk_color_profile (GimpColorConfig *config,
|
gimp_color_config_get_cmyk_color_profile (GimpColorConfig *config,
|
||||||
GError **error)
|
GError **error)
|
||||||
|
@ -530,6 +584,47 @@ gimp_color_config_set_rgb_profile (GimpColorConfig *config,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_color_config_set_gray_profile (GimpColorConfig *config,
|
||||||
|
const gchar *filename,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
gboolean success = TRUE;
|
||||||
|
|
||||||
|
if (filename)
|
||||||
|
{
|
||||||
|
GimpColorProfile *profile;
|
||||||
|
GFile *file = g_file_new_for_path (filename);
|
||||||
|
|
||||||
|
profile = gimp_color_profile_new_from_file (file, error);
|
||||||
|
|
||||||
|
if (profile)
|
||||||
|
{
|
||||||
|
if (! gimp_color_profile_is_gray (profile))
|
||||||
|
{
|
||||||
|
g_set_error (error, GIMP_CONFIG_ERROR, 0,
|
||||||
|
_("Color profile '%s' is not for GRAY color space."),
|
||||||
|
gimp_file_get_utf8_name (file));
|
||||||
|
success = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_object_unref (profile);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
success = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_object_unref (file);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (success)
|
||||||
|
{
|
||||||
|
g_free (config->gray_profile);
|
||||||
|
config->gray_profile = g_strdup (filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gimp_color_config_set_cmyk_profile (GimpColorConfig *config,
|
gimp_color_config_set_cmyk_profile (GimpColorConfig *config,
|
||||||
const gchar *filename,
|
const gchar *filename,
|
||||||
|
|
|
@ -58,12 +58,13 @@ struct _GimpColorConfig
|
||||||
gboolean display_use_black_point_compensation;
|
gboolean display_use_black_point_compensation;
|
||||||
gboolean simulation_use_black_point_compensation;
|
gboolean simulation_use_black_point_compensation;
|
||||||
|
|
||||||
|
gchar *gray_profile;
|
||||||
|
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
/* Padding for future expansion */
|
/* Padding for future expansion */
|
||||||
#if (GLIB_SIZEOF_VOID_P == 8)
|
#if (GLIB_SIZEOF_VOID_P == 8)
|
||||||
void (* _gimp_reserved2) (void);
|
|
||||||
#endif
|
|
||||||
void (* _gimp_reserved3) (void);
|
void (* _gimp_reserved3) (void);
|
||||||
|
#endif
|
||||||
void (* _gimp_reserved4) (void);
|
void (* _gimp_reserved4) (void);
|
||||||
void (* _gimp_reserved5) (void);
|
void (* _gimp_reserved5) (void);
|
||||||
void (* _gimp_reserved6) (void);
|
void (* _gimp_reserved6) (void);
|
||||||
|
@ -81,6 +82,8 @@ GType gimp_color_config_get_type (void) G_GNUC_CON
|
||||||
|
|
||||||
GimpColorProfile * gimp_color_config_get_rgb_color_profile (GimpColorConfig *config,
|
GimpColorProfile * gimp_color_config_get_rgb_color_profile (GimpColorConfig *config,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
GimpColorProfile * gimp_color_config_get_gray_color_profile (GimpColorConfig *config,
|
||||||
|
GError **error);
|
||||||
GimpColorProfile * gimp_color_config_get_cmyk_color_profile (GimpColorConfig *config,
|
GimpColorProfile * gimp_color_config_get_cmyk_color_profile (GimpColorConfig *config,
|
||||||
GError **error);
|
GError **error);
|
||||||
GimpColorProfile * gimp_color_config_get_display_color_profile (GimpColorConfig *config,
|
GimpColorProfile * gimp_color_config_get_display_color_profile (GimpColorConfig *config,
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
EXPORTS
|
EXPORTS
|
||||||
gimp_color_config_get_cmyk_color_profile
|
gimp_color_config_get_cmyk_color_profile
|
||||||
gimp_color_config_get_display_color_profile
|
gimp_color_config_get_display_color_profile
|
||||||
|
gimp_color_config_get_gray_color_profile
|
||||||
gimp_color_config_get_printer_color_profile
|
gimp_color_config_get_printer_color_profile
|
||||||
gimp_color_config_get_rgb_color_profile
|
gimp_color_config_get_rgb_color_profile
|
||||||
gimp_color_config_get_type
|
gimp_color_config_get_type
|
||||||
|
|
Loading…
Reference in New Issue