Skip to content

Commit

Permalink
Merge pull request #955 from mesalu/fix_954
Browse files Browse the repository at this point in the history
Fix 954
(cherry picked from commit 848b43b)
  • Loading branch information
RobinD42 committed Aug 8, 2018
1 parent 482af90 commit 4cb781e
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 1 deletion.
3 changes: 2 additions & 1 deletion CHANGES.rst
Expand Up @@ -63,7 +63,8 @@ Changes in this release include the following:
* Add a step to wx.Config.ReadInt to attempt converting from long to int
under python2. (#384)


* Add virtual behavior for wx.RichTextCtrl and wx.TextCtrl's Copy/Cut/Paste methods
and their Can* counterparts. (#954)


4.0.3 "The show must go on. (Die show-stoppers! Die!)"
Expand Down
2 changes: 2 additions & 0 deletions etg/combobox.py
Expand Up @@ -36,6 +36,8 @@ def run():
assert isinstance(c, etgtools.ClassDef)
tools.fixWindowClass(c)

tools.fixTextClipboardMethods(c)

c.find('wxComboBox').findOverload('wxString choices').ignore()
c.find('wxComboBox').findOverload('wxArrayString').find('choices').default = 'wxArrayString()'
c.find('wxComboBox').findOverload('wxArrayString').find('value').default = 'wxEmptyString'
Expand Down
2 changes: 2 additions & 0 deletions etg/richtextctrl.py
Expand Up @@ -76,6 +76,8 @@ def run():
c.find('SetListStyle.def').name = 'styleDef'
c.find('ApplyStyle.def').name = 'styleDef'

tools.fixTextClipboardMethods(c)

c.addPyMethod('GetDefaultStyle', '(self)', 'return self.GetDefaultStyleEx()',
deprecated='Use GetDefaultStyleEx instead')

Expand Down
3 changes: 3 additions & 0 deletions etg/textentry.py
Expand Up @@ -47,6 +47,9 @@ def parseAndTweakModule():
c.find('SetSelection.to').name = 'to_'
c.find('AutoComplete').findOverload('wxTextCompleter').find('completer').transfer = True

# Re-enable virtualness for (Can)Cut/Copy/Paste/Undo/Redo
tools.fixTextClipboardMethods(c)

return module

#-----------------------------------------------------------------
Expand Down
12 changes: 12 additions & 0 deletions etgtools/tweaker_tools.py
Expand Up @@ -381,7 +381,19 @@ def fixRefCountedClass(klass):
if isinstance(item, extractors.MethodDef) and item.isCtor:
item.transfer = True

def fixTextClipboardMethods(klass):
"""
Adds virtual behavior to Copy/Cut/Paste/Undo/Redo methods, and their Can*
counterparts, of the given class.
:param ClassDef klass: The class to modify.
"""
for name in ('Cut', 'Copy', 'Paste', 'Undo', 'Redo'):
for method in (name, "Can{}".format(name)):
try:
klass.find(method).isVirtual = True
except extractors.ExtractorError:
pass

def removeVirtuals(klass):
"""
Expand Down

0 comments on commit 4cb781e

Please sign in to comment.