diff --git a/app/widgets/gimpwidgets-utils.c b/app/widgets/gimpwidgets-utils.c index 0822799807..a38c26e349 100644 --- a/app/widgets/gimpwidgets-utils.c +++ b/app/widgets/gimpwidgets-utils.c @@ -41,6 +41,8 @@ #include "widgets-types.h" +#include "gegl/gimp-babl.h" + #include "gimpdialogfactory.h" #include "gimpdock.h" #include "gimpdockcontainer.h" @@ -1375,3 +1377,71 @@ gimp_print_event (const GdkEvent *event) return str; } + +gboolean +gimp_color_profile_store_add_defaults (GimpColorProfileStore *store, + GimpColorConfig *config, + GimpImageBaseType base_type, + GimpPrecision precision, + GError **error) +{ + GimpColorProfile *profile; + const Babl *format; + gchar *label; + + g_return_val_if_fail (GIMP_IS_COLOR_PROFILE_STORE (store), FALSE); + g_return_val_if_fail (GIMP_IS_COLOR_CONFIG (config), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + format = gimp_babl_format (base_type, precision, TRUE); + profile = gimp_babl_format_get_color_profile (format); + + if (base_type == GIMP_GRAY) + { + label = g_strdup_printf (_("Built-in grayscale (%s)"), + gimp_color_profile_get_label (profile)); + + profile = gimp_color_config_get_gray_color_profile (config, error); + } + else + { + label = g_strdup_printf (_("Built-in RGB (%s)"), + gimp_color_profile_get_label (profile)); + + profile = gimp_color_config_get_rgb_color_profile (config, error); + } + + gimp_color_profile_store_add_file (store, NULL, label); + g_free (label); + + if (profile) + { + GFile *file; + + if (base_type == GIMP_GRAY) + { + file = g_file_new_for_path (config->gray_profile); + + label = g_strdup_printf (_("Preferred grayscale (%s)"), + gimp_color_profile_get_label (profile)); + } + else + { + file = g_file_new_for_path (config->rgb_profile); + + label = g_strdup_printf (_("Preferred RGB (%s)"), + gimp_color_profile_get_label (profile)); + } + + g_object_unref (profile); + + gimp_color_profile_store_add_file (store, file, label); + + g_object_unref (file); + g_free (label); + + return TRUE; + } + + return FALSE; +} diff --git a/app/widgets/gimpwidgets-utils.h b/app/widgets/gimpwidgets-utils.h index da30e0239c..b41de73bf1 100644 --- a/app/widgets/gimpwidgets-utils.h +++ b/app/widgets/gimpwidgets-utils.h @@ -107,5 +107,12 @@ void gimp_widget_set_fully_opaque (GtkWidget *widget const gchar * gimp_print_event (const GdkEvent *event); +gboolean gimp_color_profile_store_add_defaults + (GimpColorProfileStore *store, + GimpColorConfig *config, + GimpImageBaseType base_type, + GimpPrecision precision, + GError **error); + #endif /* __APP_GIMP_WIDGETS_UTILS_H__ */