Author: reinhard
Date: 2010-11-14 15:04:10 -0600 (Sun, 14 Nov 2010)
New Revision: 10240

Modified:
   trunk/gnue-forms/
   trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py
   trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
Log:
Workaround for a bug in wxMSW.



Property changes on: trunk/gnue-forms
___________________________________________________________________
Name: bzr:revision-info
   - timestamp: 2010-11-12 16:59:54.292999983 +0100
committer: Reinhard Müller <reinhard.muel...@bytewise.at>
properties: 
        branch-nick: forms

   + timestamp: 2010-11-14 22:03:45.615000010 +0100
committer: Reinhard Müller <reinhard.muel...@bytewise.at>
properties: 
        branch-nick: forms

Name: bzr:file-ids
   - src/GFParser.py    
1...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:src%2FGFParser.py
src/uidrivers/wx/widgets/button.py      
10...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:src%2Fuidrivers%2Fwx%2Fwidgets%2Fbutton.py

   + src/uidrivers/wx/widgets/_base.py  
10...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:src%2Fuidrivers%2Fwx%2Fwidgets%2F_base.py
src/uidrivers/wx/widgets/entry.py       
10...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:src%2Fuidrivers%2Fwx%2Fwidgets%2Fentry.py

Name: bzr:revision-id:v4
   - 3116 reinhard.muel...@bytewise.at-20100426083500-vtmq0qvd7htz02zx
3117 reinhard.muel...@bytewise.at-20100512151744-2jx8tmtop30kl5n0
3118 reinhard.muel...@bytewise.at-20100705094014-ks9yv7b8gs6ychrb
3119 reinhard.muel...@bytewise.at-20100706085143-hyxadj30ayg28jpx
3120 reinhard.muel...@bytewise.at-20100706140804-sn3npws1ykm81ubx
3121 reinhard.muel...@bytewise.at-20100909134008-5p7jq048nkutldse
3122 reinhard.muel...@bytewise.at-20100923144753-e8hthxho7n5mwg9z
3123 reinhard.muel...@bytewise.at-20100929193018-7r3injoy8g28fwm6
3124 reinhard.muel...@bytewise.at-20100930073631-ilf6smgjt6mfvkpz
3125 reinhard.muel...@bytewise.at-20101011191957-yaj9rkqbervc91ac
3126 reinhard.muel...@bytewise.at-20101020084039-jmfxjbctt6vc2usd
3127 reinhard.muel...@bytewise.at-20101020124425-0dpprxsmanmaenty
3128 reinhard.muel...@bytewise.at-20101020124541-zppkmzww1lnsk8x4
3129 reinhard.muel...@bytewise.at-20101020141905-vjg7r3wihnm7mxam
3130 reinhard.muel...@bytewise.at-20101020143045-pf9ywx1s3hdqbsh7
3131 reinhard.muel...@bytewise.at-20101020143328-ctfmr3fpp5quq1eo
3132 reinhard.muel...@bytewise.at-20101020152139-rlllh9m2qn45atcz
3133 reinhard.muel...@bytewise.at-20101020163022-tgnjcv18nzrc5sfw
3134 reinhard.muel...@bytewise.at-20101020165411-krluvclyw61ef9zp
3135 reinhard.muel...@bytewise.at-20101020185529-pmdkwkm59c1h630f
3136 reinhard.muel...@bytewise.at-20101020195954-1kd9avbmzkrzwzbt
3137 reinhard.muel...@bytewise.at-20101020202048-8q84nx5a54ifxkla
3138 reinhard.muel...@bytewise.at-20101027211256-o7pi879h2x1ceri2
3139 reinhard.muel...@bytewise.at-20101028135833-wftnu2r1cocknxyf
3140 reinhard.muel...@bytewise.at-20101028144709-dbamfa759xoeh127
3141 reinhard.muel...@bytewise.at-20101028145355-uhqftv7n1bcvuz8l
3142 reinhard.muel...@bytewise.at-20101028151042-ueeqwlufysjbke01
3143 reinhard.muel...@bytewise.at-20101028153459-522p7574jw2e11jj
3144 reinhard.muel...@bytewise.at-20101028164956-gua27xm7ad12a218
3145 reinhard.muel...@bytewise.at-20101028181046-hxaehghl84zx9ye0
3146 reinhard.muel...@bytewise.at-20101028194606-598w1lqua0te1m7j
3147 reinhard.muel...@bytewise.at-20101028205855-5k1f08wfdgofenjd
3148 reinhard.muel...@bytewise.at-20101102154340-basdvi9wrxzbx4va
3149 reinhard.muel...@bytewise.at-20101102155520-bbh74pv3qjur1epo
3150 reinhard.muel...@bytewise.at-20101112154024-57tv8mf0wbiycuw1
3151 reinhard.muel...@bytewise.at-20101112155954-ky2g6irsodlzg6yy

   + 3116 reinhard.muel...@bytewise.at-20100426083500-vtmq0qvd7htz02zx
