Finalize the metaToggles.
This commit is contained in:
@@ -38,21 +38,6 @@ class Market():
|
||||
def __init__(self):
|
||||
self.activeMetas = set()
|
||||
|
||||
def getItems(self, id):
|
||||
"""
|
||||
Get the items contained in the marketGroup with the passed id.
|
||||
Returns a list, where each element is a tuple container:
|
||||
the id, the name, the icon
|
||||
"""
|
||||
|
||||
items = []
|
||||
group = eos.db.getMarketGroup(id)
|
||||
for item in group.items:
|
||||
icon = item.icon.iconFile if item.icon else ""
|
||||
items.append((item.ID, item.name, icon))
|
||||
|
||||
return items
|
||||
|
||||
def getChildren(self, id):
|
||||
"""
|
||||
Get the children of the group or marketGroup with the passed id.
|
||||
@@ -124,10 +109,26 @@ class Market():
|
||||
return root
|
||||
|
||||
def activateMetaGroup(self, name):
|
||||
self.activeMetas.add(name)
|
||||
for meta in self.META_MAP[name]:
|
||||
self.activeMetas.add(meta)
|
||||
|
||||
def disableMetaGroup(self, name):
|
||||
self.activeMetas.remove(name)
|
||||
for meta in self.META_MAP[name]:
|
||||
if meta in self.activeMetas:
|
||||
self.activeMetas.remove(meta)
|
||||
|
||||
def getVariations(self, item):
|
||||
pass
|
||||
def getVariations(self, marketGroupId):
|
||||
if len(self.activeMetas) == 0:
|
||||
return tuple()
|
||||
|
||||
mg = eos.db.getMarketGroup(marketGroupId)
|
||||
l = []
|
||||
for item in mg.items:
|
||||
if item.metaGroup is None and 1 in self.activeMetas:
|
||||
l.append((item.ID, item.name, item.icon.iconFile if item.icon else ""))
|
||||
|
||||
vars = eos.db.getVariations(item, metaGroups = tuple(self.activeMetas), eager="icon")
|
||||
for var in vars:
|
||||
l.append((var.ID, var.name, var.icon.iconFile if var.icon else ""))
|
||||
|
||||
return l
|
||||
|
||||
@@ -97,8 +97,10 @@ class MarketBrowser(wx.Panel):
|
||||
setattr(self, name, btn)
|
||||
box.Add(btn, 1, wx.ALIGN_CENTER)
|
||||
btn.Bind(wx.EVT_TOGGLEBUTTON, self.toggleMetagroup)
|
||||
btn.metaName = name
|
||||
|
||||
self.normal.SetValue(True)
|
||||
cMarket.activateMetaGroup("normal")
|
||||
p.SetMinSize((wx.SIZE_AUTO_WIDTH, btn.GetSize()[1] + 5))
|
||||
|
||||
def addMarketViewImage(self, iconFile):
|
||||
@@ -141,14 +143,14 @@ class MarketBrowser(wx.Panel):
|
||||
self.itemView.DeleteAllItems()
|
||||
self.itemImageList.RemoveAll()
|
||||
|
||||
root = event.Item
|
||||
root = self.marketView.GetSelection()
|
||||
if self.marketView.GetChildrenCount(root) != 0:
|
||||
return
|
||||
|
||||
cMarket = controller.Market.getInstance()
|
||||
idNameMap = {}
|
||||
|
||||
for id, name, iconFile in cMarket.getItems(self.marketView.GetPyData(root)):
|
||||
for id, name, iconFile in cMarket.getVariations(self.marketView.GetPyData(root)):
|
||||
iconId = self.addItemViewImage(iconFile)
|
||||
index = self.itemView.InsertImageStringItem(sys.maxint, name, iconId)
|
||||
idNameMap[id] = name
|
||||
@@ -159,9 +161,23 @@ class MarketBrowser(wx.Panel):
|
||||
|
||||
def toggleMetagroup(self, event):
|
||||
ctrl = wx.GetMouseState().ControlDown()
|
||||
cMarket = controller.Market.getInstance()
|
||||
btn = event.EventObject
|
||||
if not ctrl:
|
||||
for name in ("normal", "faction", "complex", "officer"):
|
||||
getattr(self, name).SetValue(False)
|
||||
cMarket.disableMetaGroup(name)
|
||||
|
||||
event.EventObject.SetValue(True)
|
||||
btn.SetValue(True)
|
||||
cMarket.activateMetaGroup(btn.metaName)
|
||||
else:
|
||||
# Note: using the old value might seem weird,
|
||||
# But the button hasn't been toggled by wx yet
|
||||
target = btn.GetValue()
|
||||
btn.SetValue(target)
|
||||
if target:
|
||||
cMarket.activateMetaGroup(btn.metaName)
|
||||
else:
|
||||
cMarket.disableMetaGroup(btn.metaName)
|
||||
|
||||
self.selectionMade(event)
|
||||
|
||||
Reference in New Issue
Block a user