Fix to previous masked.TextCtrl change, to ensure inheritance chain

for derived controls isn't broken by new .ChangeValue() support in
base control.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@45767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2007-05-02 21:12:28 +00:00
parent b198c59447
commit c9e1d317b1

View File

@@ -152,7 +152,7 @@ class BaseMaskedTextCtrl( wx.TextCtrl, MaskedEditMixin ):
return self.GetValue() return self.GetValue()
def _SetValue(self, value, use_change_value=False): def _SetValue(self, value):
""" """
Allow mixin to set the raw value of the control with this function. Allow mixin to set the raw value of the control with this function.
REQUIRED by any class derived from MaskedEditMixin. REQUIRED by any class derived from MaskedEditMixin.
@@ -161,12 +161,22 @@ class BaseMaskedTextCtrl( wx.TextCtrl, MaskedEditMixin ):
# Record current selection and insertion point, for undo # Record current selection and insertion point, for undo
self._prevSelection = self._GetSelection() self._prevSelection = self._GetSelection()
self._prevInsertionPoint = self._GetInsertionPoint() self._prevInsertionPoint = self._GetInsertionPoint()
if use_change_value:
wx.TextCtrl.ChangeValue(self, value)
else:
wx.TextCtrl.SetValue(self, value) wx.TextCtrl.SetValue(self, value)
## dbg(indent=0) ## dbg(indent=0)
def _ChangeValue(self, value):
"""
Allow mixin to set the raw value of the control with this function without
generating an event as a result. (New for masked.TextCtrl as of 2.8.4)
"""
## dbg('MaskedTextCtrl::_ChangeValue("%(value)s", use_change_value=%(use_change_value)d)' % locals(), indent=1)
# Record current selection and insertion point, for undo
self._prevSelection = self._GetSelection()
self._prevInsertionPoint = self._GetInsertionPoint()
wx.TextCtrl.ChangeValue(self, value)
## dbg(indent=0)
def SetValue(self, value, use_change_value=False): def SetValue(self, value, use_change_value=False):
""" """
This function redefines the externally accessible .SetValue() to be This function redefines the externally accessible .SetValue() to be
@@ -226,10 +236,12 @@ class BaseMaskedTextCtrl( wx.TextCtrl, MaskedEditMixin ):
else: else:
## dbg('exception thrown', indent=0) ## dbg('exception thrown', indent=0)
raise raise
if use_change_value:
self._SetValue(value, use_change_value) # note: to preserve similar capability, .SetValue() self._ChangeValue(value)
else:
self._SetValue(value) # note: to preserve similar capability, .SetValue()
# does not change IsModified() # does not change IsModified()
#### dbg('queuing insertion after .SetValue', replace_to) #### dbg('queuing insertion after ._Set/ChangeValue', replace_to)
# set selection to last char replaced by paste # set selection to last char replaced by paste
wx.CallAfter(self._SetInsertionPoint, replace_to) wx.CallAfter(self._SetInsertionPoint, replace_to)
wx.CallAfter(self._SetSelection, replace_to, replace_to) wx.CallAfter(self._SetSelection, replace_to, replace_to)