Fix a bug where we'd bind our context menu handler several times,

leading to superfluous handler calls
This commit is contained in:
cncfanatics
2010-10-07 08:20:52 +02:00
parent 89a0ccf513
commit 00c220779d
2 changed files with 17 additions and 21 deletions

View File

@@ -31,6 +31,7 @@ class ContextMenu(object):
menu.info = {} menu.info = {}
menu.selection = selection menu.selection = selection
empty = True empty = True
menu.Bind(wx.EVT_MENU, cls.handler)
for i, context in enumerate(contexts): for i, context in enumerate(contexts):
amount = 0 amount = 0
for menuHandler in cls.menus: for menuHandler in cls.menus:
@@ -46,7 +47,6 @@ class ContextMenu(object):
item = wx.MenuItem(menu, id, text) item = wx.MenuItem(menu, id, text)
menu.info[id] = (m, context, it) menu.info[id] = (m, context, it)
menu.Bind(wx.EVT_MENU, cls.handler)
bitmap = m.getBitmap(context, selection) bitmap = m.getBitmap(context, selection)
if bitmap: if bitmap:
item.SetBitmap(bitmap) item.SetBitmap(bitmap)

View File

@@ -283,20 +283,16 @@ class ItemEffects (wx.Panel):
class ItemAffectedBy (wx.Panel): class ItemAffectedBy (wx.Panel):
def __init__(self, parent, stuff, item): def __init__(self, parent, stuff, item):
wx.Panel.__init__ (self, parent) wx.Panel.__init__ (self, parent)
mainSizer = wx.BoxSizer( wx.VERTICAL ) mainSizer = wx.BoxSizer(wx.VERTICAL)
self.effectList = AutoListCtrl(self, wx.ID_ANY, style = wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.NO_BORDER)
self.effectList = AutoListCtrl(self, wx.ID_ANY, mainSizer.Add(self.effectList, 1, wx.ALL|wx.EXPAND, 0)
style = self.SetSizer(mainSizer)
#wx.LC_HRULES |
#wx.LC_NO_HEADER |
wx.LC_REPORT |wx.LC_SINGLE_SEL |
#wx.LC_VRULES |
wx.NO_BORDER)
mainSizer.Add( self.effectList, 1, wx.ALL|wx.EXPAND, 0 )
self.SetSizer( mainSizer )
self.effectList.InsertColumn(0,"Name") self.effectList.InsertColumn(0,"Name")
self.effectList.setResizeColumn(0) self.effectList.setResizeColumn(0)
print stuff.itemModifiedAttributes._ModifiedAttributeDict__affectedBy
effects = item.effects effects = item.effects
names = list(effects.iterkeys()) names = list(effects.iterkeys())
names.sort() names.sort()