File libexif-gtk-no-deprecated.patch of Package libexif-gtk

http://sourceforge.net/tracker/index.php?func=detail&aid=2014281&group_id=12272&atid=312272
================================================================================
--- libexif-gtk/gtk-exif-content-list.c
+++ libexif-gtk/gtk-exif-content-list.c
@@ -262,6 +262,9 @@
 		gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), smenu);
 
 		/* Create a sorted list of tags. */
+		/* UGLY: libexif does not provide API for "all known tags". */
+		/* FIXME: List should offer only tags legal in current IFD */
+		/* FIXME: Code is duplicate of gtk-exif-tag-menu:gtk_exif_tag_menu_new() */
 		t = n = 0;
 		memset (tags, 0, sizeof (GtkOptions) * LIST_SIZE);
 		while ((t < 0xffff) && (n < LIST_SIZE - 2)) {
@@ -273,6 +276,15 @@
 			}
 			t++;
 		}
+		/* These two tags are only two known non-unique IFD spefic tags. */
+		name = exif_tag_get_name_in_ifd (EXIF_TAG_GPS_LATITUDE_REF, EXIF_IFD_GPS);
+		tags[n].option = EXIF_TAG_GPS_LATITUDE_REF;
+		tags[n].name = name;
+		n++;
+		name = exif_tag_get_name_in_ifd (EXIF_TAG_GPS_LATITUDE, EXIF_IFD_GPS);
+		tags[n].option = EXIF_TAG_GPS_LATITUDE;
+		tags[n].name = name;
+		n++;
 		gtk_options_sort (tags);
 		g_assert (n > 1);
 
@@ -428,7 +440,7 @@
 
 	gtk_list_store_append (list->priv->store, &iter);
 	gtk_list_store_set (GTK_LIST_STORE (list->priv->store), &iter,
-			NAME_COLUMN, exif_tag_get_name (entry->tag),
+			NAME_COLUMN, exif_tag_get_name_in_ifd (entry->tag, exif_content_get_ifd(entry->parent)),
 			VALUE_COLUMN, exif_entry_get_value (entry, buf, sizeof(buf)),
 			ENTRY_COLUMN, entry, -1);
 	g_signal_emit (list, signals[ENTRY_ADDED], 0, entry);
--- libexif-gtk/gtk-exif-entry-ascii.c
+++ libexif-gtk/gtk-exif-entry-ascii.c
@@ -108,8 +108,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-		exif_tag_get_title (e->tag),
-		exif_tag_get_description (e->tag));
+		exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+		exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	widget = gtk_entry_new ();
 	gtk_widget_show (widget);
--- libexif-gtk/gtk-exif-entry-copyright.c
+++ libexif-gtk/gtk-exif-entry-copyright.c
@@ -143,8 +143,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-		exif_tag_get_title (e->tag),
-		exif_tag_get_description (e->tag));
+		exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+		exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	table = gtk_table_new (2, 2, FALSE);
 	gtk_widget_show (table);
--- libexif-gtk/gtk-exif-entry-date.c
+++ libexif-gtk/gtk-exif-entry-date.c
@@ -186,8 +186,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-		exif_tag_get_title (e->tag),
-		exif_tag_get_description (e->tag));
+		exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+		exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	c = gtk_calendar_new ();
 	gtk_widget_show (c);
--- libexif-gtk/gtk-exif-entry-exposure.c
+++ libexif-gtk/gtk-exif-entry-exposure.c
@@ -171,8 +171,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-			exif_tag_get_title (e->tag),
-			exif_tag_get_description (e->tag));
+			exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+			exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	hbox = gtk_hbox_new (FALSE, 5);
 	gtk_widget_show (hbox);
--- libexif-gtk/gtk-exif-entry-flash.c
+++ libexif-gtk/gtk-exif-entry-flash.c
@@ -113,8 +113,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-		exif_tag_get_title (e->tag),
-		exif_tag_get_description (e->tag));
+		exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+		exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	check = gtk_check_button_new_with_label ("Flash fired");
 	gtk_widget_show (check);
