Fixed and updated the 'Select Date' button to work properly with the spin buttons for the Date/ Time.
svn: r17524
This commit is contained in:
parent
21bb57478a
commit
62bafc0491
@ -141,7 +141,22 @@ if not _JHEAD_FOUND:
|
||||
_vtypes = [".jpeg", ".jpg", ".jfif", ".exv", ".tiff", ".dng", ".nef", ".pef", ".pgf",
|
||||
".png", ".psd", ".jp2"]
|
||||
|
||||
# define tooltips for all entries
|
||||
# set up Exif keys for Image.exif_keys
|
||||
_DATAMAP = {
|
||||
"Exif.Image.ImageDescription" : "Description",
|
||||
"Exif.Image.DateTime" : "Modified",
|
||||
"Exif.Image.Artist" : "Artist",
|
||||
"Exif.Image.Copyright" : "Copyright",
|
||||
"Exif.Photo.DateTimeOriginal" : "Original",
|
||||
"Exif.Photo.DateTimeDigitized" : "Digitized",
|
||||
"Exif.GPSInfo.GPSLatitudeRef" : "LatitudeRef",
|
||||
"Exif.GPSInfo.GPSLatitude" : "Latitude",
|
||||
"Exif.GPSInfo.GPSLongitudeRef" : "LongitudeRef",
|
||||
"Exif.GPSInfo.GPSLongitude" : "Longitude"}
|
||||
_DATAMAP = dict( (key, val) for key, val in _DATAMAP.items() )
|
||||
_DATAMAP.update( (val, key) for key, val in _DATAMAP.items() )
|
||||
|
||||
# define tooltips for all data entry fields...
|
||||
_TOOLTIPS = {
|
||||
|
||||
"Description" : _("Provide a short descripion for this image."),
|
||||
@ -160,43 +175,28 @@ _TOOLTIPS = {
|
||||
"Longitude" : _("Enter the GPS Longitude Coordinates for your image,\n"
|
||||
"Example: 10.396378, 10 23 46 E, 105° 6′ 6″ W, -105 6 6") }.items()
|
||||
|
||||
# set up Exif keys for Image.exif_keys
|
||||
_DATAMAP = {
|
||||
"Exif.Image.ImageDescription" : "Description",
|
||||
"Exif.Image.DateTime" : "Modified",
|
||||
"Exif.Image.Artist" : "Artist",
|
||||
"Exif.Image.Copyright" : "Copyright",
|
||||
"Exif.Photo.DateTimeOriginal" : "Original",
|
||||
"Exif.Photo.DateTimeDigitized" : "Digitized",
|
||||
"Exif.GPSInfo.GPSLatitudeRef" : "LatitudeRef",
|
||||
"Exif.GPSInfo.GPSLatitude" : "Latitude",
|
||||
"Exif.GPSInfo.GPSLongitudeRef" : "LongitudeRef",
|
||||
"Exif.GPSInfo.GPSLongitude" : "Longitude"}
|
||||
_DATAMAP = dict( (key, val) for key, val in _DATAMAP.items() )
|
||||
_DATAMAP.update( (val, key) for key, val in _DATAMAP.items() )
|
||||
|
||||
# Toolt tips for the buttons in the gramplet...
|
||||
# define tooltips for all buttons...
|
||||
_BUTTONTIPS = {
|
||||
|
||||
# Clear Edit Area button...
|
||||
"Clear" : _("Clears the Exif metadata from the Edit area."),
|
||||
"Clear" : _("Clears the Exif metadata from the Edit area."),
|
||||
|
||||
# Calendar date select button...
|
||||
"Popup:Select" : _("Allows you to select a date from a Popup window Calendar. \n"
|
||||
"Popup:Select" : _("Allows you to select a date from a Popup window Calendar. \n"
|
||||
"Warning: You will still need to edit the time..."),
|
||||
|
||||
# Thumbnail Viewing Window button...
|
||||
"ThumbnailView" : _("Will produce a Popup window showing a Thumbnail Viewing Area"),
|
||||
"ThumbnailView" : _("Will produce a Popup window showing a Thumbnail Viewing Area"),
|
||||
|
||||
# Wiki Help button...
|
||||
"Help" : _("Displays the Gramps Wiki Help page for 'Edit Image Exif Metadata' "
|
||||
"Help" : _("Displays the Gramps Wiki Help page for 'Edit Image Exif Metadata' "
|
||||
"in your web browser."),
|
||||
|
||||
# Advanced Display Window button...
|
||||
"Advanced" : _("Will pop open a window with all of the Exif metadata Key/alue pairs."),
|
||||
"Advanced" : _("Will pop open a window with all of the Exif metadata Key/alue pairs."),
|
||||
|
||||
# Save Exif Metadata button...
|
||||
"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...") }
|
||||
|
||||
# if ImageMagick is installed on this computer then, add button tooltips for Convert button...
|
||||
@ -204,14 +204,14 @@ if _MAGICK_FOUND:
|
||||
_BUTTONTIPS.update( {
|
||||
|
||||
# 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?") } )
|
||||
|
||||
# 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" : _("WARNING: This will completely erase all Exif metadata "
|
||||
"Delete" : _("WARNING: This will completely erase all Exif metadata "
|
||||
"from this image! Are you sure that you want to do this?") } )
|
||||
|
||||
def _help_page(obj):
|
||||
@ -221,29 +221,6 @@ def _help_page(obj):
|
||||
|
||||
GrampsDisplay.help(webpage = "Edit Image Exif Metadata")
|
||||
|
||||
_allmonths = list([_dd.short_months[i], _dd.long_months[i], i] for i in range(1, 13))
|
||||
|
||||
def _return_month(month):
|
||||
"""
|
||||
returns either an integer of the month number or the abbreviated month name
|
||||
|
||||
@param: rmonth -- can be one of:
|
||||
10, "10", "Oct", or "October"
|
||||
"""
|
||||
|
||||
try:
|
||||
month = int(month)
|
||||
|
||||
except ValueError:
|
||||
for sm, lm, index in _allmonths:
|
||||
if month == sm or month == lm:
|
||||
month = int(index)
|
||||
break
|
||||
elif str(month) == index:
|
||||
month = lm
|
||||
break
|
||||
return month
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
# Gramplet class
|
||||
# ------------------------------------------------------------------------
|
||||
@ -368,7 +345,7 @@ class EditExifMetadata(Gramplet):
|
||||
label.set_alignment(0, 0.5)
|
||||
vbox2.pack_start(label, expand =False, fill =True, padding =0)
|
||||
|
||||
adj = gtk.Adjustment(value=now[0], lower=1826, upper=2100, step_incr=1.0, page_incr=100)
|
||||
adj = gtk.Adjustment(value=now[0], lower=1826, upper=2100, step_incr=1, page_incr=100)
|
||||
vbox2.pack_start(self.__create_spinner(
|
||||
"Year", adj, False, False), expand =False, fill =True, padding =0)
|
||||
|
||||
@ -379,7 +356,7 @@ class EditExifMetadata(Gramplet):
|
||||
label.set_alignment(0, 0.5)
|
||||
vbox2.pack_start(label, expand =False, fill =True, padding =0)
|
||||
|
||||
adj = gtk.Adjustment(value=now[1], lower=1.0, upper=12.0, step_incr=1.0, page_incr=5.0, page_size=0.0)
|
||||
adj = gtk.Adjustment(value=now[1], lower=1, upper=12, step_incr=1, page_incr=5)
|
||||
vbox2.pack_start(self.__create_spinner(
|
||||
"Month", adj), expand =False, fill =True, padding =0)
|
||||
|
||||
@ -390,7 +367,7 @@ class EditExifMetadata(Gramplet):
|
||||
label.set_alignment(0, 0.5)
|
||||
vbox2.pack_start(label, expand =False, fill =True, padding =0)
|
||||
|
||||
adj = gtk.Adjustment(value=now[2], lower=1.0, upper=31.0, step_incr=1.0, page_incr=5.0, page_size=0.0)
|
||||
adj = gtk.Adjustment(value=now[2], lower=1, upper=31, step_incr=1, page_incr=5)
|
||||
vbox2.pack_start(self.__create_spinner(
|
||||
"Day", adj), expand =False, fill =True, padding =0)
|
||||
|
||||
@ -412,7 +389,7 @@ class EditExifMetadata(Gramplet):
|
||||
label.set_alignment(0, 0.5)
|
||||
vbox2.pack_start(label, expand =False, fill =True, padding =0)
|
||||
|
||||
adj = gtk.Adjustment(value=now[3], lower=0, upper=23, step_incr=1, page_incr=5, page_size=0.0)
|
||||
adj = gtk.Adjustment(value=now[3], lower=0, upper=23, step_incr=1, page_incr=5)
|
||||
vbox2.pack_start(self.__create_spinner(
|
||||
"Hour", adj), expand =False, fill =True, padding =0)
|
||||
|
||||
@ -423,7 +400,7 @@ class EditExifMetadata(Gramplet):
|
||||
label.set_alignment(0, 0.5)
|
||||
vbox2.pack_start(label, expand =False, fill =True, padding =0)
|
||||
|
||||
adj = gtk.Adjustment(value=now[4], lower=0, upper=59, step_incr=1, page_incr=5.0, page_size=0.0)
|
||||
adj = gtk.Adjustment(value=now[4], lower=0, upper=59, step_incr=1, page_incr=5)
|
||||
vbox2.pack_start(self.__create_spinner(
|
||||
"Minutes", adj), expand =False, fill =True, padding =0)
|
||||
|
||||
@ -434,7 +411,7 @@ class EditExifMetadata(Gramplet):
|
||||
label.set_alignment(0, 0.5)
|
||||
vbox2.pack_start(label, expand =False, fill =True, padding =0)
|
||||
|
||||
adj = gtk.Adjustment(value=now[5], lower=0, upper=59, step_incr=1.0, page_incr=5.0, page_size=0.0)
|
||||
adj = gtk.Adjustment(value=now[5], lower=0, upper=59, step_incr=1, page_incr=5)
|
||||
vbox2.pack_start(self.__create_spinner(
|
||||
"Seconds", adj), expand =False, fill =True, padding =0)
|
||||
|
||||
@ -896,32 +873,23 @@ class EditExifMetadata(Gramplet):
|
||||
if isinstance(use_date, str):
|
||||
use_date = _get_date_format(use_date)
|
||||
if use_date:
|
||||
year, month, day, hour, mins, secs = use_date[0:6]
|
||||
year, month, day, hour, minutes, seconds = use_date[0:6]
|
||||
elif isinstance(use_date, datetime):
|
||||
year, month, day = use_date.year, use_date.month, use_date.day
|
||||
hour, mins, secs = use_date.hour, use_date.minute, use_date.second
|
||||
hour, minutes, seconds = use_date.hour, use_date.minute, use_date.second
|
||||
else:
|
||||
year = False
|
||||
if year:
|
||||
|
||||
# split the date/ time into its six pieces...
|
||||
for widget, value in {
|
||||
"Year" : year,
|
||||
"Month" : month,
|
||||
"Day" : day,
|
||||
"Hour" : hour,
|
||||
"Minutes" : mins,
|
||||
"Seconds" : secs}.items():
|
||||
|
||||
# set the date/ time spin buttons...
|
||||
self.exif_widgets[widget].set_value(value)
|
||||
# update Date/ Time spin buttons...
|
||||
self.update_spinners(year, month, day, hour, minutes, seconds)
|
||||
|
||||
use_date = False
|
||||
if year < 1900:
|
||||
use_date = "%04d-%s-%02d %02d:%02d:%02d" % (
|
||||
year, _dd.long_months[month], day, hour, mins, secs)
|
||||
year, _dd.long_months[month], day, hour, minutes, seconds)
|
||||
else:
|
||||
use_date = datetime(year, month, day, hour, mins, secs)
|
||||
use_date = datetime(year, month, day, hour, minutes, seconds)
|
||||
if use_date:
|
||||
if isinstance(use_date, datetime):
|
||||
use_date = _format_datetime(use_date)
|
||||
@ -1437,9 +1405,36 @@ class EditExifMetadata(Gramplet):
|
||||
|
||||
year, month, day = self.exif_widgets["Calendar"].get_date()
|
||||
|
||||
# month has to be increased by one to make it work correctly...
|
||||
month += 1
|
||||
|
||||
hour, minutes, seconds = now[3:6]
|
||||
|
||||
# close this window
|
||||
self.app.destroy()
|
||||
|
||||
# update Date/ Time spin buttons...
|
||||
self.update_spinners(year, month, day, hour, minutes, seconds)
|
||||
|
||||
def update_spinners(self, year, month, day, hour, minutes, seconds):
|
||||
"""
|
||||
update Date/ Time spinners
|
||||
"""
|
||||
|
||||
# split the date/ time into its six pieces...
|
||||
datetimevalues = {
|
||||
"Year" : year,
|
||||
"Month" : month,
|
||||
"Day" : day,
|
||||
"Hour" : hour,
|
||||
"Minutes" : minutes,
|
||||
"Seconds" : seconds}.items()
|
||||
|
||||
for widget, value in datetimevalues:
|
||||
|
||||
# set the date/ time spin buttons...
|
||||
self.exif_widgets[widget].set_value(value)
|
||||
|
||||
def thumbnail_view(self, obj):
|
||||
"""
|
||||
will allow a display area for a thumbnail pop-up window.
|
||||
|
Loading…
Reference in New Issue
Block a user