Beginning of my update on Edit Exif Metadata.
svn: r17401
This commit is contained in:
parent
8f361f33b8
commit
7a6c3a3ad0
@ -105,18 +105,22 @@ if (software_version and (software_version < Min_VERSION)):
|
|||||||
# The programs are ImageMagick, and jhead
|
# The programs are ImageMagick, and jhead
|
||||||
# * ImageMagick -- Convert and Delete all Exif metadata...
|
# * ImageMagick -- Convert and Delete all Exif metadata...
|
||||||
# * jhead -- re-initialize a jpeg image...
|
# * jhead -- re-initialize a jpeg image...
|
||||||
|
# * del -- delete old files from the convert command
|
||||||
#********************************************************************
|
#********************************************************************
|
||||||
# Windows 32bit systems
|
# Windows 32bit systems
|
||||||
system_platform = os.sys.platform
|
system_platform = os.sys.platform
|
||||||
if system_platform == "win32":
|
if system_platform == "win32":
|
||||||
_MAGICK_FOUND = Utils.search_for("convert.exe")
|
_MAGICK_FOUND = "convert.exe" if Utils.search_for("convert.exe") else False
|
||||||
_JHEAD_FOUND = Utils.search_for("jhead.exe")
|
_JHEAD_FOUND = "jhead.exe" if Utils.search_for("jhead.exe") else False
|
||||||
|
_DEL_FOUND = "del.exe" if Utils.search_for("del.exe") else False
|
||||||
elif system_platform == "linux2":
|
elif system_platform == "linux2":
|
||||||
_MAGICK_FOUND = Utils.search_for("convert")
|
_MAGICK_FOUND = "convert" if Utils.search_for("convert") else False
|
||||||
_JHEAD_FOUND = Utils.search_for("jhead")
|
_JHEAD_FOUND = "jhead" if Utils.search_for("jhead") else False
|
||||||
|
_DEL_FOUND = "rm" if Utils.search_for("rm") else False
|
||||||
else:
|
else:
|
||||||
_MAGICK_FOUND = Utils.search_for("convert")
|
_MAGICK_FOUND = "convert" if Utils.search_for("convert") else False
|
||||||
_JHEAD_FOUND = Utils.search_for("jhead")
|
_JHEAD_FOUND = "jhead" if Utils.search_for("jhead") else False
|
||||||
|
_DEL_FOUND = "del" if Utils.search_for("del") else False
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# Constants
|
# Constants
|
||||||
@ -193,12 +197,16 @@ _BUTTONTIPS = {
|
|||||||
"Save" : _("Saves/ writes the Exif metadata to this image.\n"
|
"Save" : _("Saves/ writes the Exif metadata to this image.\n"
|
||||||
"WARNING: Exif metadata will be erased if you save a blank entry field...") }
|
"WARNING: Exif metadata will be erased if you save a blank entry field...") }
|
||||||
|
|
||||||
# if ImageMagick is installed on this computer then, add button tooltips for these two buttons...
|
# if ImageMagick is installed on this computer then, add button tooltips for Convert button...
|
||||||
if _MAGICK_FOUND:
|
if _MAGICK_FOUND:
|
||||||
_BUTTONTIPS.update( {
|
_BUTTONTIPS.update( {
|
||||||
|
|
||||||
# Convert to .Jpeg button...
|
# Convert to .Jpeg button...
|
||||||
"Convert" : _("If your image is not a jpeg image, convert it to jpeg?"),
|
"Convert" : _("If your image is not a jpeg image, convert it to jpeg?") } )
|
||||||
|
|
||||||
|
# if ImageMagick's "convert" or jhead is installed, add this button tooltip...
|
||||||
|
if _MAGICK_FOUND or _JHEAD_FOUND:
|
||||||
|
_BUTTONTIPS.update( {
|
||||||
|
|
||||||
# Delete/ Erase/ Wipe Exif metadata button...
|
# Delete/ Erase/ Wipe Exif metadata button...
|
||||||
"Delete" : _("WARNING: This will completely erase all Exif metadata "
|
"Delete" : _("WARNING: This will completely erase all Exif metadata "
|
||||||
@ -233,7 +241,6 @@ def _return_month(month):
|
|||||||
month = lm
|
month = lm
|
||||||
break
|
break
|
||||||
return month
|
return month
|
||||||
|
|
||||||
# ------------------------------------------------------------------------
|
# ------------------------------------------------------------------------
|
||||||
# Gramplet class
|
# Gramplet class
|
||||||
# ------------------------------------------------------------------------
|
# ------------------------------------------------------------------------
|
||||||
@ -556,13 +563,8 @@ class EditExifMetadata(Gramplet):
|
|||||||
Handles the Save question Dialog...
|
Handles the Save question Dialog...
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.SavedEntries = [self.exif_widgets[widget].get_text() for widget in [
|
QuestionDialog(_("Edit Image Exif Metadata"), _("Save Exif metadata to this image?"),
|
||||||
"Description", "Artist", "Copyright", "DateTime", "Latitude", "Longitude"] ]
|
_("Save"), self.save_metadata)
|
||||||
self.SavedEntries = [entry for entry in self.SavedEntries if entry]
|
|
||||||
if self.SavedEntries:
|
|
||||||
|
|
||||||
QuestionDialog(_("Edit Image Exif Metadata"), _("Save Exif metadata to this image?"),
|
|
||||||
_("Save"), self.save_metadata)
|
|
||||||
|
|
||||||
def __delete_dialog(self, obj):
|
def __delete_dialog(self, obj):
|
||||||
"""
|
"""
|
||||||
@ -776,6 +778,13 @@ class EditExifMetadata(Gramplet):
|
|||||||
if use_date is not False:
|
if use_date is not False:
|
||||||
self.exif_widgets[widgetsName].set_text(use_date)
|
self.exif_widgets[widgetsName].set_text(use_date)
|
||||||
|
|
||||||
|
# Last Changed/ Modified...
|
||||||
|
elif widgetsName == "Modified":
|
||||||
|
use_date = self._get_value(KeyTag)
|
||||||
|
use_date = _process_datetime(use_date) if use_date else False
|
||||||
|
if use_date is not False:
|
||||||
|
self.exif_widgets[widgetsName].set_text(use_date)
|
||||||
|
|
||||||
# LatitudeRef, Latitude, LongitudeRef, Longitude...
|
# LatitudeRef, Latitude, LongitudeRef, Longitude...
|
||||||
elif widgetsName == "Latitude":
|
elif widgetsName == "Latitude":
|
||||||
|
|
||||||
@ -863,7 +872,7 @@ class EditExifMetadata(Gramplet):
|
|||||||
|
|
||||||
self.deactivate_buttons(["Convert"])
|
self.deactivate_buttons(["Convert"])
|
||||||
|
|
||||||
def _set_exif_KeyTag(self, KeyTag, KeyValue):
|
def _set_value(self, KeyTag, KeyValue):
|
||||||
"""
|
"""
|
||||||
sets the value for the metadata KeyTags
|
sets the value for the metadata KeyTags
|
||||||
"""
|
"""
|
||||||
@ -1039,26 +1048,26 @@ class EditExifMetadata(Gramplet):
|
|||||||
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_value(_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...
|
||||||
self._set_exif_KeyTag(_DATAMAP["Modified"], datetime.now() )
|
self._set_value(_DATAMAP["Modified"], datetime.now() )
|
||||||
|
|
||||||
# display modified Date/ Time
|
# display modified Date/ Time
|
||||||
self.exif_widgets["Modified"].set_text(_format_datetime(datetime.now() ) )
|
self.exif_widgets["Modified"].set_text(_format_datetime(datetime.now() ) )
|
||||||
|
|
||||||
# Artist/ Author data field
|
# Artist/ Author data field
|
||||||
self._set_exif_KeyTag(_DATAMAP["Artist"], self.exif_widgets["Artist"].get_text() )
|
self._set_value(_DATAMAP["Artist"], self.exif_widgets["Artist"].get_text() )
|
||||||
|
|
||||||
# Copyright data field
|
# Copyright data field
|
||||||
self._set_exif_KeyTag(_DATAMAP["Copyright"], self.exif_widgets["Copyright"].get_text() )
|
self._set_value(_DATAMAP["Copyright"], self.exif_widgets["Copyright"].get_text() )
|
||||||
|
|
||||||
# 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:
|
||||||
DateTime = _process_datetime(DateTime, False)
|
DateTime = _process_datetime(DateTime, False)
|
||||||
if DateTime is not False:
|
if DateTime is not False:
|
||||||
self._set_exif_KeyTag(_DATAMAP["DateTime"], DateTime)
|
self._set_value(_DATAMAP["DateTime"], DateTime)
|
||||||
|
|
||||||
# Latitude/ Longitude data fields
|
# Latitude/ Longitude data fields
|
||||||
latitude = self.exif_widgets["Latitude"].get_text()
|
latitude = self.exif_widgets["Latitude"].get_text()
|
||||||
@ -1112,12 +1121,12 @@ class EditExifMetadata(Gramplet):
|
|||||||
latitude, longitude = _removesymbols4saving(latitude, longitude)
|
latitude, longitude = _removesymbols4saving(latitude, longitude)
|
||||||
|
|
||||||
# convert (degrees, minutes, seconds) to Rational for saving
|
# convert (degrees, minutes, seconds) to Rational for saving
|
||||||
self._set_exif_KeyTag(_DATAMAP["LatitudeRef"], LatitudeRef)
|
self._set_value(_DATAMAP["LatitudeRef"], LatitudeRef)
|
||||||
self._set_exif_KeyTag(_DATAMAP["Latitude"], coords_to_rational(latitude))
|
self._set_value(_DATAMAP["Latitude"], coords_to_rational(latitude))
|
||||||
|
|
||||||
# convert (degrees, minutes, seconds) to Rational for saving
|
# convert (degrees, minutes, seconds) to Rational for saving
|
||||||
self._set_exif_KeyTag(_DATAMAP["LongitudeRef"], LongitudeRef)
|
self._set_value(_DATAMAP["LongitudeRef"], LongitudeRef)
|
||||||
self._set_exif_KeyTag(_DATAMAP["Longitude"], coords_to_rational(longitude))
|
self._set_value(_DATAMAP["Longitude"], coords_to_rational(longitude))
|
||||||
|
|
||||||
if datatags:
|
if datatags:
|
||||||
# set Message Area to Saved...
|
# set Message Area to Saved...
|
||||||
|
Loading…
Reference in New Issue
Block a user