diff src/pan-view.c @ 1288:10073464e6aa

use metadata_read_* functions where possible switch exiv2 to utf8 charset support for exiv2 formatting that depends on other tags: http://dev.robotbattle.com/bugs/view.php?id=0000516
author nadvornik
date Sat, 07 Feb 2009 19:01:21 +0000
parents 8b89e3ff286b
children 4a3ae0e6f1eb
line wrap: on
line diff
--- a/src/pan-view.c	Fri Feb 06 23:49:03 2009 +0000
+++ b/src/pan-view.c	Sat Feb 07 19:01:21 2009 +0000
@@ -18,6 +18,7 @@
 #include "dnd.h"
 #include "editors.h"
 #include "exif.h"
+#include "metadata.h"
 #include "fullscreen.h"
 #include "history_list.h"
 #include "img-view.h"
@@ -1434,13 +1435,10 @@
 
 static void pan_info_add_exif(PanTextAlignment *ta, FileData *fd)
 {
-	ExifData *exif;
 	GList *work;
 	gint i;
 
 	if (!fd) return;
-	exif = exif_read_fd(fd);
-	if (!exif) return;
 
 	pan_text_alignment_add(ta, NULL, NULL);
 
@@ -1449,11 +1447,11 @@
 		gchar *label;
 		gchar *desc;
 		gchar *text;
-		gchar *utf8_text;
 
 		if (ExifUIList[i].current == EXIF_UI_OFF) continue;
 
-		text = exif_get_data_as_text(exif, ExifUIList[i].key);
+		text = metadata_read_string(fd, ExifUIList[i].key, METADATA_FORMATTED);
+		
 		if (ExifUIList[i].current == EXIF_UI_IFSET && (!text || !*text))
 			{
 			g_free(text);
@@ -1463,11 +1461,9 @@
 		desc = exif_get_description_by_key(ExifUIList[i].key);
 		label = g_strdup_printf("%s:", desc);
 		g_free(desc);
-		utf8_text = utf8_validate_or_convert(text);
+		pan_text_alignment_add(ta, label, text);
+		g_free(label);
 		g_free(text);
-		pan_text_alignment_add(ta, label, utf8_text);
-		g_free(label);
-		g_free(utf8_text);
 		}
 
 	work = g_list_last(history_list_get_by_key("exif_extras"));
@@ -1480,20 +1476,15 @@
 		name = work->data;
 		work = work->prev;
 
-		text = exif_get_data_as_text(exif, name);
+		text =  metadata_read_string(fd, name, METADATA_FORMATTED);
 		if (text)
 			{
 			gchar *label = g_strdup_printf("%s:", name);
-			gchar *utf8_text = utf8_validate_or_convert(text);
-
+			pan_text_alignment_add(ta, label, text);
+			g_free(label);
 			g_free(text);
-			pan_text_alignment_add(ta, label, utf8_text);
-			g_free(label);
-			g_free(utf8_text);
 			}
 		}
-
-	exif_free_fd(fd, exif);
 }
 
 static void pan_info_update(PanWindow *pw, PanItem *pi)