Author: johannes
Date: 2006-10-13 04:41:42 -0500 (Fri, 13 Oct 2006)
New Revision: 8781

Modified:
   trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py
Log:
No recursion on changing the state of a checkbox


Modified: trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py 2006-10-13 09:29:50 UTC 
(rev 8780)
+++ trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py 2006-10-13 09:41:42 UTC 
(rev 8781)
@@ -305,6 +305,7 @@
         BaseEntry.__init__(self, ui_widget, qt.QCheckBox)
         self.setTristate(True)
 
+        self._blocked_ = False
         self.connect(self, qt.SIGNAL('toggled(bool)'), self.__on_toggled)
 
 
@@ -314,23 +315,28 @@
 
     def __on_toggled(self, state):
 
-        self.ui_widget._request('TOGGLECHKBOX')
+        if not self._blocked_:
+            self.ui_widget._request('TOGGLECHKBOX')
 
-
     # -------------------------------------------------------------------------
     # UI-Slots
     # -------------------------------------------------------------------------
 
     def _ui_set_value_(self, value):
 
-        if value is None:
-            self.setState(qt.QButton.NoChange)
-        elif value:
-            self.setState(qt.QButton.On)
-        else:
-            self.setState(qt.QButton.Off)
+        self._blocked_ = True
+        try:
+            if value is None:
+                self.setState(qt.QButton.NoChange)
+            elif value:
+                self.setState(qt.QButton.On)
+            else:
+                self.setState(qt.QButton.Off)
 
+        finally:
+            self._blocked_ = False
 
+
 # =============================================================================
 # Base class for widgets having a set of allowed values
 # =============================================================================



_______________________________________________
commit-gnue mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/commit-gnue

Reply via email to