# HG changeset patch # User zas_ # Date 1235777131 0 # Node ID bdc19836c33d22ea1e622624def3d04ff9132040 # Parent 4286f08079b61a59e613cb2aabd5fa1dcf23f832 Really fix up color profiles options tests. Add an indicator of the embedded color profile when recognized (a * just after sRGB or AdobeRGB compatible). diff -r 4286f08079b6 -r bdc19836c33d src/image.c --- a/src/image.c Fri Feb 27 22:28:17 2009 +0000 +++ b/src/image.c Fri Feb 27 23:25:31 2009 +0000 @@ -207,7 +207,7 @@ gint n; n = imd->color_profile_input - COLOR_PROFILE_FILE; - if (!options->color_profile.input_file[n]) return FALSE; + if (!options->color_profile.input_file[n] || !options->color_profile.input_file[n][0]) return FALSE; input_type = COLOR_PROFILE_FILE; input_file = options->color_profile.input_file[n]; @@ -224,7 +224,8 @@ } if (imd->color_profile_screen == 1 && - options->color_profile.screen_file) + options->color_profile.screen_file && + options->color_profile.screen_file[0]) { screen_type = COLOR_PROFILE_FILE; screen_file = options->color_profile.screen_file; diff -r 4286f08079b6 -r bdc19836c33d src/layout.c --- a/src/layout.c Fri Feb 27 22:28:17 2009 +0000 +++ b/src/layout.c Fri Feb 27 23:25:31 2009 +0000 @@ -402,7 +402,7 @@ static gchar *layout_color_name_parse(const gchar *name) { - if (!name) return g_strdup(_("Empty")); + if (!name || !*name) return g_strdup(_("Empty")); return g_strdelimit(g_strdup(name), "_", '-'); } @@ -427,11 +427,13 @@ gint screen = 0; gint use_image = 0; gint from_image = 0; + gint image_profile; gint i; if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return; - from_image = use_image && (layout_image_color_profile_get_from_image(lw) != COLOR_PROFILE_NONE); + image_profile = layout_image_color_profile_get_from_image(lw); + from_image = use_image && (image_profile != COLOR_PROFILE_NONE); menu = popup_menu_short_lived(); active = layout_image_color_profile_get_use(lw); @@ -454,7 +456,7 @@ case COLOR_PROFILE_ADOBERGB: label = _("AdobeRGB compatible"); break; default: label = "fixme"; break; } - buf = g_strdup_printf(_("Input _%d: %s"), i, label); + buf = g_strdup_printf(_("Input _%d: %s%s"), i, label, (i == image_profile) ? " *" : ""); item = menu_item_add_radio(menu, (i == COLOR_PROFILE_SRGB) ? NULL : item, buf, (input == i), G_CALLBACK(layout_color_menu_input_cb), lw); @@ -480,7 +482,7 @@ G_CALLBACK(layout_color_menu_input_cb), lw); g_free(buf); g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(i + COLOR_PROFILE_FILE)); - gtk_widget_set_sensitive(item, active && !from_image && options->color_profile.input_file[i][0]); + gtk_widget_set_sensitive(item, active && !from_image && options->color_profile.input_file[i] && options->color_profile.input_file[i][0]); } menu_item_add_divider(menu); @@ -496,7 +498,7 @@ _("_Screen profile"), (screen == 1), G_CALLBACK(layout_color_menu_screen_cb), lw); g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(1)); - gtk_widget_set_sensitive(item, active && options->color_profile.screen_file[0]); + gtk_widget_set_sensitive(item, active && options->color_profile.screen_file && options->color_profile.screen_file[0]); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, GDK_CURRENT_TIME); #endif /* HAVE_LCMS */