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