[patch] QT backend: fix RadioGroup.getValue()

Sascha Silbe <[email protected]> Thu, 28 Aug 2003 16:14:04 +0200
Newsgroups gmane.comp.python.anygui.devel
Message-ID <[email protected]>
Hi!

QT backend:
    Fix the RadioButton implementation so RadioGroup.getValue() works.


Note: RadioGroup.setValue() before app.run() as used in 
test/test_radiogroup.py is still broken.

CU/Lnx Sascha

-- 
Registered Linux User #77587 (http://counter.li.org/)

bomb terrorist afghanistan PGP encrypt CIA FBI BND MAD StaSi anschlag 
strike sex pussy xxx kill bj hitler Gates MS Windows ZV ZDV
anygui-qt-radiobutton-value-fix.patch (text/plain, 1.9 KB)
--- orig/lib/anygui/backends/qtgui.py
+++ mod/lib/anygui/backends/qtgui.py
@@ -305,31 +305,29 @@
 # RadioButton
 
 class RadioButtonWrapper(ToggleButtonWrapperBase):
+    # dict with QButtonGroups for each group, common to all instances
     groupMap = {}
+    val = 0
 
     def widgetFactory(self, *args, **kwds):
         return QRadioButton(*args, **kwds)
 
     def setGroup(self, group):
-        if group:
-            if not group._items:
-                if self.proxy.container:
-                    group._items.append(self.proxy)
-                    container = self.proxy.container
-                    btnGroup = QButtonGroup(container.wrapper.widget)
-                    RadioButtonWrapper.groupMap[group] = btnGroup
-                    btnGroup.insert(self.widget) # What if widget is None?
-            elif self.proxy not in group._items:
-                group._items.append(self.proxy)
-                btnGroup = RadioButtonWrapper.groupMap[group]
-                btnGroup.insert(self.widget)
+        if not self.widget: return
+        if not group: return
+        # RadioGroup not in groupMap? Add a QButtonGroup widget.
+        if not RadioButtonWrapper.groupMap.has_key(group):
+            if self.proxy.container:
+                btnGroup = QButtonGroup(self.proxy.container.wrapper.widget)
+                RadioButtonWrapper.groupMap[group] = btnGroup
+            else :
+              return
+        # add this button to RadioGroup and to QButtonGroup
+        if self.proxy not in group._items:
+            group._items.append(self.proxy)
+            btnGroup = RadioButtonWrapper.groupMap[group]
+            btnGroup.insert(self.widget)
 
-    def setValue(self, value):
-        if self.widget:
-            self.widget.setChecked(bool(value))
-
-    def getValue(self):
-        return bool(self.widget.isChecked())
 
 #==============================================================#
 # Base class for Text widgets
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/Tg4sFu2Z2HTlz4cRArcLAJ0RvrdG7Uy5RVnsr6UMGuB6DkA1XACcD2u5
RU4DAoZQLXGyGifEohJr7v8=
=Lrlm
-----END PGP SIGNATURE-----