commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r8567 - in trunk/gnue-forms/src: GFObjects input/displayHandlers


From: johannes
Subject: [gnue] r8567 - in trunk/gnue-forms/src: GFObjects input/displayHandlers uidrivers/wx26/widgets
Date: Thu, 17 Aug 2006 09:32:42 -0500 (CDT)

Author: johannes
Date: 2006-08-17 09:32:41 -0500 (Thu, 17 Aug 2006)
New Revision: 8567

Modified:
   trunk/gnue-forms/src/GFObjects/GFBlock.py
   trunk/gnue-forms/src/GFObjects/GFField.py
   trunk/gnue-forms/src/input/displayHandlers/Checkbox.py
   trunk/gnue-forms/src/uidrivers/wx26/widgets/_base.py
   trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py
Log:
Added a third state to the checkboxes while in query mode.  This way we
can search for either state of a checkbox.



Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-08-17 14:32:11 UTC (rev 
8566)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-08-17 14:32:41 UTC (rev 
8567)
@@ -1180,7 +1180,8 @@
       match = False
       for comparison in baseComparisons.keys():
           
-        if val[:2+len(comparison)].lower() == "%s%s%s" % \
+        if isinstance(val, basestring) and \
+                val[:2+len(comparison)].lower() == "%s%s%s" % \
           (comparisonDelimeter, comparison, comparisonDelimeter):
           value=val[2+len(comparison):]
           
@@ -1205,7 +1206,7 @@
               val = ("%s" % val).replace ('*', '%')
             except ValueError:
               pass
-  
+
           if (val.find ('%') >= 0 or val.find ('_') >= 0):
             condLike [entry.field] = val
           else:

Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py   2006-08-17 14:32:11 UTC (rev 
8566)
+++ trunk/gnue-forms/src/GFObjects/GFField.py   2006-08-17 14:32:41 UTC (rev 
8567)
@@ -246,6 +246,8 @@
 
         if mode == 'query':
             self._block._queryValues[self] = value
+            if value is None:
+                del self._block._queryValues[self]
 
         elif mode == 'init':
             self._block._initializingRecord[self.field] = value

Modified: trunk/gnue-forms/src/input/displayHandlers/Checkbox.py
===================================================================
--- trunk/gnue-forms/src/input/displayHandlers/Checkbox.py      2006-08-17 
14:32:11 UTC (rev 8566)
+++ trunk/gnue-forms/src/input/displayHandlers/Checkbox.py      2006-08-17 
14:32:41 UTC (rev 8567)
@@ -60,6 +60,9 @@
 
 
   def _sanitizeValue(self, value):
+    if self.field._block.mode == 'query' and (value in [None, '']):
+      return None
+
     if ("%s" % value)[:1] in self.trueValues:
       return True
     elif ("%s" % value)[:1] in self.falseValues:
@@ -88,7 +91,14 @@
 
   # Toggle value of checkbox
   def __toggle (self):
-    self.work = not self.work
+    allowed = [True, False]
+    if self.field._block.mode == 'query':
+        allowed.append(None)
+    next = allowed.index(self.work) + 1
+    if next == len(allowed):
+        next = 0
+
+    self.work = allowed[next]
     self.modified = True
     self._buildDisplay ()
 

Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/_base.py        2006-08-17 
14:32:11 UTC (rev 8566)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/_base.py        2006-08-17 
14:32:41 UTC (rev 8567)
@@ -300,6 +300,14 @@
                 if value:
                     widget.SetStringSelection (value, True)
 
+            elif isinstance(widget, wx.CheckBox):
+                if value is None:
+                    widget.Set3StateValue(wx.CHK_UNDETERMINED)
+                elif value:
+                    widget.Set3StateValue(wx.CHK_CHECKED)
+                else:
+                    widget.Set3StateValue(wx.CHK_UNCHECKED)
+
             else:
                 if isinstance (widget, wx.ComboBox):
                     # We use SetStringSelection to keep the selected index in

Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py        2006-08-17 
14:32:11 UTC (rev 8566)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py        2006-08-17 
14:32:41 UTC (rev 8567)
@@ -133,7 +133,8 @@
 
     def __build_checkbox (self, parent):
 
-        result = wx.CheckBox (parent, -1, self._gfObject.label)
+        result = wx.CheckBox (parent, -1, self._gfObject.label,
+                style=wx.CHK_3STATE)
         result.Bind (wx.EVT_CHECKBOX, self.__on_toggle_checkbox)
         result.Bind (wx.EVT_CHAR, self.__on_keypress)
         result.Bind (wx.EVT_SET_FOCUS, self.__on_set_focus)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]