changeset 1333:bdc19836c33d

Really fix up color profiles options tests. Add an indicator of the embedded color profile when recognized (a * just after sRGB or AdobeRGB compatible).
author zas_
date Fri, 27 Feb 2009 23:25:31 +0000
parents 4286f08079b6
children f97450e632a1
files src/image.c src/layout.c
diffstat 2 files changed, 10 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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 */