phatch-dev team mailing list archive
-
phatch-dev team
-
Mailing list archive
-
Message #00135
[Bug 384974] Re: Error dialog buttons don't behave properly when flushing metadata
Very good bug report, thanks! Luckily it was only for metadata saving,
not for regular actions.
$ bzr diff
=== modified file 'phatch/core/api.py'
--- phatch/core/api.py 2009-06-08 18:55:29 +0000
+++ phatch/core/api.py 2009-06-09 14:43:36 +0000
@@ -291,8 +291,14 @@
def flush_metadata(photo,image_file,result):
try:
photo.flush_metadata()
+ result['skip'] = False
+ result['abort'] = False
+ #log non fatal errors/warnings
+ flush_log(photo, image_file)
+ return photo, result
except Exception, details:
- folder, image = os.path.split(ensure_unicode(image_file))
+ photo.metadata = {}
+ folder, image = os.path.split(ensure_unicode(image_file))
reason = exception_to_unicode(details)
message = u'%s\n%s\n\n%s'%(
_("Can not write metadata to image '%s' in folder:")%image,
@@ -301,7 +307,6 @@
)
return process_error(photo,message,image_file,action=None,
result=result,ignore=True)
- flush_log(photo, image_file)
def apply_action(action,photo,setting,cache,image_file,result):
@@ -321,8 +326,8 @@
folder,
reason,
)
- ignore = True
- return process_error(photo,message,image_file,action,result,ignore)
+ return process_error(photo,message,image_file,action,
+ result,ignore=True)
def apply_actions(actions,settings,paths=None,drop=False):
"""Do all the actions."""
@@ -407,7 +412,10 @@
#do the actions
for action_index, action in enumerate(actions):
if action.flush_metadata_before:
- flush_metadata(photo,image_file,result)
+ photo, result = flush_metadata(photo,image_file,result)
+ if result['abort']: return
+ elif result['skip']:
+ break
#update progress
progress_result = {}
send.progress_update_index(progress_result,image_index,action_index)
@@ -421,9 +429,9 @@
if result['abort']: return
elif result['skip']:
break
- flush_metadata(photo,image_file,result)
- flush_log(photo, image_file, action)
+ photo, result = flush_metadata(photo,image_file,result)
del photo, progress_result, action_index, action
+ if result['abort']: return
send.progress_close()
#mention amount of photos and duration
delta = time.time()-start
=== modified file 'phatch/core/lib/_pyexiv2.py'
--- phatch/core/lib/_pyexiv2.py 2009-06-09 13:56:09 +0000
+++ phatch/core/lib/_pyexiv2.py 2009-06-09 14:02:24 +0000
@@ -145,7 +145,7 @@
if ext:
format = ext.upper()
if (format and not(format in WRITE_EXIF+WRITE_IPTC)):
- return 'pyexiv2: writing metadata to %s is not supported'%format
+ raise Exception('pyexiv2: writing metadata to %s is not supported'%format)
image = pyexiv2.Image(path)
image.readMetadata()
warnings = []
=== modified file 'phatch/core/pil.py'
--- phatch/core/pil.py 2009-06-09 04:21:16 +0000
+++ phatch/core/pil.py 2009-06-09 13:58:48 +0000
@@ -434,7 +434,8 @@
#throw an error if pyexiv2 is not installed
if not exif:
raise ImportError(NEEDS_PYEXIV2)
- self.log += exif.flush(self.info['path'],self.metadata)
+ self.log += exif.flush(self.info['path'],self.metadata,
+ self.info['Pil.Format'])
#as metadata has changed, use new source
self.metadata = {}
$ bzr commit -m "fixing error dialog buttons for metadata"
Committing to: /home/stani/sync/python/phatch/trunk/
modified phatch/core/api.py
modified phatch/core/pil.py
modified phatch/core/lib/_pyexiv2.py
Committed revision 709.
** Summary changed:
- Error dialog buttons don't behave properly
+ Error dialog buttons don't behave properly when flushing metadata
** Changed in: phatch
Status: In Progress => Fix Committed
--
Error dialog buttons don't behave properly when flushing metadata
https://bugs.launchpad.net/bugs/384974
You received this bug notification because you are a member of Phatch
Developers, which is subscribed to Phatch.
Status in Phatch = Photo & Batch!: Fix Committed
Bug description:
One more thing. After the error the execution is aborted even if I select 'Skip to Next image' and there are hundreds of other images to process.
References