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",