$ 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:
$ bzr commit -m "fix notifications" sync/python/ phatch/ trunk/ core/message. py
Committing to: /home/stani/
modified phatch/core/api.py
modified phatch/
modified phatch/pyWx/gui.py
Committed revision 656.
$ bzr diff core/api. py'
=== modified file 'phatch/
--- 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 to_unicode, ENCODING
from core import ct, pil
@@ -30,6 +36,9 @@
from unicoding import ensure_unicode, exception_
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 frame_show_ progress( title = _("Executing action list"),
child_ max = actions_amount,
message = '',
) image_files) :
progress_ result = {}
flush_ log(photo, image_file, action) progress_ close() seconds= int(delta) +48) amount, duration) show_notificati on(message) show_info( message) show_message( '%s\n\n% s'%(message, SEE_LOG) )
send.
- parent_max = len(image_files),
+ parent_max = image_amount,
-
+ start = time.time()
for image_index, (folder,image_file) in enumerate(
#update image file & progress dialog box
@@ -400,6 +410,25 @@
del photo, progress_result, action_index, action
send.
+ #mention amount of photos and duration
+ delta = time.time()-start
+ duration = timedelta(
+ if image_amount == 1:
+ message = _('One photo done in %s')%duration
+ else:
+ message = _('%d photos done in %s')\
+ %(image_
+ #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_
+ if ERROR_LOG_COUNTER == 0:
+ send.frame_
+ else:
+ send.frame_
#---common
import glob
=== modified file 'phatch/ core/message. py' core/message. py 2008-04-05 19:23:49 +0000 core/message. py 2009-06-05 19:08:14 +0000
self. subscribe( 'show_execute_ dialog' )
self. subscribe( 'show_error' )
self. subscribe( 'show_files_ message' ) 'show_info' ) 'show_message' ) 'show_notificat ion')
self. subscribe( 'show_progress' )
self. subscribe( 'show_progress_ error')
self. subscribe( 'show_scrolled_ message' )
--- phatch/
+++ phatch/
@@ -33,6 +33,9 @@
+ self.subscribe(
+ self.subscribe(
+ self.subscribe(
=== 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 ProgressDialog( self,title, parent_ max,child_ max,message)
from wxcheck import ensure
@@ -142,7 +140,7 @@
dlg = dialogs.
def show_progress_ error(self, result, message, ignore= True): ErrorDialog( self,message, ignore) ShowModal( )
result[ 'stop_for_ errors' ] = not errorDlg. future_ errors. GetValue( )
**keyw)
dlg.ShowModal ()
- message += '\n\n'+_('See Tools>Show Log for more details.')
+ message += '\n\n'+api.SEE_LOG
errorDlg = dialogs.
answer = errorDlg.
@@ -160,6 +158,17 @@
+ def show_notificati on(self, message, force=False) : ).IsActive( ) self.filename) , icon_filename( ), bitmap( images. ICON64) ) rAttention( ) self,name) : ).settings[ name]
+ active = wx.GetApp(
+ if force or not active:
+ notify.send(
+ title = api.title(
+ message = message,
+ icon = self.get_
+ wxicon = graphics.
+ if not active:
+ self.RequestUse
+
#---settings
def get_setting(
return wx.GetApp(
@@ -192,20 +201,7 @@
#- --notification
api.apply_ actions( actionlist, wx.GetApp( ).settings, **keyw) seconds= int(time. time()- start)+ 48) LOG_COUNTER == 1: LOG_COUNTER: LOG_COUNTER self.filename) , icon_filename( ), bitmap( images. ICON64) )
def _execute(self, actionlist, **keyw):
- start = time.time()
- message = _('Action list done in %s.')\
- %timedelta(
- if api.ERROR_
- message += '\n'+_('One issue was logged.')
- elif api.ERROR_
- message += '\n'+_('%d issues were logged.')\
- %api.ERROR_
- notify.send(
- title = api.title(
- message = message,
- icon = self.get_
- wxicon = graphics.
def get_icon_ filename( self):
if self._icon_filename == None: