Gray out unused toggles while browsing through the marketBrowser too

This commit is contained in:
cncfanatics
2010-09-21 16:40:44 +02:00
parent c079759426
commit 2b4376614b
2 changed files with 24 additions and 13 deletions

View File

@@ -179,7 +179,8 @@ class MarketBrowser(wx.Panel):
cMarket = service.Market.getInstance()
idNameMap = {}
for id, name, iconFile in cMarket.getVariations(self.marketView.GetPyData(root)):
data, usedMetas = cMarket.getVariations(self.marketView.GetPyData(root))
for id, name, iconFile in data:
iconId = self.addItemViewImage(iconFile)
index = self.itemView.InsertImageStringItem(sys.maxint, name, iconId)
idNameMap[id] = name
@@ -193,6 +194,8 @@ class MarketBrowser(wx.Panel):
if maxWidth > width:
self.itemView.SetColumnWidth(0, maxWidth)
self.toggleButtons(usedMetas)
def toggleMetagroup(self, event):
ctrl = wx.GetMouseState().ControlDown()
cMarket = service.Market.getInstance()
@@ -259,6 +262,18 @@ class MarketBrowser(wx.Panel):
self.searchResults = results
self.filteredSearchAdd()
def toggleButtons(self, usedMetas):
cMarket = service.Market.getInstance()
for name in ("normal", "faction", "complex", "officer"):
btn = getattr(self, name)
btn.SetValue(False)
btn.Enable(False)
for meta in usedMetas:
btn = getattr(self, cMarket.getMetaName(meta))
btn.SetValue(cMarket.isMetaIdActive(meta))
btn.Enable(True)
def filteredSearchAdd(self):
if self.searching is False:
return
@@ -281,15 +296,7 @@ class MarketBrowser(wx.Panel):
self.itemView.SetItemData(index, id)
#Gray out empty toggles
for name in ("normal", "faction", "complex", "officer"):
btn = getattr(self, name)
btn.SetValue(False)
btn.Enable(False)
for meta in usedMetas:
btn = getattr(self, cMarket.getMetaName(meta))
btn.SetValue(cMarket.isMetaIdActive(meta))
btn.Enable(True)
self.toggleButtons(usedMetas)
def sort(id1, id2):
grp = cmp(idGroupMap[id1], idGroupMap[id2])

View File

@@ -229,19 +229,23 @@ class Market():
mg = eos.db.getMarketGroup(marketGroupId)
l = []
done = set()
populatedMetas = set()
for item in mg.items:
populatedMetas.add(1)
if 1 in self.activeMetas:
if item not in done:
done.add(item)
l.append((item.ID, item.name, item.icon.iconFile if item.icon else ""))
vars = eos.db.getVariations(item, metaGroups = tuple(self.activeMetas), eager="icon")
vars = eos.db.getVariations(item, eager=("icon", "metaGroup"))
for var in vars:
if var not in done:
populatedMetas.add(var.metaGroup.ID)
if var not in done and var.metaGroup.ID in self.activeMetas:
done.add(var)
l.append((var.ID, var.name, var.icon.iconFile if var.icon else ""))
return l
return l, populatedMetas
def getPrices(self, typeIDs, callback):
requests = []