--- libexif-gtk/gtk-exif-entry-generic.c
+++ libexif-gtk/gtk-exif-entry-generic.c
@@ -97,8 +97,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-		exif_tag_get_title (e->tag),
-		exif_tag_get_description (e->tag));
+		exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+		exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	table = gtk_table_new (2, 4, FALSE);
 	gtk_widget_show (table);
--- libexif-gtk/gtk-exif-entry-number.c
+++ libexif-gtk/gtk-exif-entry-number.c
@@ -218,8 +218,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-		exif_tag_get_title (e->tag),
-		exif_tag_get_description (e->tag));
+		exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+		exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	table = gtk_table_new (2, 1, FALSE);
 	gtk_widget_show (table);
--- libexif-gtk/gtk-exif-entry-option.c
+++ libexif-gtk/gtk-exif-entry-option.c
@@ -254,8 +254,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-			exif_tag_get_title (e->tag),
-			exif_tag_get_description (e->tag));
+			exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+			exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	hbox = gtk_hbox_new (FALSE, 5);
 	gtk_widget_show (hbox);
--- libexif-gtk/gtk-exif-entry-rational.c
+++ libexif-gtk/gtk-exif-entry-rational.c
@@ -220,8 +220,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-		exif_tag_get_title (e->tag),
-		exif_tag_get_description (e->tag));
+		exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+		exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	table = gtk_table_new (4, 1, FALSE);
 	gtk_widget_show (table);
--- libexif-gtk/gtk-exif-entry-user-comment.c
+++ libexif-gtk/gtk-exif-entry-user-comment.c
@@ -216,8 +216,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-		exif_tag_get_title (e->tag),
-		exif_tag_get_description (e->tag));
+		exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+		exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	hbox = gtk_hbox_new (FALSE, 0);
 	gtk_widget_show (hbox);
--- libexif-gtk/gtk-exif-entry-version.c
+++ libexif-gtk/gtk-exif-entry-version.c
@@ -235,8 +235,8 @@
 	entry->priv->entry = e;
 	exif_entry_ref (e);
 	gtk_exif_entry_construct (GTK_EXIF_ENTRY (entry),
-			exif_tag_get_title (e->tag),
-			exif_tag_get_description (e->tag));
+			exif_tag_get_title_in_ifd (e->tag, exif_content_get_ifd(e->parent)),
+			exif_tag_get_description_in_ifd (e->tag, exif_content_get_ifd(e->parent)));
 
 	hbox = gtk_hbox_new (FALSE, 5);
 	gtk_widget_show (hbox);
--- libexif-gtk/gtk-exif-tag-menu.c
+++ libexif-gtk/gtk-exif-tag-menu.c
@@ -120,10 +121,13 @@
 
 	menu = g_object_new (GTK_EXIF_TYPE_TAG_MENU, NULL);
 
+	/* UGLY: libexif does not provide API for "all known tags". */
+	/* FIXME: List should offer only tags legal in current IFD */
+	/* FIXME: Code is duplicate of gtk-exif-content-list:on_button_press_event() */
 	t = i = 0;
 	memset (tags, 0, sizeof (GtkOptions) * LIST_SIZE);
 	while ((t < 0xffff) && (i < LIST_SIZE - 1)) {
-		name = exif_tag_get_name (t);
+		name = exif_tag_get_name (t); /* FIXME: needs rewrite */
 		if (name) {
 			tags[i].option = t;
 			tags[i].name = name;
@@ -131,6 +135,15 @@
 		}
 		t++;
 	}
+	/* These two tags are only two known non-unique IFD spefic tags. */
+	name = exif_tag_get_name_in_ifd (EXIF_TAG_GPS_LATITUDE_REF, EXIF_IFD_GPS);
+	tags[t].option = EXIF_TAG_GPS_LATITUDE_REF;
+	tags[t].name = name;
+	t++;
+	name = exif_tag_get_name_in_ifd (EXIF_TAG_GPS_LATITUDE, EXIF_IFD_GPS);
+	tags[t].option = EXIF_TAG_GPS_LATITUDE;
+	tags[t].name = name;
+	t++;
 
 	gtk_menu_option_construct (GTK_MENU_OPTION (menu), tags);
 	g_signal_connect (GTK_OBJECT (menu), "option_selected",
openSUSE Build Service is sponsored by