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 <[email protected]> properties: branch-nick: forms + timestamp: 2010-11-14 22:03:45.615000010 +0100 committer: Reinhard Müller <[email protected]> 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 [email protected] 3117 [email protected] 3118 [email protected] 3119 [email protected] 3120 [email protected] 3121 [email protected] 3122 [email protected] 3123 [email protected] 3124 [email protected] 3125 [email protected] 3126 [email protected] 3127 [email protected] 3128 [email protected] 3129 [email protected] 3130 [email protected] 3131 [email protected] 3132 [email protected] 3133 [email protected] 3134 [email protected] 3135 [email protected] 3136 [email protected] 3137 [email protected] 3138 [email protected] 3139 [email protected] 3140 [email protected] 3141 [email protected] 3142 [email protected] 3143 [email protected] 3144 [email protected] 3145 [email protected] 3146 [email protected] 3147 [email protected] 3148 [email protected] 3149 [email protected] 3150 [email protected] 3151 [email protected] + 3116 [email protected] 3117 [email protected] 3118 [email protected] 3119 [email protected] 3120 [email protected] 3121 [email protected] 3122 [email protected] 3123 [email protected] 3124 [email protected] 3125 [email protected] 3126 [email protected] 3127 [email protected] 3128 [email protected] 3129 [email protected] 3130 [email protected] 3131 [email protected] 3132 [email protected] 3133 [email protected] 3134 [email protected] 3135 [email protected] 3136 [email protected] 3137 [email protected] 3138 [email protected] 3139 [email protected] 3140 [email protected] 3141 [email protected] 3142 [email protected] 3143 [email protected] 3144 [email protected] 3145 [email protected] 3146 [email protected] 3147 [email protected] 3148 [email protected] 3149 [email protected] 3150 [email protected] 3151 [email protected] 3152 [email protected] Name: bzr:text-parents - src/GFParser.py [email protected] src/uidrivers/wx/widgets/button.py [email protected] + src/uidrivers/wx/widgets/_base.py [email protected] src/uidrivers/wx/widgets/entry.py [email protected] 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 [email protected] http://lists.gnu.org/mailman/listinfo/commit-gnue
