]> code.delx.au - offlineimap/commitdiff
Add parameters to terminate() that specify an (optional) error message to display...
authorDaniel Burrows <dburrows@debian.org>
Fri, 1 Dec 2006 10:54:12 +0000 (11:54 +0100)
committerDaniel Burrows <dburrows@debian.org>
Fri, 1 Dec 2006 10:54:12 +0000 (11:54 +0100)
offlineimap/ui/Curses.py
offlineimap/ui/Tk.py
offlineimap/ui/UIBase.py

index 0f5343fc84774315bc5c6effa8ff7068663bc615..bb1d9470255604b8afc6505744cea479a0ee4b68 100644 (file)
@@ -525,9 +525,14 @@ class Blinkenlights(BlinkenBase, UIBase):
         finally:
             s.c.unlock()
 
-    def terminate(s, exitstatus = 0):
+    def terminate(s, exitstatus = 0, errortitle = None, errormsg = None):
         s.c.stop()
-        UIBase.terminate(s, exitstatus)
+        if errormsg <> None:
+            if errortitle <> None:
+                sys.stderr.write('%s: %s\n'%(errortitle, errormsg))
+            else:
+                sys.stderr.write('%s\n' % errormsg)
+        UIBase.terminate(s, exitstatus = exitstatus, errortitle = errortitle, errormsg = errormsg)
 
     def threadException(s, thread):
         s.c.stop()
index a8976d8f4af3cd9aa78422ed6159e683ba08def9..2dc586eb9e0fc09e4d4a14fd7e9dca4fd7bd480e 100644 (file)
@@ -246,6 +246,13 @@ class VerboseUI(UIBase):
                 tf = s.availablethreadframes.pop()
                 tf.destroy()
             s.tflock.release()
+
+    def terminate(s, exitstatus = 0, errortitle = None, errormsg = None):
+        if errormsg <> None:
+            if errortitle == None:
+                errortitle = "Error"
+            TextOKDialog(errortitle, errormsg)
+        UIBase.terminate(s, exitstatus = exitstatus, errortitle = None, errormsg = None)
             
     def threadException(s, thread):
         exceptionstr = s.getThreadExceptionString(thread)
index 92811c1dd483b22290294ea76a56b1edfbfa3df6..59ea78eba74036cb09087cf4f1d39e9ea24acec6 100644 (file)
@@ -301,8 +301,13 @@ class UIBase:
     def mainException(s):
         s._msg(s.getMainExceptionString())
 
-    def terminate(s, exitstatus = 0):
+    def terminate(s, exitstatus = 0, errortitle = None, errormsg = None):
         """Called to terminate the application."""
+        if errormsg <> None:
+            if errortitle <> None:
+                sys.stderr.write('ERROR: %s\n\n%s\n'%(errortitle, errormsg))
+            else:
+                sys.stderr.write('%s\n' % errormsg)
         sys.exit(exitstatus)
 
     def threadExited(s, thread):