3117 reinhard.muel...@bytewise.at-20100512151744-2jx8tmtop30kl5n0
3118 reinhard.muel...@bytewise.at-20100705094014-ks9yv7b8gs6ychrb
3119 reinhard.muel...@bytewise.at-20100706085143-hyxadj30ayg28jpx
3120 reinhard.muel...@bytewise.at-20100706140804-sn3npws1ykm81ubx
3121 reinhard.muel...@bytewise.at-20100909134008-5p7jq048nkutldse
3122 reinhard.muel...@bytewise.at-20100923144753-e8hthxho7n5mwg9z
3123 reinhard.muel...@bytewise.at-20100929193018-7r3injoy8g28fwm6
3124 reinhard.muel...@bytewise.at-20100930073631-ilf6smgjt6mfvkpz
3125 reinhard.muel...@bytewise.at-20101011191957-yaj9rkqbervc91ac
3126 reinhard.muel...@bytewise.at-20101020084039-jmfxjbctt6vc2usd
3127 reinhard.muel...@bytewise.at-20101020124425-0dpprxsmanmaenty
3128 reinhard.muel...@bytewise.at-20101020124541-zppkmzww1lnsk8x4
3129 reinhard.muel...@bytewise.at-20101020141905-vjg7r3wihnm7mxam
3130 reinhard.muel...@bytewise.at-20101020143045-pf9ywx1s3hdqbsh7
3131 reinhard.muel...@bytewise.at-20101020143328-ctfmr3fpp5quq1eo
3132 reinhard.muel...@bytewise.at-20101020152139-rlllh9m2qn45atcz
3133 reinhard.muel...@bytewise.at-20101020163022-tgnjcv18nzrc5sfw
3134 reinhard.muel...@bytewise.at-20101020165411-krluvclyw61ef9zp
3135 reinhard.muel...@bytewise.at-20101020185529-pmdkwkm59c1h630f
3136 reinhard.muel...@bytewise.at-20101020195954-1kd9avbmzkrzwzbt
3137 reinhard.muel...@bytewise.at-20101020202048-8q84nx5a54ifxkla
3138 reinhard.muel...@bytewise.at-20101027211256-o7pi879h2x1ceri2
3139 reinhard.muel...@bytewise.at-20101028135833-wftnu2r1cocknxyf
3140 reinhard.muel...@bytewise.at-20101028144709-dbamfa759xoeh127
3141 reinhard.muel...@bytewise.at-20101028145355-uhqftv7n1bcvuz8l
3142 reinhard.muel...@bytewise.at-20101028151042-ueeqwlufysjbke01
3143 reinhard.muel...@bytewise.at-20101028153459-522p7574jw2e11jj
3144 reinhard.muel...@bytewise.at-20101028164956-gua27xm7ad12a218
3145 reinhard.muel...@bytewise.at-20101028181046-hxaehghl84zx9ye0
3146 reinhard.muel...@bytewise.at-20101028194606-598w1lqua0te1m7j
3147 reinhard.muel...@bytewise.at-20101028205855-5k1f08wfdgofenjd
3148 reinhard.muel...@bytewise.at-20101102154340-basdvi9wrxzbx4va
3149 reinhard.muel...@bytewise.at-20101102155520-bbh74pv3qjur1epo
3150 reinhard.muel...@bytewise.at-20101112154024-57tv8mf0wbiycuw1
3151 reinhard.muel...@bytewise.at-20101112155954-ky2g6irsodlzg6yy
3152 reinhard.muel...@bytewise.at-20101114210345-8zsz8bdxtwjytkss

