From 2b4376614bf5c1bd13e1428512559b7336c78fa5 Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Tue, 21 Sep 2010 16:40:44 +0200 Subject: [PATCH] Gray out unused toggles while browsing through the marketBrowser too --- gui/marketBrowser.py | 27 +++++++++++++++++---------- service/market.py | 10 +++++++--- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/gui/marketBrowser.py b/gui/marketBrowser.py index a2e1193bf..3f25c236f 100644 --- a/gui/marketBrowser.py +++ b/gui/marketBrowser.py @@ -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]) diff --git a/service/market.py b/service/market.py index f052a6597..c972b63ab 100644 --- a/service/market.py +++ b/service/market.py @@ -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 = []