Added Convert Question Dialog.

svn: r17307
This commit is contained in:
Rob G. Healey 2011-04-28 02:46:42 +00:00
parent 71a0616e48
commit d86d1f8831

View File

@ -104,29 +104,18 @@ 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 the image after converting to Jpeg...
#******************************************************************** #********************************************************************
system_platform = os.sys.platform
# Windows 32bit systems # Windows 32bit systems
system_platform = os.sys.platform
if system_platform == "win32": if system_platform == "win32":
_MAGICK_FOUND = Utils.search_for("convert.exe") _MAGICK_FOUND = Utils.search_for("convert.exe")
_JHEAD_FOUND = Utils.search_for("jhead.exe") _JHEAD_FOUND = Utils.search_for("jhead.exe")
_DEL_FOUND = Utils.search_for("del.exe") elif system_platform == "linux2":
__del_command = "del.exe"
# all Linux systems
elif system_platform == "Linux2":
_MAGICK_FOUND = Utils.search_for("convert") _MAGICK_FOUND = Utils.search_for("convert")
_JHEAD_FOUND = Utils.search_for("jhead") _JHEAD_FOUND = Utils.search_for("jhead")
_DEL_FOUND = Utils.search_for("rm")
__del_command = "rm"
# Windows 64bit systems
else: else:
_MAGICK_FOUND = Utils.search_for("convert") _MAGICK_FOUND = Utils.search_for("convert")
_JHEAD_FOUND = Utils.search_for("jhead") _JHEAD_FOUND = Utils.search_for("jhead")
_DEL_FOUND = Utils.search_for("del")
__del_command = "del"
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Constants # Constants
@ -330,10 +319,11 @@ class EditExifMetadata(Gramplet):
ccc_box.add( self.__create_button( ccc_box.add( self.__create_button(
"Clear", False, self.clear_metadata, gtk.STOCK_CLEAR, False) ) "Clear", False, self.clear_metadata, gtk.STOCK_CLEAR, False) )
# is ImageMagick installed?
if _MAGICK_FOUND: if _MAGICK_FOUND:
# Convert button... # Convert button...
ccc_box.add( self.__create_button( ccc_box.add( self.__create_button(
"Convert", False, self.convert2Jpeg, gtk.STOCK_CONVERT, False) ) "Convert", False, self.__convert_dialog, gtk.STOCK_CONVERT, False) )
for items in [ for items in [
@ -479,11 +469,13 @@ class EditExifMetadata(Gramplet):
self.exif_widgets["Mime:Type"].set_text(_mtype) self.exif_widgets["Mime:Type"].set_text(_mtype)
# determine if it is a mime image object? # determine if it is a mime image object?
if (mime_type and mime_type.startswith("image") ): if mime_type:
if mime_type.startswith("image"):
self.activate_buttons(["Save"])
# display file description/ title... # display file description/ title...
self.exif_widgets["Media:Label"].set_text( _html_escape( self.exif_widgets["Media:Label"].set_text( _html_escape(
self.orig_image.get_description() ) ) self.orig_image.get_description()))
# will create the image and read it... # will create the image and read it...
self.setup_image(self.image_path, True) self.setup_image(self.image_path, True)
@ -502,6 +494,10 @@ class EditExifMetadata(Gramplet):
self.exif_widgets["Message:Area"].set_text(_("Choose a different image...")) self.exif_widgets["Message:Area"].set_text(_("Choose a different image..."))
return return
else:
self.exif_widgets["Message:Area"].set_text(_("Choose a different image..."))
return
def __create_column(self, name, colnum, fixed =True): def __create_column(self, name, colnum, fixed =True):
""" """
will create the column for the column row... will create the column for the column row...
@ -541,6 +537,16 @@ class EditExifMetadata(Gramplet):
return button return button
def __convert_dialog(self, obj):
"""
Handles the Convert question Dialog...
"""
# is ImageMagick installled?
if _MAGICK_FOUND:
QuestionDialog(_("Edit Image Exif Metadata"), _("Convert this image to a .jpeg image?"),
_("Convert"), self.convert2Jpeg)
def __save_dialog(self, obj): def __save_dialog(self, obj):
""" """
Handles the Save question Dialog... Handles the Save question Dialog...
@ -851,29 +857,27 @@ class EditExifMetadata(Gramplet):
else: else:
self.exif_widgets["DateTime"].set_text("") self.exif_widgets["DateTime"].set_text("")
def convert2Jpeg(self, obj): def convert2Jpeg(self):
""" """
Will attempt to convert an image to jpeg if it is not? Will attempt to convert an image to jpeg if it is not?
""" """
# if ImageMagick's convert is installed... # if ImageMagick's convert is installed...
if _MAGICK_FOUND: if _MAGICK_FOUND:
self.exif_widgets["Message:Area"].set_text(_("Converting image to a jpeg image..."))
filepath, basename = os.path.split(self.image_path) filepath, basename = os.path.split(self.image_path)
basename, oldext = os.path.splitext(self.image_path) basename, oldext = os.path.splitext(self.image_path)
newextension = ".jpeg" newextension = ".jpeg"
change = subprocess.check_call( ["convert", self.image_path, convert = subprocess.check_call(["convert", self.image_path,
os.path.join(filepath, basename + newextension) ] ) os.path.join(filepath, basename + newextension) ] )
if str(change): if str(convert):
self.deactivate_buttons(["Convert"])
if _DEL_FOUND: # set Message Area to Convert...
deleted = subprocess.check_call( [_del_command, self.image_path] ) self.exif_widgets["Message:Area"].set_text(_("Converting image,\n"
if str(deleted): "You will need to delete the original image file..."))
self.exif_widgets["Message:Area"].set_text(_("Original image has "
"been deleted!")) self.deactivate_buttons(["Convert"])
def _set_exif_KeyTag(self, KeyTag, KeyValue): def _set_exif_KeyTag(self, KeyTag, KeyValue):
""" """
@ -1043,12 +1047,12 @@ 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() )