Fixed errors in disabling buttons.
svn: r17562
This commit is contained in:
@ -221,7 +221,7 @@ _BUTTONTIPS = {
|
|||||||
if (_MAGICK_FOUND or _JHEAD_FOUND):
|
if (_MAGICK_FOUND or _JHEAD_FOUND):
|
||||||
_BUTTONTIPS.update( {
|
_BUTTONTIPS.update( {
|
||||||
# Thumbnail Viewing Window button...
|
# Thumbnail Viewing Window button...
|
||||||
"ThumbnailView" : _("Will produce a Popup window showing a Thumbnail Viewing Area"),
|
"Thumbnail" : _("Will produce a Popup window showing a Thumbnail Viewing Area"),
|
||||||
|
|
||||||
# Convert to .Jpeg button...
|
# Convert to .Jpeg button...
|
||||||
"Convert" : _("If your image is not a .jpg image, convert it to a .jpg image?"),
|
"Convert" : _("If your image is not a .jpg image, convert it to a .jpg image?"),
|
||||||
@ -298,7 +298,7 @@ class EditExifMetadata(Gramplet):
|
|||||||
|
|
||||||
# Thumbnail View button...
|
# Thumbnail View button...
|
||||||
ctc_box.add( self.__create_button(
|
ctc_box.add( self.__create_button(
|
||||||
"ThumbnailView", _("Thumbnail"), [self.thumbnail_view] ) )
|
"Thumbnail", _("Thumbnail"), [self.thumbnail_view] ) )
|
||||||
|
|
||||||
# is ImageMagick installed?
|
# is ImageMagick installed?
|
||||||
if _MAGICK_FOUND:
|
if _MAGICK_FOUND:
|
||||||
@ -314,7 +314,7 @@ class EditExifMetadata(Gramplet):
|
|||||||
|
|
||||||
# Help button...
|
# Help button...
|
||||||
hed_box.add( self.__create_button(
|
hed_box.add( self.__create_button(
|
||||||
"Help", False, [self.__help_page], gtk.STOCK_HELP, True) )
|
"Help", False, [self.__help_page], gtk.STOCK_HELP) )
|
||||||
|
|
||||||
# Edit button...
|
# Edit button...
|
||||||
hed_box.add( self.__create_button(
|
hed_box.add( self.__create_button(
|
||||||
@ -323,7 +323,7 @@ class EditExifMetadata(Gramplet):
|
|||||||
if _MAGICK_FOUND:
|
if _MAGICK_FOUND:
|
||||||
# Delete All Metadata button...
|
# Delete All Metadata button...
|
||||||
hed_box.add(self.__create_button(
|
hed_box.add(self.__create_button(
|
||||||
"Delete", False, [self.__wipe_dialog], gtk.STOCK_DELETE ) )
|
"Delete", False, [self.__wipe_dialog], gtk.STOCK_DELETE) )
|
||||||
|
|
||||||
# greyed- shaded lines display area...
|
# greyed- shaded lines display area...
|
||||||
new_vbox = self.build_shaded_display()
|
new_vbox = self.build_shaded_display()
|
||||||
@ -335,10 +335,16 @@ class EditExifMetadata(Gramplet):
|
|||||||
def main(self): # return false finishes
|
def main(self): # return false finishes
|
||||||
"""
|
"""
|
||||||
get the active media, mime type, and reads the image metadata
|
get the active media, mime type, and reads the image metadata
|
||||||
|
|
||||||
|
*** disable all buttons at first, then activate as needed...
|
||||||
|
# Help will never be disabled...
|
||||||
"""
|
"""
|
||||||
db = self.dbstate.db
|
db = self.dbstate.db
|
||||||
|
|
||||||
# clears all labels...
|
# disable all buttons...
|
||||||
|
self.deactivate_buttons(["All"])
|
||||||
|
|
||||||
|
# clears all labels and display area...
|
||||||
for widget in ["MediaLabel", "MimeType", "MessageArea"]:
|
for widget in ["MediaLabel", "MimeType", "MessageArea"]:
|
||||||
self.exif_widgets[widget].set_text("")
|
self.exif_widgets[widget].set_text("")
|
||||||
self.model.clear()
|
self.model.clear()
|
||||||
@ -353,15 +359,12 @@ class EditExifMetadata(Gramplet):
|
|||||||
|
|
||||||
self.orig_image = db.get_object_from_handle(active_handle)
|
self.orig_image = db.get_object_from_handle(active_handle)
|
||||||
self.image_path = Utils.media_path_full(db, self.orig_image.get_path() )
|
self.image_path = Utils.media_path_full(db, self.orig_image.get_path() )
|
||||||
|
basename, extension = os.path.splitext(self.image_path)
|
||||||
if (not self.orig_image or not os.path.isfile(self.image_path)):
|
if (not self.orig_image or not os.path.isfile(self.image_path)):
|
||||||
self.exif_widgets["MessageArea"].set_text(_("Image is either missing or deleted,\n"
|
self.exif_widgets["MessageArea"].set_text(_("Image is either missing or deleted,\n"
|
||||||
"Please choose a different image..."))
|
"Please choose a different image..."))
|
||||||
return
|
return
|
||||||
|
|
||||||
# disable all data fields and buttons if NOT an exiv2 image type?
|
|
||||||
basename, self.extension = os.path.splitext(self.image_path)
|
|
||||||
self._setup_buttons(self.extension)
|
|
||||||
|
|
||||||
# check image read privileges...
|
# check image read privileges...
|
||||||
_readable = os.access(self.image_path, os.R_OK)
|
_readable = os.access(self.image_path, os.R_OK)
|
||||||
if not _readable:
|
if not _readable:
|
||||||
@ -369,6 +372,9 @@ class EditExifMetadata(Gramplet):
|
|||||||
"Please choose a different image..."))
|
"Please choose a different image..."))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Activate the Clear button...
|
||||||
|
self.activate_buttons(["Clear"])
|
||||||
|
|
||||||
# check image write privileges...
|
# check image write privileges...
|
||||||
_writable = os.access(self.image_path, os.W_OK)
|
_writable = os.access(self.image_path, os.W_OK)
|
||||||
if not _writable:
|
if not _writable:
|
||||||
@ -384,17 +390,20 @@ class EditExifMetadata(Gramplet):
|
|||||||
self.exif_widgets["MimeType"].set_text(gen.mime.get_description(mime_type) )
|
self.exif_widgets["MimeType"].set_text(gen.mime.get_description(mime_type) )
|
||||||
|
|
||||||
# display all button tooltips only...
|
# display all button tooltips only...
|
||||||
# False would be for the data fields also...
|
# 1st argument is for Fields, 2nd argument is for Buttons...
|
||||||
self._setup_widget_tips([False, True])
|
self._setup_widget_tips([False, True])
|
||||||
|
|
||||||
# determine if it is a mime image object?
|
# determine if it is a mime image object?
|
||||||
if mime_type:
|
if mime_type:
|
||||||
if mime_type.startswith("image"):
|
if mime_type.startswith("image"):
|
||||||
|
|
||||||
|
# activate the Edit button...
|
||||||
|
self.activate_buttons(["Edit"])
|
||||||
|
|
||||||
# Checks to make sure that ImageMagick is installed on this computer and
|
# Checks to make sure that ImageMagick is installed on this computer and
|
||||||
# the image is NOT a (".jpeg", ".jfif", or ".jpg") image...
|
# the image is NOT a (".jpeg", ".jfif", or ".jpg") image...
|
||||||
# if not, then activate the Convert button?
|
# This allows you to Convert the nonjpeg image to a jpeg file...
|
||||||
if (_MAGICK_FOUND and self.extension not in [".jpeg", ".jpg", ".jfif"] ):
|
if (_MAGICK_FOUND and extension not in [".jpeg", ".jpg", ".jfif"] ):
|
||||||
self.activate_buttons(["Convert"])
|
self.activate_buttons(["Convert"])
|
||||||
|
|
||||||
# creates, and reads the plugin image instance...
|
# creates, and reads the plugin image instance...
|
||||||
@ -403,40 +412,28 @@ class EditExifMetadata(Gramplet):
|
|||||||
# Check for Thumbnails...
|
# Check for Thumbnails...
|
||||||
previews = self.plugin_image.previews
|
previews = self.plugin_image.previews
|
||||||
if (len(previews) > 0):
|
if (len(previews) > 0):
|
||||||
self.activate_buttons(["ThumbnailView"])
|
self.activate_buttons(["Thumbnail"])
|
||||||
|
|
||||||
# display all exif metadata...
|
# display all exif metadata...
|
||||||
self.display_metadata(_get_exif_keypairs(self.plugin_image) )
|
mediadatatags = _get_exif_keypairs(self.plugin_image)
|
||||||
|
self.set_has_data( len(mediadatatags) > 0)
|
||||||
|
if mediadatatags:
|
||||||
|
self.display_metadata(mediadatatags)
|
||||||
|
|
||||||
|
else:
|
||||||
|
# set Message Area to None...
|
||||||
|
self.exif_widgets["MessageArea"].set_text(_("No Exif metadata for this image..."))
|
||||||
|
|
||||||
|
# has mime, but not an image...
|
||||||
else:
|
else:
|
||||||
self.exif_widgets["MessageArea"].set_text(_("Please choose a different image..."))
|
self.exif_widgets["MessageArea"].set_text(_("Please choose a different image..."))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# has no mime...
|
||||||
else:
|
else:
|
||||||
self.exif_widgets["MessageArea"].set_text(_("Please choose a different image..."))
|
self.exif_widgets["MessageArea"].set_text(_("Please choose a different image..."))
|
||||||
return
|
return
|
||||||
|
|
||||||
def _setup_buttons(self, extension):
|
|
||||||
"""
|
|
||||||
disable all buttons...
|
|
||||||
* if file extension is NOT an exiv2 image type?
|
|
||||||
|
|
||||||
do NOT disable the Help button...
|
|
||||||
*** do NOT affect the sensitivity of the "Thumbnail", "Convert", "Delete" buttons
|
|
||||||
as they take care of themselves
|
|
||||||
"""
|
|
||||||
|
|
||||||
# _vtypes is a list of valid exiv2 image types...
|
|
||||||
# if False, then disable the buttons?
|
|
||||||
goodextension = (extension in _vtypes)
|
|
||||||
|
|
||||||
_EXCEPTIONS =["Help"]
|
|
||||||
if _MAGICK_FOUND:
|
|
||||||
_EXCEPTIONS.append(["Thumbnail", "Convert", "Delete"])
|
|
||||||
|
|
||||||
for widget, tooltip in _BUTTONTIPS.items():
|
|
||||||
if widget not in _EXCEPTIONS:
|
|
||||||
self.exif_widgets[widget].set_sensitive(goodextension)
|
|
||||||
|
|
||||||
def _setup_widget_tips(self, _ttypes):
|
def _setup_widget_tips(self, _ttypes):
|
||||||
"""
|
"""
|
||||||
set up widget tooltips...
|
set up widget tooltips...
|
||||||
@ -524,15 +521,9 @@ class EditExifMetadata(Gramplet):
|
|||||||
displays all of the image's Exif metadata in a grey-shaded tree view...
|
displays all of the image's Exif metadata in a grey-shaded tree view...
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if not metadatatags:
|
|
||||||
return
|
|
||||||
|
|
||||||
# set Message Area to Display...
|
# set Message Area to Display...
|
||||||
self.exif_widgets["MessageArea"].set_text(_("Displaying all Exif metadata keypairs..."))
|
self.exif_widgets["MessageArea"].set_text(_("Displaying all Exif metadata keypairs..."))
|
||||||
|
|
||||||
# activate clear and edit buttons...
|
|
||||||
self.activate_buttons(["Clear", "Edit"])
|
|
||||||
|
|
||||||
for KeyTag in metadatatags:
|
for KeyTag in metadatatags:
|
||||||
if LesserVersion: # prior to pyexiv2-0.2.0...
|
if LesserVersion: # prior to pyexiv2-0.2.0...
|
||||||
|
|
||||||
@ -544,7 +535,6 @@ class EditExifMetadata(Gramplet):
|
|||||||
else:
|
else:
|
||||||
human_value = self.plugin_image.interpretedExifValue(KeyTag)
|
human_value = self.plugin_image.interpretedExifValue(KeyTag)
|
||||||
else: # pyexiv2-0.2.0 and above...
|
else: # pyexiv2-0.2.0 and above...
|
||||||
human_value = False
|
|
||||||
try:
|
try:
|
||||||
tag = self.plugin_image[KeyTag]
|
tag = self.plugin_image[KeyTag]
|
||||||
|
|
||||||
@ -553,17 +543,20 @@ class EditExifMetadata(Gramplet):
|
|||||||
"Exif.Photo.DateTimeDigitized"):
|
"Exif.Photo.DateTimeDigitized"):
|
||||||
label = tag.label
|
label = tag.label
|
||||||
human_value = _format_datetime(tag.value)
|
human_value = _format_datetime(tag.value)
|
||||||
|
|
||||||
elif ("Xmp" in KeyTag or "Iptc" in KeyTag):
|
elif ("Xmp" in KeyTag or "Iptc" in KeyTag):
|
||||||
label = KeyTag
|
label = KeyTag
|
||||||
human_value = tag.value
|
human_value = tag.value
|
||||||
|
|
||||||
else:
|
else:
|
||||||
label = tag.label
|
label = tag.label
|
||||||
human_value = tag.human_value
|
human_value = tag.human_value
|
||||||
self.model.add((label, human_value))
|
self.model.add((label, human_value))
|
||||||
|
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def __create_button(self, pos, text, callback =[], icon =False, sensitive =False):
|
def __create_button(self, pos, text, callback =[], icon =False):
|
||||||
"""
|
"""
|
||||||
creates and returns a button for display
|
creates and returns a button for display
|
||||||
"""
|
"""
|
||||||
@ -577,8 +570,7 @@ class EditExifMetadata(Gramplet):
|
|||||||
for _call in callback:
|
for _call in callback:
|
||||||
button.connect("clicked", _call)
|
button.connect("clicked", _call)
|
||||||
|
|
||||||
if not sensitive:
|
# attach a addon widget to the button for manipulation...
|
||||||
button.set_sensitive(False)
|
|
||||||
self.exif_widgets[pos] = button
|
self.exif_widgets[pos] = button
|
||||||
|
|
||||||
return button
|
return button
|
||||||
@ -607,7 +599,7 @@ class EditExifMetadata(Gramplet):
|
|||||||
self.model.clear()
|
self.model.clear()
|
||||||
|
|
||||||
# De-activate the buttons except for Help...
|
# De-activate the buttons except for Help...
|
||||||
self.deactivate_buttons(["ThumbnailView"])
|
self.deactivate_buttons(["Thumbnail"])
|
||||||
|
|
||||||
if _MAGICK_FOUND:
|
if _MAGICK_FOUND:
|
||||||
self.deactivate_buttons(["Convert"])
|
self.deactivate_buttons(["Convert"])
|
||||||
@ -620,11 +612,11 @@ class EditExifMetadata(Gramplet):
|
|||||||
will allow a display area for a thumbnail pop-up window.
|
will allow a display area for a thumbnail pop-up window.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
tip = _("Click Close to close this ThumbnailView Viewing Area.")
|
tip = _("Click Close to close this Thumbnail Viewing Area.")
|
||||||
|
|
||||||
tbarea = gtk.Window(gtk.WINDOW_TOPLEVEL)
|
tbarea = gtk.Window(gtk.WINDOW_TOPLEVEL)
|
||||||
tbarea.tooltip = tip
|
tbarea.tooltip = tip
|
||||||
tbarea.set_title(_("ThumbnailView Viewing Area"))
|
tbarea.set_title(_("Thumbnail Viewing Area"))
|
||||||
tbarea.set_default_size(250, 200)
|
tbarea.set_default_size(250, 200)
|
||||||
tbarea.set_border_width(10)
|
tbarea.set_border_width(10)
|
||||||
|
|
||||||
@ -633,7 +625,7 @@ class EditExifMetadata(Gramplet):
|
|||||||
# extract the thumbnail data
|
# extract the thumbnail data
|
||||||
previews = self.plugin_image.previews
|
previews = self.plugin_image.previews
|
||||||
if not previews:
|
if not previews:
|
||||||
print(_("This image doesn't contain any ThumbnailViews..."))
|
print(_("This image doesn't contain any Thumbnails..."))
|
||||||
tbarea.destroy()
|
tbarea.destroy()
|
||||||
else:
|
else:
|
||||||
|
|
||||||
@ -727,9 +719,18 @@ class EditExifMetadata(Gramplet):
|
|||||||
def deactivate_buttons(self, ButtonList):
|
def deactivate_buttons(self, ButtonList):
|
||||||
"""
|
"""
|
||||||
disable/ de-activate buttons in ButtonList
|
disable/ de-activate buttons in ButtonList
|
||||||
|
|
||||||
|
*** if All, then disable ALL buttons in the current display...
|
||||||
"""
|
"""
|
||||||
for ButtonName in ButtonList:
|
|
||||||
self.exif_widgets[ButtonName].set_sensitive(False)
|
if ButtonList == ["All"]:
|
||||||
|
for widget, tooltip in _BUTTONTIPS.items():
|
||||||
|
if widget is not "Help":
|
||||||
|
self.exif_widgets[widget].set_sensitive(False)
|
||||||
|
|
||||||
|
else:
|
||||||
|
for widgetsName in ButtonList:
|
||||||
|
self.exif_widgets[widgetsName].set_sensitive(False)
|
||||||
|
|
||||||
def active_buttons(self, obj):
|
def active_buttons(self, obj):
|
||||||
"""
|
"""
|
||||||
@ -755,6 +756,11 @@ class EditExifMetadata(Gramplet):
|
|||||||
if not self.exif_widgets["Delete"].get_sensitive():
|
if not self.exif_widgets["Delete"].get_sensitive():
|
||||||
self.activate_buttons(["Delete"])
|
self.activate_buttons(["Delete"])
|
||||||
|
|
||||||
|
# if Save is in the list of button tooltips, then check it too?
|
||||||
|
if "Save" in BUTTONTIPS.keys():
|
||||||
|
if not self.exif_widgets["Save"].get_sensitive():
|
||||||
|
self.activate_buttons(["Save"])
|
||||||
|
|
||||||
def display_edit_window(self, obj):
|
def display_edit_window(self, obj):
|
||||||
"""
|
"""
|
||||||
creates the editing area fields.
|
creates the editing area fields.
|
||||||
@ -916,6 +922,15 @@ class EditExifMetadata(Gramplet):
|
|||||||
|
|
||||||
index += 1
|
index += 1
|
||||||
|
|
||||||
|
new_hbox = gtk.HBox(False, 0)
|
||||||
|
datetime_frame.add(new_hbox)
|
||||||
|
new_vbox.show()
|
||||||
|
|
||||||
|
label = gtk.Label()
|
||||||
|
new_hbox.pack_start(label, expand =False, fill =False, padding =10)
|
||||||
|
label.show()
|
||||||
|
self.exif_widgets["DateOriginal"] = label
|
||||||
|
|
||||||
# GPS Coordinates...
|
# GPS Coordinates...
|
||||||
latlong_frame = gtk.Frame(_("Latitude/ Longitude/ Altitude GPS Coordinates"))
|
latlong_frame = gtk.Frame(_("Latitude/ Longitude/ Altitude GPS Coordinates"))
|
||||||
latlong_frame.set_size_request(460, 100)
|
latlong_frame.set_size_request(460, 100)
|
||||||
@ -973,23 +988,23 @@ class EditExifMetadata(Gramplet):
|
|||||||
|
|
||||||
# Help button...
|
# Help button...
|
||||||
button = self.__create_button(
|
button = self.__create_button(
|
||||||
"Help", False, [self.__help_page], gtk.STOCK_HELP, True)
|
"Help", False, [self.__help_page], gtk.STOCK_HELP)
|
||||||
hscc_box.add(button)
|
hscc_box.add(button)
|
||||||
button.show()
|
button.show()
|
||||||
|
|
||||||
# Save button...
|
# Save button...
|
||||||
button = self.__create_button("Save", False, [self.save_metadata, self.update,
|
button = self.__create_button("Save", False, [self.save_metadata, self.update,
|
||||||
self.display_metadata], gtk.STOCK_SAVE, True)
|
self.display_metadata], gtk.STOCK_SAVE)
|
||||||
hscc_box.add(button)
|
hscc_box.add(button)
|
||||||
button.show()
|
button.show()
|
||||||
|
|
||||||
# Clear button...
|
# Clear button...
|
||||||
button = self.__create_button("Clear", False, [self.clear_edit_area], gtk.STOCK_CLEAR, True)
|
button = self.__create_button("Clear", False, [self.clear_edit_area], gtk.STOCK_CLEAR)
|
||||||
hscc_box.add(button)
|
hscc_box.add(button)
|
||||||
button.show()
|
button.show()
|
||||||
|
|
||||||
# Close button...
|
# Close button...
|
||||||
button = self.__create_button("Close", False, [lambda w: self.edtarea.destroy()], gtk.STOCK_CLOSE, True)
|
button = self.__create_button("Close", False, [lambda w: self.edtarea.destroy()], gtk.STOCK_CLOSE)
|
||||||
hscc_box.add(button)
|
hscc_box.add(button)
|
||||||
button.show()
|
button.show()
|
||||||
|
|
||||||
@ -1051,7 +1066,7 @@ class EditExifMetadata(Gramplet):
|
|||||||
self.exif_widgets[widget].set_text("")
|
self.exif_widgets[widget].set_text("")
|
||||||
|
|
||||||
# De-activate the buttons except for Help...
|
# De-activate the buttons except for Help...
|
||||||
self.deactivate_buttons(["ThumbnailView"])
|
self.deactivate_buttons(["Thumbnail"])
|
||||||
|
|
||||||
if _MAGICK_FOUND:
|
if _MAGICK_FOUND:
|
||||||
self.deactivate_buttons(["Convert"])
|
self.deactivate_buttons(["Convert"])
|
||||||
@ -1081,12 +1096,12 @@ class EditExifMetadata(Gramplet):
|
|||||||
displays the image Exif metadata in the Edit Area...
|
displays the image Exif metadata in the Edit Area...
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# update has_data()
|
||||||
|
self.set_has_data( len(MediaDataTags) > 0)
|
||||||
|
|
||||||
# if no Exif metadata, disable the has_data() functionality?
|
# if no Exif metadata, disable the has_data() functionality?
|
||||||
if MediaDataTags:
|
if MediaDataTags:
|
||||||
|
|
||||||
# update has_data() functionality...
|
|
||||||
self.update_has_data()
|
|
||||||
|
|
||||||
# activate Save button...
|
# activate Save button...
|
||||||
self.activate_buttons(["Save"])
|
self.activate_buttons(["Save"])
|
||||||
|
|
||||||
@ -1118,7 +1133,7 @@ class EditExifMetadata(Gramplet):
|
|||||||
date1 = self._get_value(_DATAMAP["Original"])
|
date1 = self._get_value(_DATAMAP["Original"])
|
||||||
date2 = self._get_value(_DATAMAP["Digitized"])
|
date2 = self._get_value(_DATAMAP["Digitized"])
|
||||||
date3 = self.orig_image.get_date_object()
|
date3 = self.orig_image.get_date_object()
|
||||||
use_date = date1 or date3 or date3 or False
|
use_date = date1 or date2 or date3
|
||||||
if use_date:
|
if use_date:
|
||||||
if isinstance(use_date, str):
|
if isinstance(use_date, str):
|
||||||
use_date = _get_date_format(use_date)
|
use_date = _get_date_format(use_date)
|
||||||
@ -1136,15 +1151,8 @@ class EditExifMetadata(Gramplet):
|
|||||||
# update Date/ Time spin buttons...
|
# update Date/ Time spin buttons...
|
||||||
self.update_spinners(year, month, day, hour, minutes, seconds)
|
self.update_spinners(year, month, day, hour, minutes, seconds)
|
||||||
|
|
||||||
use_date = False
|
use_date = _create_datetime(year, month, day, hour, minutes, seconds)
|
||||||
if year < 1900:
|
self.exif_widgets["DateOriginal"].set_text( _format_datetime(use_date) )
|
||||||
use_date = "%04d-%s-%02d %02d:%02d:%02d" % (
|
|
||||||
year, _dd.long_months[month], day, hour, minutes, seconds)
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
use_date = datetime(year, month, day, hour, minutes, seconds)
|
|
||||||
except ValueError:
|
|
||||||
use_date = False
|
|
||||||
|
|
||||||
# LatitudeRef, Latitude, LongitudeRef, Longitude...
|
# LatitudeRef, Latitude, LongitudeRef, Longitude...
|
||||||
elif widgetsName == "Latitude":
|
elif widgetsName == "Latitude":
|
||||||
@ -1696,24 +1704,24 @@ def rational_to_dms(coords):
|
|||||||
|
|
||||||
return deg, min, sec
|
return deg, min, sec
|
||||||
|
|
||||||
def _format_datetime(exif_date):
|
def _format_datetime(exif_dt):
|
||||||
"""
|
"""
|
||||||
Convert a python datetime object into a string for display, using the
|
Convert a python datetime object into a string for display, using the
|
||||||
standard Gramps date format.
|
standard Gramps date format.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if type(exif_date) is not datetime:
|
if type(exif_dt) is not datetime:
|
||||||
return exif_date
|
return exif_dt
|
||||||
|
|
||||||
date_part = gen.lib.Date()
|
date_part = gen.lib.Date()
|
||||||
date_part.set_yr_mon_day(exif_date.year, exif_date.month, exif_date.day)
|
date_part.set_yr_mon_day(exif_dt.year, exif_dt.month, exif_dt.day)
|
||||||
date_str = _dd.display(date_part)
|
date_str = _dd.display(date_part)
|
||||||
|
|
||||||
if exif_date.year < 1900:
|
if exif_dt.year < 1900:
|
||||||
split_time = "%02d:%02d:%02d" % (exif_date.hour, exif_date.minute, exif_date.second)
|
split_time = "%02d:%02d:%02d" % (exif_dt.hour, exif_dt.minute, exif_dt.second)
|
||||||
time_str = split_time.strftime('%H:%M:%S')
|
time_str = split_time.strftime('%H:%M:%S')
|
||||||
else:
|
else:
|
||||||
time_str = exif_date.strftime('%H:%M:%S')
|
time_str = exif_dt.strftime('%H:%M:%S')
|
||||||
|
|
||||||
return _('%(date)s %(time)s') % {'date': date_str, 'time': time_str}
|
return _('%(date)s %(time)s') % {'date': date_str, 'time': time_str}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user