Fixed an issue with media full path. Thank you Peter Landgren...
svn: r17323
This commit is contained in:
parent
c8b9101232
commit
e29540ccfe
@ -407,15 +407,17 @@ class EditExifMetadata(Gramplet):
|
|||||||
if media is None:
|
if media is None:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
full_path = Utils.media_path_full(self.dbstate.db, media.get_path())
|
full_path = Utils.media_path_full(self.dbstate.db, media.get_path() )
|
||||||
|
if not os.join.isfile(full_path):
|
||||||
|
return False
|
||||||
|
|
||||||
if LesserVersion: # prior to v0.2.0
|
if LesserVersion: # prior to v0.2.0
|
||||||
|
metadata = pyexiv2.Image(full_path)
|
||||||
try:
|
try:
|
||||||
metadata = pyexiv2.Image(full_path)
|
metadata.readMetadata()
|
||||||
except IOError:
|
except (IOError, OSError):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
metadata.readMetadata()
|
|
||||||
if metadata.exifKeys():
|
if metadata.exifKeys():
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@ -423,7 +425,7 @@ class EditExifMetadata(Gramplet):
|
|||||||
metadata = pyexiv2.ImageMetadata(full_path)
|
metadata = pyexiv2.ImageMetadata(full_path)
|
||||||
try:
|
try:
|
||||||
metadata.read()
|
metadata.read()
|
||||||
except IOError:
|
except (IOError, OSError):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if metadata.exif_keys:
|
if metadata.exif_keys:
|
||||||
@ -1047,19 +1049,20 @@ class EditExifMetadata(Gramplet):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# determine if there has been something entered in the data fields?
|
# determine if there has been something entered in the data fields?
|
||||||
datatgs = (len(self.exif_widgets["Description"].get_text() +
|
datatags = (len(self.exif_widgets["Description"].get_text() ) +
|
||||||
len(self.exif_widgets["Artist"].get_text() +
|
len(self.exif_widgets["Artist"].get_text() ) +
|
||||||
len(self.exif_widgets["Copyright"].get_text() +
|
len(self.exif_widgets["Copyright"].get_text() ) +
|
||||||
len(self.exif_widgets["DateTime"].get_text() +
|
len(self.exif_widgets["DateTime"].get_text() ) +
|
||||||
len(self.exif_widgets["Latitude"].get_text() +
|
len(self.exif_widgets["Latitude"].get_text() ) +
|
||||||
len(self.exif_widgets["Longitude"].get_text() )
|
len(self.exif_widgets["Longitude"].get_text() ) )
|
||||||
|
|
||||||
# Description data field
|
# Description data field
|
||||||
self._set_exif_KeyTag(_DATAMAP["Description"], self.exif_widgets["Description"].get_text() )
|
self._set_exif_KeyTag(_DATAMAP["Description"], self.exif_widgets["Description"].get_text() )
|
||||||
|
|
||||||
# Modify Date/ Time... not a data field, but saved anyway...
|
# Modify Date/ Time... not a data field, but saved anyway...
|
||||||
ModDateTime = _format_datetime(datetime.now() )
|
# if no data is available, do NOT set modify Date/ Time?
|
||||||
self._set_exif_KeyTag(_DATAMAP["ModDateTime"], _write_date(ModDateTime) )
|
if datatags:
|
||||||
|
self._set_exif_KeyTag(_DATAMAP["ModDateTime"], datetime.now() )
|
||||||
|
|
||||||
# Artist/ Author data field
|
# Artist/ Author data field
|
||||||
self._set_exif_KeyTag(_DATAMAP["Artist"], self.exif_widgets["Artist"].get_text() )
|
self._set_exif_KeyTag(_DATAMAP["Artist"], self.exif_widgets["Artist"].get_text() )
|
||||||
@ -1070,12 +1073,14 @@ class EditExifMetadata(Gramplet):
|
|||||||
# Original Date/ Time data field
|
# Original Date/ Time data field
|
||||||
DateTime = self.exif_widgets["DateTime"].get_text()
|
DateTime = self.exif_widgets["DateTime"].get_text()
|
||||||
if DateTime:
|
if DateTime:
|
||||||
if type(DateTime) is not datetime:
|
DateTime = _write_date(DateTime)
|
||||||
DateTime = _process_date(DateTime)
|
self._set_exif_KeyTag(_DATAMAP["DateTime"], DateTime)
|
||||||
|
|
||||||
|
if DateTime:
|
||||||
|
DateTime = _write_date(DateTime)
|
||||||
if type(DateTime) == datetime:
|
if type(DateTime) == datetime:
|
||||||
self.exif_widgets["DateTime"].set_text(_format_datetime(DateTime) )
|
DateTime = _format_datetime(DateTime)
|
||||||
self._set_exif_KeyTag(_DATAMAP["DateTime"], _write_date(DateTime) )
|
self.exif_widgets["DateTime"].set_text(DateTime)
|
||||||
|
|
||||||
# Latitude/ Longitude data fields
|
# Latitude/ Longitude data fields
|
||||||
latitude = self.exif_widgets["Latitude"].get_text()
|
latitude = self.exif_widgets["Latitude"].get_text()
|
||||||
@ -1138,10 +1143,11 @@ class EditExifMetadata(Gramplet):
|
|||||||
|
|
||||||
if datatags:
|
if datatags:
|
||||||
# set Message Area for to Saved...
|
# set Message Area for to Saved...
|
||||||
self.exif_widgets["Message:Area"].set_text(_("Saving Exif metadata to image..."))
|
self.exif_widgets["Message:Area"].set_text(_("Saving Exif metadata to the image..."))
|
||||||
else:
|
else:
|
||||||
# set Message Area to Cleared...
|
# set Message Area to Cleared...
|
||||||
self.exif_widgets["Message:Area"].set_text(_("Image fields have been cleared..."))
|
self.exif_widgets["Message:Area"].set_text(_("Image fields have been cleared "
|
||||||
|
"from this image..."))
|
||||||
|
|
||||||
# writes all Exif Metadata to image even if the fields are all empty...
|
# writes all Exif Metadata to image even if the fields are all empty...
|
||||||
self.write_metadata(self.plugin_image)
|
self.write_metadata(self.plugin_image)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user