Mercurial > geeqie.yaz
comparison src/bar_exif.c @ 645:b50deb0f9968
Rename bar_exif_validate_text() to utf8_validate_or_convert() and move it to main.[ch].
author | zas_ |
---|---|
date | Mon, 12 May 2008 23:21:35 +0000 |
parents | d062f6b5711a |
children | 2c9184126cf9 |
comparison
equal
deleted
inserted
replaced
644:d062f6b5711a | 645:b50deb0f9968 |
---|---|
139 EXIF_ADVCOL_ELEMENTS, | 139 EXIF_ADVCOL_ELEMENTS, |
140 EXIF_ADVCOL_DESCRIPTION, | 140 EXIF_ADVCOL_DESCRIPTION, |
141 EXIF_ADVCOL_COUNT | 141 EXIF_ADVCOL_COUNT |
142 }; | 142 }; |
143 | 143 |
144 gchar *bar_exif_validate_text(gchar *text) | |
145 { | |
146 gint len; | |
147 | |
148 if (!text) return NULL; | |
149 | |
150 len = strlen(text); | |
151 if (!g_utf8_validate(text, len, NULL)) | |
152 { | |
153 gchar *conv_text; | |
154 | |
155 conv_text = g_convert(text, len, "UTF-8", "ISO-8859-1", NULL, NULL, NULL); | |
156 g_free(text); | |
157 text = conv_text; | |
158 } | |
159 | |
160 return text; | |
161 } | |
162 | |
163 static void bar_exif_sensitive(ExifBar *eb, gint enable) | 144 static void bar_exif_sensitive(ExifBar *eb, gint enable) |
164 { | 145 { |
165 gtk_widget_set_sensitive(eb->table, enable); | 146 gtk_widget_set_sensitive(eb->table, enable); |
166 if (eb->advanced_scrolled) gtk_widget_set_sensitive(eb->advanced_scrolled, enable); | 147 if (eb->advanced_scrolled) gtk_widget_set_sensitive(eb->advanced_scrolled, enable); |
167 } | 148 } |
207 gtk_widget_hide(eb->labels[i]); | 188 gtk_widget_hide(eb->labels[i]); |
208 gtk_widget_hide(eb->keys[i]); | 189 gtk_widget_hide(eb->keys[i]); |
209 continue; | 190 continue; |
210 } | 191 } |
211 text = exif_get_data_as_text(exif, ExifUIList[i].key); | 192 text = exif_get_data_as_text(exif, ExifUIList[i].key); |
212 text = bar_exif_validate_text(text); | 193 text = utf8_validate_or_convert(text); |
213 if (ExifUIList[i].current == EXIF_UI_IFSET | 194 if (ExifUIList[i].current == EXIF_UI_IFSET |
214 && (!text || !*text)) | 195 && (!text || !*text)) |
215 { | 196 { |
216 gtk_widget_hide(eb->labels[i]); | 197 gtk_widget_hide(eb->labels[i]); |
217 gtk_widget_hide(eb->keys[i]); | 198 gtk_widget_hide(eb->keys[i]); |
241 | 222 |
242 name = list->data; | 223 name = list->data; |
243 list = list->prev; | 224 list = list->prev; |
244 | 225 |
245 text = exif_get_data_as_text(exif, name); | 226 text = exif_get_data_as_text(exif, name); |
246 text = bar_exif_validate_text(text); | 227 text = utf8_validate_or_convert(text); |
247 | 228 |
248 buf = g_strconcat(name, ":", NULL); | 229 buf = g_strconcat(name, ":", NULL); |
249 gtk_label_set_text(GTK_LABEL(eb->custom_name[i]), buf); | 230 gtk_label_set_text(GTK_LABEL(eb->custom_name[i]), buf); |
250 g_free(buf); | 231 g_free(buf); |
251 gtk_label_set_text(GTK_LABEL(eb->custom_value[i]), text); | 232 gtk_label_set_text(GTK_LABEL(eb->custom_value[i]), text); |
285 | 266 |
286 tag = g_strdup_printf("0x%04x", exif_item_get_tag_id(item)); | 267 tag = g_strdup_printf("0x%04x", exif_item_get_tag_id(item)); |
287 tag_name = exif_item_get_tag_name(item); | 268 tag_name = exif_item_get_tag_name(item); |
288 format = exif_item_get_format_name(item, TRUE); | 269 format = exif_item_get_format_name(item, TRUE); |
289 text = exif_item_get_data_as_text(item); | 270 text = exif_item_get_data_as_text(item); |
290 text = bar_exif_validate_text(text); | 271 text = utf8_validate_or_convert(text); |
291 elements = g_strdup_printf("%d", exif_item_get_elements(item)); | 272 elements = g_strdup_printf("%d", exif_item_get_elements(item)); |
292 description = exif_item_get_description(item); | 273 description = exif_item_get_description(item); |
293 if (!description) description = g_strdup(""); | 274 if (!description) description = g_strdup(""); |
294 description = bar_exif_validate_text(description); | 275 description = utf8_validate_or_convert(description); |
295 gtk_list_store_append(store, &iter); | 276 gtk_list_store_append(store, &iter); |
296 gtk_list_store_set(store, &iter, | 277 gtk_list_store_set(store, &iter, |
297 EXIF_ADVCOL_ENABLED, bar_exif_row_enabled(tag_name), | 278 EXIF_ADVCOL_ENABLED, bar_exif_row_enabled(tag_name), |
298 EXIF_ADVCOL_TAG, tag, | 279 EXIF_ADVCOL_TAG, tag, |
299 EXIF_ADVCOL_NAME, tag_name, | 280 EXIF_ADVCOL_NAME, tag_name, |