[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r9241 - in trunk/gnue-forms/src: . uidrivers/_commonGuiToolkit
From: |
reinhard |
Subject: |
[gnue] r9241 - in trunk/gnue-forms/src: . uidrivers/_commonGuiToolkit |
Date: |
Tue, 9 Jan 2007 12:09:55 -0600 (CST) |
Author: reinhard
Date: 2007-01-09 12:09:54 -0600 (Tue, 09 Jan 2007)
New Revision: 9241
Modified:
trunk/gnue-forms/src/GFForm.py
trunk/gnue-forms/src/uidrivers/_commonGuiToolkit/ToolBar.py
Log:
Use canXX and cannotXX events to determine whether a button should be pressed
in or not. This finally makes it possible to disable toggle buttons and fixes
the non-working "deletable" attribute of blocks.
Modified: trunk/gnue-forms/src/GFForm.py
===================================================================
--- trunk/gnue-forms/src/GFForm.py 2007-01-09 16:25:08 UTC (rev 9240)
+++ trunk/gnue-forms/src/GFForm.py 2007-01-09 18:09:54 UTC (rev 9241)
@@ -1314,13 +1314,12 @@
self._currentBlock._focus_out()
if not self._must_save():
- # Notify the UI to not show the query button pressed in
- self.dispatchEvent('endENTERQUERY', _form=self)
+ # We must refresh the UI events now as otherwise the query
+ # button will stick in.
+ self.refreshUIEvents()
self.beginEditing()
return
- self.dispatchEvent('beginENTERQUERY', _form=self)
-
for block in self._logic._blockList:
block.init_query()
@@ -1342,13 +1341,9 @@
self._currentBlock._focus_out()
if not self._must_save():
- # Notify the UI to not show the query button pressed in
- self.dispatchEvent('endENTERQUERY', _form=self)
self.beginEditing()
return
- self.dispatchEvent('beginENTERQUERY', _form=self)
-
for block in self._logic._blockList:
block.copy_query()
@@ -1366,8 +1361,6 @@
self.endEditing()
try:
- self.dispatchEvent('endENTERQUERY', _form=self)
-
for block in self._logic._blockList:
block.cancel_query()
@@ -1395,8 +1388,6 @@
# transaction.
self.__rollback_all_connections()
- self.dispatchEvent('endENTERQUERY', _form=self);
-
try:
self._currentBlock.execute_query()
@@ -1720,11 +1711,6 @@
else:
dispatchEvent('cannot' + event)
- if record_status in ('void', 'deleted'):
- dispatchEvent('beginMARKFORDELETE')
- else:
- dispatchEvent('endMARKFORDELETE')
-
if self._currentBlock is not None \
and self._currentBlock.mode == 'query':
dispatchEvent('cannotCOMMIT')
Modified: trunk/gnue-forms/src/uidrivers/_commonGuiToolkit/ToolBar.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/_commonGuiToolkit/ToolBar.py 2007-01-09
16:25:08 UTC (rev 9240)
+++ trunk/gnue-forms/src/uidrivers/_commonGuiToolkit/ToolBar.py 2007-01-09
18:09:54 UTC (rev 9241)
@@ -101,15 +101,21 @@
else:
name, contents = item
userAction = UserActions.userActionMap [contents]
- self.__actionMap[userAction.event] = self.addAction(name, userAction)
+ button = self.addAction(name, userAction)
+ button.__action = userAction
+ button.__press_enabled = False
+ button.__toggle_enabled = False
+ self.__actionMap[userAction.event] = button
eventListeners = {
'can%s' % userAction.event: self.__canRequestEvent,
- 'cannot%s' % userAction.event: self.__cannotRequestEvent }
+ 'cannot%s' % userAction.event: self.__cannotRequestEvent}
if userAction.canToggle:
- eventListeners.update( {
- 'begin%s' % userAction.event: self.__beginRequestEvent,
- 'end%s' % userAction.event: self.__endRequestEvent } )
+ userAction = UserActions.userActionMap [userAction.canToggle]
+ self.__actionMap[userAction.event] = button
+ eventListeners.update({
+ 'can%s' % userAction.event: self.__canRequestEvent,
+ 'cannot%s' % userAction.event: self.__cannotRequestEvent})
self.driver.registerEventListeners (eventListeners)
@@ -131,28 +137,41 @@
def __canRequestEvent(self, event):
- item = self.__actionMap[event.__event__[3:]]
- self.enableItem(item)
+ e = event.__event__[3:]
+ item = self.__actionMap[e]
+ if e == item.__action.canToggle:
+ item.__toggle_enabled = True
+ if not item.__press_enabled:
+ self.enableItem(item)
+ self.startingItem(item)
+ else:
+ item.__press_enabled = True
+ if item.__toggle_enabled:
+ self.endingItem(item)
+ else:
+ self.enableItem(item)
+ # Usually, the button should already be displayed as not pressed
+ # in. We pull it out nevertheless in case it was presssed in by the
+ # user and the action caused by that did raise an exception.
+ self.endingItem(item)
def __cannotRequestEvent(self, event):
e = event.__event__[6:]
item = self.__actionMap[e]
- userAction = UserActions.userActionMap[e]
- if userAction.canToggle:
- return
- self.disableItem(item)
+ if e == item.__action.canToggle:
+ item.__toggle_enabled = False
+ if not item.__press_enabled:
+ self.endingItem(item)
+ self.disableItem(item)
+ else:
+ item.__press_enabled = False
+ if item.__toggle_enabled:
+ self.startingItem(item)
+ else:
+ self.disableItem(item)
- def __beginRequestEvent(self, event):
- item = self.__actionMap[event.__event__[5:]]
- self.startingItem(item)
- def __endRequestEvent(self, event):
- item = self.__actionMap[event.__event__[3:]]
- self.endingItem(item)
-
-
-
####################################################################
#
#
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9241 - in trunk/gnue-forms/src: . uidrivers/_commonGuiToolkit,
reinhard <=