[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r10107 - in trunk/gnue-forms/src: . GFObjects uidrivers/curses/wi
From: |
reinhard |
Subject: |
[gnue] r10107 - in trunk/gnue-forms/src: . GFObjects uidrivers/curses/widgets uidrivers/qt3/widgets uidrivers/qt4/widgets uidrivers/wx/widgets |
Date: |
Wed, 9 Dec 2009 11:27:09 -0600 (CST) |
Author: reinhard
Date: 2009-12-09 11:27:09 -0600 (Wed, 09 Dec 2009)
New Revision: 10107
Modified:
trunk/gnue-forms/src/GFForm.py
trunk/gnue-forms/src/GFObjects/GFButton.py
trunk/gnue-forms/src/GFObjects/GFEntry.py
trunk/gnue-forms/src/GFObjects/GFField.py
trunk/gnue-forms/src/GFObjects/GFTabStop.py
trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py
trunk/gnue-forms/src/uidrivers/qt3/widgets/image.py
trunk/gnue-forms/src/uidrivers/qt4/widgets/entry.py
trunk/gnue-forms/src/uidrivers/qt4/widgets/image.py
trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
trunk/gnue-forms/src/uidrivers/wx/widgets/image.py
Log:
Disable entries when they are not editable, since this is what users are used
to. Disable buttons in filter mode.
Modified: trunk/gnue-forms/src/GFForm.py
===================================================================
--- trunk/gnue-forms/src/GFForm.py 2009-12-09 16:27:29 UTC (rev 10106)
+++ trunk/gnue-forms/src/GFForm.py 2009-12-09 17:27:09 UTC (rev 10107)
@@ -92,6 +92,9 @@
# Dictionary to locate actions
self._actions = {}
+ # Buttons on this form
+ self._buttons = []
+
# Dictionary with all the subforms
self.__subforms = {}
@@ -1286,6 +1289,11 @@
for block in self._logic._blockList:
block.init_filter()
+ # Update enabled/disabled status for all buttons (in this case:
+ # disable all buttons)
+ for button in self._buttons:
+ button.update_status()
+
self.status_message(u_('Enter your filter criteria.'))
finally:
self.beginEditing()
@@ -1313,6 +1321,11 @@
for block in self._logic._blockList:
block.change_filter()
+ # Update enabled/disabled status for all buttons (in this case:
+ # disable all buttons)
+ for button in self._buttons:
+ button.update_status()
+
self.status_message(u_('Enter your filter criteria.'))
finally:
self.beginEditing()
@@ -1332,6 +1345,10 @@
for block in self._logic._blockList:
block.discard_filter()
+ # Update enabled/disabled status for all buttons
+ for button in self._buttons:
+ button.update_status()
+
self.status_message(u_('Query canceled.'))
finally:
if self._currentBlock is not None:
@@ -1368,6 +1385,10 @@
for block in self._logic._blockList:
block.mode = "normal"
+ # Update enabled/disabled status for all buttons
+ for button in self._buttons:
+ button.update_status()
+
for block in self._logic._blockList:
block.apply_filter()
Modified: trunk/gnue-forms/src/GFObjects/GFButton.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFButton.py 2009-12-09 16:27:29 UTC (rev
10106)
+++ trunk/gnue-forms/src/GFObjects/GFButton.py 2009-12-09 17:27:09 UTC (rev
10107)
@@ -63,6 +63,8 @@
GFTabStop._phase_1_init_(self)
+ self._form._buttons.append(self)
+
if self._block:
self._block._entryList.append(self)
@@ -78,6 +80,22 @@
# -------------------------------------------------------------------------
+ # Determine whether this widget is enabled or disabled
+ # -------------------------------------------------------------------------
+
+ def _is_enabled_(self, index):
+ """
+ Return True if the widget should be enabled, False if it should be
+ disabled.
+ """
+
+ if not GFTabStop._is_enabled_(self, index):
+ return False
+ else:
+ return not self._form.in_filter_mode()
+
+
+ # -------------------------------------------------------------------------
# Fire the trigger associated with the button from outside GF
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/GFObjects/GFEntry.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFEntry.py 2009-12-09 16:27:29 UTC (rev
10106)
+++ trunk/gnue-forms/src/GFObjects/GFEntry.py 2009-12-09 17:27:09 UTC (rev
10107)
@@ -25,7 +25,7 @@
The primary data entry widget in forms
"""
-from gnue.forms.GFObjects.GFTabStop import GFFieldBound
+from gnue.forms.GFObjects.GFTabStop import GFTabStop, GFFieldBound
# =============================================================================
# Class for data entry widgets
@@ -106,6 +106,24 @@
# -------------------------------------------------------------------------
+ # Determine whether this widget is enabled or disabled
+ # -------------------------------------------------------------------------
+
+ def _is_enabled_(self, index):
+ """
+ Return True if the widget should be enabled, False if it should be
+ disabled.
+ """
+
+ # "label" style entries don't get disabled when the attached field is
+ # not editable.
+ if self.style == 'label':
+ return GFTabStop._is_enabled_(self, index)
+ else:
+ return GFFieldBound._is_enabled_(self, index)
+
+
+ # -------------------------------------------------------------------------
# Indicate whether this widget makes use of the separate label column
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py 2009-12-09 16:27:29 UTC (rev
10106)
+++ trunk/gnue-forms/src/GFObjects/GFField.py 2009-12-09 17:27:09 UTC (rev
10107)
@@ -353,7 +353,7 @@
if value in ['Y', 'N', 'null', 'new', 'update']:
self.editable = value
for entry in self._entryList:
- entry.update_editable()
+ entry.update_status()
else:
raise InvalidPropertyValueError('editable', value)
Modified: trunk/gnue-forms/src/GFObjects/GFTabStop.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFTabStop.py 2009-12-09 16:27:29 UTC (rev
10106)
+++ trunk/gnue-forms/src/GFObjects/GFTabStop.py 2009-12-09 17:27:09 UTC (rev
10107)
@@ -49,6 +49,7 @@
# Attributes
# -------------------------------------------------------------------------
+ enabled = True
navigable = False
# -------------------------------------------------------------------------
@@ -112,7 +113,9 @@
if self._block:
self._block._entryList.append(self)
+ self.__last_enabled_row = self._rows - 1
+
# -------------------------------------------------------------------------
# UI events (called from UIEntry/UIButton)
# -------------------------------------------------------------------------
@@ -284,7 +287,7 @@
# Enable rows if necessary
for i in range(self.__last_enabled_row+1, last_enabled_row+1):
- self.uiWidget._ui__set_enabled_(i, False)
+ self.uiWidget._ui_set_enabled_(i, False)
self.__last_enabled_row = last_enabled_row
@@ -309,8 +312,9 @@
if isinstance(self, GFFieldBound) and refresh_start is not
None:
self.refresh_ui(refresh_start, self._rows - 1)
+ if refresh_start is not None:
# Set widgets to editable or non-editable
- self.__update_editable(refresh_start)
+ self.__update_status(refresh_start)
# Let the marker for the current row in grids follow.
self.ui_set_current_row()
@@ -329,26 +333,38 @@
# Set the widgets to editable or non-editable
# -------------------------------------------------------------------------
- def update_editable(self):
+ def update_status(self):
"""
- Update the editable state of this entry.
+ Update the enabled/disabled state of this entry.
This function is called by the field if the editable state of the field
is changed by a trigger.
"""
- self.__update_editable(0)
+ self.__update_status(0)
# -------------------------------------------------------------------------
- def __update_editable(self, refresh_start):
+ def __update_status(self, refresh_start):
for index in range(refresh_start, self.__last_enabled_row + 1):
- offset = index - self._visibleIndex
- self.uiWidget._ui_set_editable_(index,
- self._field.is_editable(offset))
+ self.uiWidget._ui_set_enabled_(index, self._is_enabled_(index))
# -------------------------------------------------------------------------
+ # Determine whether this widget is enabled or disabled
+ # -------------------------------------------------------------------------
+
+ def _is_enabled_(self, index):
+ """
+ Return True if the widget should be enabled, False if it should be
+ disabled.
+ """
+
+ # Normal case: user setting.
+ return self.enabled
+
+
+ # -------------------------------------------------------------------------
# Find out whether this control is navigable
# -------------------------------------------------------------------------
@@ -555,6 +571,23 @@
# -------------------------------------------------------------------------
+ # Determine whether this widget is enabled or disabled
+ # -------------------------------------------------------------------------
+
+ def _is_enabled_(self, index):
+ """
+ Return True if the widget should be enabled, False if it should be
+ disabled.
+ """
+
+ if not GFTabStop._is_enabled_(self, index):
+ return False
+ else:
+ offset = index - self._visibleIndex
+ return self._field.is_editable(offset)
+
+
+ # -------------------------------------------------------------------------
# UI events (called from UIEntry)
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py 2009-12-09
16:27:29 UTC (rev 10106)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py 2009-12-09
17:27:09 UTC (rev 10107)
@@ -108,16 +108,6 @@
# -------------------------------------------------------------------------
- # Set "editable" status for this widget
- # -------------------------------------------------------------------------
-
- def _ui_set_editable_(self, index, editable):
-
- # Not much we can do here.
- pass
-
-
- # -------------------------------------------------------------------------
# Set value for entry
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py 2009-12-09 16:27:29 UTC
(rev 10106)
+++ trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py 2009-12-09 17:27:09 UTC
(rev 10107)
@@ -151,16 +151,6 @@
# -------------------------------------------------------------------------
- # Set "editable" status for this widget
- # -------------------------------------------------------------------------
-
- def _ui_set_editable_(self, index, editable):
-
- # TODO: grey out entry, disallow changes if possible.
- pass
-
-
- # -------------------------------------------------------------------------
# Set value and cursor position
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/qt3/widgets/image.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/qt3/widgets/image.py 2009-12-09 16:27:29 UTC
(rev 10106)
+++ trunk/gnue-forms/src/uidrivers/qt3/widgets/image.py 2009-12-09 17:27:09 UTC
(rev 10107)
@@ -95,15 +95,6 @@
return (width, height)
- # -------------------------------------------------------------------------
- # Set "editable" status for this widget
- # -------------------------------------------------------------------------
-
- def _ui_set_editable_(self, index, editable):
-
- pass
-
-
# ------------------------------------------------------------------------
# Set the widget's PIL
# ------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/qt4/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/qt4/widgets/entry.py 2009-12-09 16:27:29 UTC
(rev 10106)
+++ trunk/gnue-forms/src/uidrivers/qt4/widgets/entry.py 2009-12-09 17:27:09 UTC
(rev 10107)
@@ -143,16 +143,6 @@
# -------------------------------------------------------------------------
- # Set "editable" status for this widget
- # -------------------------------------------------------------------------
-
- def _ui_set_editable_(self, index, editable):
-
- # TODO: grey out entry, disallow changes if possible.
- pass
-
-
- # -------------------------------------------------------------------------
# Set value and cursor position
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/qt4/widgets/image.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/qt4/widgets/image.py 2009-12-09 16:27:29 UTC
(rev 10106)
+++ trunk/gnue-forms/src/uidrivers/qt4/widgets/image.py 2009-12-09 17:27:09 UTC
(rev 10107)
@@ -95,15 +95,6 @@
return (width, height)
- # -------------------------------------------------------------------------
- # Set "editable" status for this widget
- # -------------------------------------------------------------------------
-
- def _ui_set_editable_(self, index, editable):
-
- pass
-
-
# ------------------------------------------------------------------------
# Set the widget's PIL
# ------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py 2009-12-09 16:27:29 UTC
(rev 10106)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py 2009-12-09 17:27:09 UTC
(rev 10107)
@@ -453,29 +453,6 @@
# -------------------------------------------------------------------------
- # Set "editable" status for this widget
- # -------------------------------------------------------------------------
-
- def _ui_set_editable_(self, index, editable):
-
- # Simple text controls can be explicitly set to non-editable, so they
- # don't accept keyboard input.
- if isinstance(self.widgets[index], wx.TextCtrl):
- self.widgets[index].SetEditable(editable)
-
- # We set the background color to grey for all kinds of widgets if they
- # are not editable, so the user can see some difference.
- if not 'wxMac' in wx.PlatformInfo:
- if editable:
- colour = wx.NullColour
- else:
- colour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNFACE)
-
- self.widgets[index].SetBackgroundColour(colour)
- self.widgets[index].Refresh()
-
-
- # -------------------------------------------------------------------------
# Set the value of a widget
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/image.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/image.py 2009-12-09 16:27:29 UTC
(rev 10106)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/image.py 2009-12-09 17:27:09 UTC
(rev 10107)
@@ -221,15 +221,6 @@
return (width, height)
- # -------------------------------------------------------------------------
- # Set "editable" status for this widget
- # -------------------------------------------------------------------------
-
- def _ui_set_editable_(self, index, editable):
-
- pass
-
-
# ------------------------------------------------------------------------
# Set the widget's PIL
# ------------------------------------------------------------------------
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r10107 - in trunk/gnue-forms/src: . GFObjects uidrivers/curses/widgets uidrivers/qt3/widgets uidrivers/qt4/widgets uidrivers/wx/widgets,
reinhard <=