From 33ce40c0dc5ed96bfa9f5aafb5450f47f3953dcd Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 10 Jan 2011 23:18:45 +0300 Subject: [PATCH] Also jump to proper meta tab when opening market group of forced items --- gui/marketBrowser.py | 20 +++++++++++++------- service/market.py | 32 +++++++++++++++++++------------- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/gui/marketBrowser.py b/gui/marketBrowser.py index 1f0c4aada..2ac98f718 100644 --- a/gui/marketBrowser.py +++ b/gui/marketBrowser.py @@ -161,20 +161,26 @@ class MarketTree(wx.TreeCtrl): def jump(self, item): cMarket = service.Market.getInstance() mg = item.marketGroup - if mg is None and item.metaGroup is not None: - mg = item.metaGroup.parent.marketGroup + if mg is None and (item.metaGroup is not None or item.ID in cMarket.FORCED_ITEM_MKTGRPS): + if item.metaGroup is not None: + mg = item.metaGroup.parent.marketGroup + metaGroup = cMarket.getMetaName(item.metaGroup.ID) + elif item.ID in cMarket.FORCED_ITEM_MKTGRPS: + mgid = cMarket.FORCED_ITEM_MKTGRPS[item.ID][0] + mg = cMarket.getMarketGroup(mgid) + metaGroupID = cMarket.FORCED_ITEM_MKTGRPS[item.ID][1] + metaGroupName = "normal" + for metaGroupName, metaGroupIDs in cMarket.META_MAP.iteritems(): + if metaGroupID in metaGroupIDs: + metaGroup = metaGroupName + break for btn in ("normal", "faction", "complex", "officer"): getattr(self.marketBrowser, btn).SetValue(False) cMarket.disableMetaGroup(btn) - metaGroup = cMarket.getMetaName(item.metaGroup.ID) - getattr(self.marketBrowser, metaGroup).SetValue(True) cMarket.activateMetaGroup(metaGroup) self.marketBrowser.itemView.searching = False - if mg is None and item.ID in cMarket.FORCED_ITEM_MKTGRPS: - mgid = cMarket.FORCED_ITEM_MKTGRPS[item.ID] - mg = cMarket.getMarketGroup(mgid) if mg is None: return diff --git a/service/market.py b/service/market.py index c0b0a9bb2..d5ed826ed 100644 --- a/service/market.py +++ b/service/market.py @@ -123,15 +123,16 @@ class Market(): instance = None FORCEPUBLISHED_SHIPS = ("Ibis", "Impairor", "Velator", "Reaper") FORCEPUBLISHED_GROUPS = ("Rookie ship") - FORCED_ITEM_MKTGRPS = { 2080: 648, 2083: 712, 2838: 977, 4579: 1050, 4621: 1051, 20358: 1152, 20371: 1189, - 20443: 1163, 20700: 1187, 21510: 682, 21606: 1185, 22325: 714, 22327: 714, 22329: 714, - 22331: 714, 22333: 714, 22335: 714, 22337: 714, 22339: 714, 22715: 620, 22760: 618, - 22921: 1039, 22923: 1039, 24663: 1176, 24669: 1157, 25867: 1186, 25868: 1180, 27204: 1156, - 27205: 1156, 27206: 1156, 27213: 1154, 27214: 1154, 27215: 1154, 27216: 1152, 27217: 1152, - 27218: 1152, 27219: 1160, 27220: 1160, 27221: 1160, 28513: 644, 30328: 760, 30342: 760, - 30420: 760, 30422: 760, 30424: 760, 30839: 760, 32248: 977, 32254: 1185, 32255: 1167, - 32413: 679, 32416: 680, 32417: 680, 32459: 760, 32461: 760, 32463: 920, 32465: 837, - 32467: 760, 32469: 760 } + FORCED_ITEM_MKTGRPS = { 2080: (648, 1), 2083: (712, 1), 2838: (977, 1), 4579: (1050, 1), 4621: (1051, 3), 20358: (1152, 3), + 20371: (1189, 3), 20443: (1163, 3), 20700: (1187, 3), 21510: (682, 1), 21606: (1185, 3), 22325: (714, 3), + 22327: (714, 3), 22329: (714, 3), 22331: (714, 3), 22333: (714, 1), 22335: (714, 1), 22337: (714, 1), + 22339: (714, 1), 22715: (620, 4), 22760: (618, 4), 22921: (1039, 3), 22923: (1039, 3), 24663: (1176, 1), + 24669: (1157, 3), 25867: (1186, 3), 25868: (1180, 3), 27204: (1156, 1), 27205: (1156, 1), 27206: (1156, 1), + 27213: (1154, 1), 27214: (1154, 1), 27215: (1154, 1), 27216: (1152, 1), 27217: (1152, 1), 27218: (1152, 1), + 27219: (1160, 1), 27220: (1160, 1), 27221: (1160, 1), 28513: (644, 4), 30328: (760, 1), 30342: (760, 1), + 30420: (760, 1), 30422: (760, 1), 30424: (760, 1), 30839: (760, 1), 32248: (977, 4), 32254: (1185, 4), + 32255: (1167, 4), 32413: (679, 4), 32416: (680, 4), 32417: (680, 4), 32459: (760, 1), 32461: (760, 1), + 32463: (920, 1), 32465: (837, 1), 32467: (760, 1), 32469: (760, 1) } META_MAP = {"normal": (1, 2, 14), "faction": (4, 3), "complex": (6,), @@ -300,14 +301,11 @@ class Market(): if len(self.activeMetas) == 0: return tuple() - forceditemids = filter(lambda typeid: self.FORCED_ITEM_MKTGRPS[typeid] == marketGroupId, self.FORCED_ITEM_MKTGRPS) - forceditems = list(eos.db.getItem(typeID) for typeID in forceditemids) - mg = eos.db.getMarketGroup(marketGroupId) l = set() populatedMetas = set() - for item in mg.items + forceditems: + for item in mg.items: populatedMetas.add(1) if 1 in self.activeMetas: l.add(item) @@ -318,6 +316,14 @@ class Market(): if var.metaGroup.ID in self.activeMetas: l.add(var) + forceditemids = filter(lambda typeid: self.FORCED_ITEM_MKTGRPS[typeid][0] == marketGroupId, self.FORCED_ITEM_MKTGRPS) + forceditems = list(eos.db.getItem(typeID) for typeID in forceditemids) + for item in forceditems: + meta = self.FORCED_ITEM_MKTGRPS[item.ID][1] + populatedMetas.add(meta) + if meta in self.activeMetas: + l.add(item) + return list(l), populatedMetas def getPriceNow(self, typeID):