Name: bzr:text-parents
   - src/GFParser.py    
reinhard.muel...@bytewise.at-20101020185529-pmdkwkm59c1h630f
src/uidrivers/wx/widgets/button.py      
reinhard.muel...@bytewise.at-20101027211256-o7pi879h2x1ceri2

   + src/uidrivers/wx/widgets/_base.py  
reinhard.muel...@bytewise.at-20101020152139-rlllh9m2qn45atcz
src/uidrivers/wx/widgets/entry.py       
reinhard.muel...@bytewise.at-20101112154024-57tv8mf0wbiycuw1


Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py  2010-11-14 18:36:34 UTC 
(rev 10239)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py  2010-11-14 21:04:10 UTC 
(rev 10240)
@@ -191,33 +191,6 @@
 
 
     # -------------------------------------------------------------------------
-    # Update the choices of a ComboBox or a Listbox
-    # -------------------------------------------------------------------------
-
-    def _ui_set_choices_(self, index, choices):
-        """
-        Update the choices of a combo- or listbox widget with the allowed
-        values from the associated GFEntry.  The values are alphabetically
-        sorted.
-
-        @param index: index of the widget to set the values for
-        @param choices: alphabetically sorted list of values
-        """
-
-        widget = self.widgets[index]
-
-        if not (isinstance(widget, wx.ComboBox) \
-                or isinstance(widget, wx.ListBox)):
-            return
-        widget.Freeze()
-        try:
-            widget.Clear()
-            widget.AppendItems(choices)
-        finally:
-            widget.Thaw()
-
-
-    # -------------------------------------------------------------------------
     # Widget creation
     # -------------------------------------------------------------------------
 

Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py  2010-11-14 18:36:34 UTC 
(rev 10239)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py  2010-11-14 21:04:10 UTC 
(rev 10240)
@@ -520,17 +520,14 @@
                 widget.SetLabel(value)
 
             elif isinstance(widget, wx.ListBox):
-                # TODO: We must allow setting the value to None, too, to be
-                # able to move the cursor to the empty position at the start.
-                # Must be tested under windows and Mac OS X.
-                #
-                # On wxMSW SetStringSelection() does not work properly with
-                # empty values.
-                index = widget.FindString(value)
-                if index == -1:
+                # On wxMSW neither SetStringSelection() nor FindString() works
+                # with the empty string (the first item in the listbox), so we
+                # have to find out the index ourselves.
+                try:
+                    index = widget.GetStrings().index(value)
+                    widget.SetSelection(index)
+                except ValueError:
                     widget.SetSelection(wx.NOT_FOUND)
-                else:
-                    widget.SetSelection(index)
 
             elif isinstance(widget, wx.CheckBox):
                 if value is None:
@@ -660,6 +657,25 @@
 
 
     # -------------------------------------------------------------------------
+    # Update the choices of a ComboBox or a Listbox
+    # -------------------------------------------------------------------------
+
+    def _ui_set_choices_(self, index, choices):
+
+        widget = self.widgets[index]
+
+        if not (isinstance(widget, wx.ComboBox) \
+                or isinstance(widget, wx.ListBox)):
+            return
+        widget.Freeze()
+        try:
+            widget.Clear()
+            widget.AppendItems(choices)
+        finally:
+            widget.Thaw()
+
+
+    # -------------------------------------------------------------------------
     # Mark the current row for label style entries
     # -------------------------------------------------------------------------
 


_______________________________________________
commit-gnue mailing list
commit-gnue@gnu.org
http://lists.gnu.org/mailman/listinfo/commit-gnue

Reply via email to