phatch-dev team mailing list archive
-
phatch-dev team
-
Mailing list archive
-
Message #00074
[Bug 383140] Re: Notifications should not appear when cancel is pressed
$ bzr commit -m "fix notifications"
Committing to: /home/stani/sync/python/phatch/trunk/
modified phatch/core/api.py
modified phatch/core/message.py
modified phatch/pyWx/gui.py
Committed revision 656.
$ bzr diff
=== modified file 'phatch/core/api.py'
--- phatch/core/api.py 2009-06-05 18:01:30 +0000
+++ phatch/core/api.py 2009-06-05 19:09:48 +0000
@@ -19,8 +19,14 @@
#---import modules
#standard library
-import codecs, cPickle, os, pprint, time, traceback
+import codecs
+import cPickle
+import os
+import pprint
+import time
+import traceback
from cStringIO import StringIO
+from datetime import timedelta
#gui-independent
from core import ct, pil
@@ -30,6 +36,9 @@
from unicoding import ensure_unicode, exception_to_unicode, ENCODING
from formField import ensure_path
+#---constants
+SEE_LOG = _('See Tools>Show Log for more details.')
+
#---classes
class PathError(Exception):
@@ -348,6 +357,7 @@
}
#Execute action list
+ image_amount = len(image_files)
actions_amount = len(actions) + 1 #open image is extra action
cache = {}
is_done = actions[-1].is_done #checking method for resuming
@@ -355,11 +365,11 @@
#Start progress dialog
send.frame_show_progress( title = _("Executing action list"),
- parent_max = len(image_files),
+ parent_max = image_amount,
child_max = actions_amount,
message = '',
)
-
+ start = time.time()
for image_index, (folder,image_file) in enumerate(image_files):
#update image file & progress dialog box
progress_result = {}
@@ -400,6 +410,25 @@
flush_log(photo, image_file, action)
del photo, progress_result, action_index, action
send.progress_close()
+ #mention amount of photos and duration
+ delta = time.time()-start
+ duration = timedelta(seconds=int(delta)+48)
+ if image_amount == 1:
+ message = _('One photo done in %s')%duration
+ else:
+ message = _('%d photos done in %s')\
+ %(image_amount,duration)
+ #add error status
+ if ERROR_LOG_COUNTER == 1:
+ message += '\n'+_('One issue was logged')
+ elif ERROR_LOG_COUNTER:
+ message += '\n'+_('%d issues were logged')\
+ %ERROR_LOG_COUNTER
+ send.frame_show_notification(message)
+ if ERROR_LOG_COUNTER == 0:
+ send.frame_show_info(message)
+ else:
+ send.frame_show_message('%s\n\n%s'%(message,SEE_LOG))
#---common
import glob
=== modified file 'phatch/core/message.py'
--- phatch/core/message.py 2008-04-05 19:23:49 +0000
+++ phatch/core/message.py 2009-06-05 19:08:14 +0000
@@ -33,6 +33,9 @@
self.subscribe('show_execute_dialog')
self.subscribe('show_error')
self.subscribe('show_files_message')
+ self.subscribe('show_info')
+ self.subscribe('show_message')
+ self.subscribe('show_notification')
self.subscribe('show_progress')
self.subscribe('show_progress_error')
self.subscribe('show_scrolled_message')
=== modified file 'phatch/pyWx/gui.py'
--- phatch/pyWx/gui.py 2009-06-05 13:59:16 +0000
+++ phatch/pyWx/gui.py 2009-06-05 19:17:40 +0000
@@ -30,8 +30,6 @@
#import
import new
import sys
-import time
-from datetime import timedelta
#check wx
from wxcheck import ensure
@@ -142,7 +140,7 @@
dlg = dialogs.ProgressDialog(self,title,parent_max,child_max,message)
def show_progress_error(self,result,message,ignore=True):
- message += '\n\n'+_('See Tools>Show Log for more details.')
+ message += '\n\n'+api.SEE_LOG
errorDlg = dialogs.ErrorDialog(self,message,ignore)
answer = errorDlg.ShowModal()
result['stop_for_errors'] = not errorDlg.future_errors.GetValue()
@@ -160,6 +158,17 @@
**keyw)
dlg.ShowModal()
+ def show_notification(self,message,force=False):
+ active = wx.GetApp().IsActive()
+ if force or not active:
+ notify.send(
+ title = api.title(self.filename),
+ message = message,
+ icon = self.get_icon_filename(),
+ wxicon = graphics.bitmap(images.ICON64))
+ if not active:
+ self.RequestUserAttention()
+
#---settings
def get_setting(self,name):
return wx.GetApp().settings[name]
@@ -192,20 +201,7 @@
#---notification
def _execute(self, actionlist, **keyw):
- start = time.time()
api.apply_actions(actionlist,wx.GetApp().settings,**keyw)
- message = _('Action list done in %s.')\
- %timedelta(seconds=int(time.time()-start)+48)
- if api.ERROR_LOG_COUNTER == 1:
- message += '\n'+_('One issue was logged.')
- elif api.ERROR_LOG_COUNTER:
- message += '\n'+_('%d issues were logged.')\
- %api.ERROR_LOG_COUNTER
- notify.send(
- title = api.title(self.filename),
- message = message,
- icon = self.get_icon_filename(),
- wxicon = graphics.bitmap(images.ICON64))
def get_icon_filename(self):
if self._icon_filename == None:
** Changed in: phatch
Status: In Progress => Fix Committed
--
Notifications should not appear when cancel is pressed
https://bugs.launchpad.net/bugs/383140
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:
The notification code should be embedded inside the apply_actions method.
References