8157: ImageMetadata doesn't show metadata

This commit is contained in:
Josip 2014-11-07 19:18:19 +01:00
parent 9a00d5533d
commit e0b44ff355

View File

@ -184,7 +184,9 @@ class MetadataView(Gtk.TreeView):
retval = False retval = False
with open(full_path, 'rb') as fd: with open(full_path, 'rb') as fd:
try: try:
metadata = GExiv2.Metadata(self.fd) buf = fd.read()
metadata = GExiv2.Metadata()
metadata.open_buf(buf)
get_human = metadata.get_tag_interpreted_string get_human = metadata.get_tag_interpreted_string
@ -192,27 +194,27 @@ class MetadataView(Gtk.TreeView):
if not key in metadata.get_exif_tags(): if not key in metadata.get_exif_tags():
continue continue
if func is not None: if func is not None:
if key2 is None: if key2 is None:
human_value = func(metadata[key]) human_value = func(metadata[key])
else:
if key2 in metadata.get_exif_tags():
human_value = func(metadata[key], metadata[key2])
else: else:
human_value = func(metadata[key], None) if key2 in metadata.get_exif_tags():
else: human_value = func(metadata[key], metadata[key2])
human_value = get_human(key) else:
if key2 in metadata.get_exif_tags(): human_value = func(metadata[key], None)
human_value += ' ' + get_human(key2) else:
human_value = get_human(key)
if key2 in metadata.get_exif_tags():
human_value += ' ' + get_human(key2)
label = metadata.get_tag_label(key) label = metadata.get_tag_label(key)
node = self.__add_section(section) node = self.__add_section(section)
if human_value is None: if human_value is None:
human_value = '' human_value = ''
self.model.add((label, human_value), node=node) self.model.add((label, human_value), node=node)
self.model.tree.expand_all() self.model.tree.expand_all()
retval = self.model.count > 0 retval = self.model.count > 0
except: except:
pass pass
@ -238,7 +240,9 @@ class MetadataView(Gtk.TreeView):
with open(full_path, 'rb') as fd: with open(full_path, 'rb') as fd:
retval = False retval = False
try: try:
metadata = GExiv2.Metadata(fd) buf = fd.read()
metadata = GExiv2.Metadata()
metadata.open_buf(buf)
for tag in TAGS: for tag in TAGS:
if tag in metadata.get_exif_tags(): if tag in metadata.get_exif_tags():
retval = True retval = True