[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r6270 - in trunk/gnue-forms/src/uidrivers/curses: . widgets
From: |
reinhard |
Subject: |
r6270 - in trunk/gnue-forms/src/uidrivers/curses: . widgets |
Date: |
Thu, 9 Sep 2004 10:56:02 -0500 (CDT) |
Author: reinhard
Date: 2004-09-09 10:56:01 -0500 (Thu, 09 Sep 2004)
New Revision: 6270
Modified:
trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
trunk/gnue-forms/src/uidrivers/curses/widgets/form.py
Log:
Implemented error handling.
Modified: trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/UIdriver.py 2004-09-09 14:11:08 UTC
(rev 6269)
+++ trunk/gnue-forms/src/uidrivers/curses/UIdriver.py 2004-09-09 15:56:01 UTC
(rev 6270)
@@ -47,54 +47,58 @@
self.textHeight = 1
self.__screen = curses.initscr ()
- curses.raw ()
- curses.start_color ()
+ try:
+ curses.raw ()
+ curses.start_color ()
- # Define colors
- curses.init_pair (1, curses.COLOR_WHITE, curses.COLOR_BLUE)
- curses.init_pair (2, curses.COLOR_BLACK, curses.COLOR_WHITE)
- curses.init_pair (3, curses.COLOR_BLACK, curses.COLOR_CYAN)
- curses.init_pair (4, curses.COLOR_BLACK, curses.COLOR_WHITE)
- curses.init_pair (5, curses.COLOR_BLACK, curses.COLOR_CYAN)
- curses.init_pair (6, curses.COLOR_WHITE, curses.COLOR_RED)
- curses.init_pair (7, curses.COLOR_WHITE, curses.COLOR_BLUE)
- curses.init_pair (8, curses.COLOR_WHITE, curses.COLOR_YELLOW)
- curses.init_pair (9, curses.COLOR_WHITE, curses.COLOR_RED)
+ # Define colors
+ curses.init_pair (1, curses.COLOR_WHITE, curses.COLOR_BLUE)
+ curses.init_pair (2, curses.COLOR_BLACK, curses.COLOR_WHITE)
+ curses.init_pair (3, curses.COLOR_BLACK, curses.COLOR_CYAN)
+ curses.init_pair (4, curses.COLOR_BLACK, curses.COLOR_WHITE)
+ curses.init_pair (5, curses.COLOR_BLACK, curses.COLOR_CYAN)
+ curses.init_pair (6, curses.COLOR_WHITE, curses.COLOR_RED)
+ curses.init_pair (7, curses.COLOR_WHITE, curses.COLOR_BLUE)
+ curses.init_pair (8, curses.COLOR_WHITE, curses.COLOR_YELLOW)
+ curses.init_pair (9, curses.COLOR_WHITE, curses.COLOR_RED)
- self.attr = {}
- self.attr ['title'] = curses.color_pair (1)
- self.attr ['page'] = curses.color_pair (2)
- self.attr ['currentpage'] = curses.color_pair (3)
- self.attr ['background'] = curses.color_pair (4)
- self.attr ['entry'] = curses.color_pair (5)
- self.attr ['focusentry'] = curses.color_pair (6) + curses.A_BOLD
- self.attr ['disabled'] = curses.color_pair (5)
- self.attr ['status'] = curses.color_pair (7)
- self.attr ['fkeys'] = curses.color_pair (4)
- self.attr ['infomsg'] = curses.color_pair (8) + curses.A_BOLD
- self.attr ['warnmsg'] = curses.color_pair (9) + curses.A_BOLD
- self.attr ['errormsg'] = curses.color_pair (9) + curses.A_BOLD \
+ self.attr = {}
+ self.attr ['title'] = curses.color_pair (1)
+ self.attr ['page'] = curses.color_pair (2)
+ self.attr ['currentpage'] = curses.color_pair (3)
+ self.attr ['background'] = curses.color_pair (4)
+ self.attr ['entry'] = curses.color_pair (5)
+ self.attr ['focusentry'] = curses.color_pair (6) + curses.A_BOLD
+ self.attr ['disabled'] = curses.color_pair (5)
+ self.attr ['status'] = curses.color_pair (7)
+ self.attr ['fkeys'] = curses.color_pair (4)
+ self.attr ['infomsg'] = curses.color_pair (8) + curses.A_BOLD
+ self.attr ['warnmsg'] = curses.color_pair (9) + curses.A_BOLD
+ self.attr ['errormsg'] = curses.color_pair (9) + curses.A_BOLD \
+ curses.A_BLINK
- self.__exiting = False
+ self.__exiting = False
- KeyMapper.setUIKeyMap (self._keymap)
+ KeyMapper.setUIKeyMap (self._keymap)
- # Find out all functions mapped to function keys
- # Both hold [eventname, enabled] pairs:
- self.__events_fkey = {} # by curses keycode
- self.__events_name = {} # by event name
- for fkey in range (curses.KEY_F1, curses.KEY_F20):
- if self.__shiftkeys.has_key (fkey):
- (key, shift, ctrl, meta) = self.__shiftkeys [fkey]
- else:
- (key, shift, ctrl, meta) = (fkey, False, False, False)
- name = KeyMapper.getEvent (key, shift, ctrl, meta)
- if name:
- event = [name, False]
- self.__events_fkey [fkey] = event
- self.__events_name [name] = event
- self.registerEventListeners ({'can' + name: self.__canEvent,
- 'cannot' + name: self.__cannotEvent})
+ # Find out all functions mapped to function keys
+ # Both hold [eventname, enabled]
pairs
+ self.__events_fkey = {} # by curses keycode
+ self.__events_name = {} # by event name
+ for fkey in range (curses.KEY_F1, curses.KEY_F20):
+ if self.__shiftkeys.has_key (fkey):
+ (key, shift, ctrl, meta) = self.__shiftkeys [fkey]
+ else:
+ (key, shift, ctrl, meta) = (fkey, False, False, False)
+ name = KeyMapper.getEvent (key, shift, ctrl, meta)
+ if name:
+ event = [name, False]
+ self.__events_fkey [fkey] = event
+ self.__events_name [name] = event
+ self.registerEventListeners ({'can' + name: self.__canEvent,
+ 'cannot' + name: self.__cannotEvent})
+ except:
+ curses.endwin ()
+ raise
# ---------------------------------------------------------------------------
# Activate the given form
@@ -166,16 +170,19 @@
def mainLoop (self):
while not self.__exiting:
- key = self.__currentForm.wait ()
+ try:
+ key = self.__currentForm.wait ()
- if key >= 0 and key <= 255:
- self._uiFocusWidget._keypress (unicode (chr (key), i18n.encoding))
- else:
- if self.__shiftkeys.has_key (key): # translate shifted f-key
- (key, shift, ctrl, meta) = self.__shiftkeys [key]
+ if key >= 0 and key <= 255:
+ self._uiFocusWidget._keypress (unicode (chr (key), i18n.encoding))
else:
- (shift, ctrl, meta) = (False, False, False)
- self._uiFocusWidget._fkeypress (key, shift, ctrl, meta)
+ if self.__shiftkeys.has_key (key): # translate shifted f-key
+ (key, shift, ctrl, meta) = self.__shiftkeys [key]
+ else:
+ (shift, ctrl, meta) = (False, False, False)
+ self._uiFocusWidget._fkeypress (key, shift, ctrl, meta)
+ except:
+ self.showException ()
# ---------------------------------------------------------------------------
# Set title of a form
@@ -225,6 +232,14 @@
return self.__currentForm.showMessage (message, kind, cancel)
# ---------------------------------------------------------------------------
+ # Show exception information
+ # ---------------------------------------------------------------------------
+
+ def _showException (self, group, name, message, detail):
+
+ self.showMessage (message, kind = 'Error')
+
+ # ---------------------------------------------------------------------------
# Clean up everything
# ---------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/form.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/form.py 2004-09-09
14:11:08 UTC (rev 6269)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/form.py 2004-09-09
15:56:01 UTC (rev 6270)
@@ -165,7 +165,7 @@
self.__window.move (y - 2, 0)
self.__window.clrtobot ()
- self.__window.addstr (y - 2, 1, message)
+ self.__window.addstr (y - 2, 1, o(message))
if kind == 'Question':
self.__window.addstr (y - 1, 1, '(' + yes [:1] + ')' + yes [1:] + '/' + \
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r6270 - in trunk/gnue-forms/src/uidrivers/curses: . widgets,
reinhard <=