From 4f865896c737d774fb53952cbf0d7347689c1f7e Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 26 Aug 2019 04:01:23 +0300 Subject: [PATCH] Force variations menu to respect meta group overrides --- gui/builtinContextMenus/itemVariationChange.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gui/builtinContextMenus/itemVariationChange.py b/gui/builtinContextMenus/itemVariationChange.py index 290606e25..5c2e110c3 100644 --- a/gui/builtinContextMenus/itemVariationChange.py +++ b/gui/builtinContextMenus/itemVariationChange.py @@ -51,6 +51,7 @@ class ChangeItemToVariation(ContextMenuCombined): def getSubMenu(self, callingWindow, context, mainItem, selection, rootMenu, i, pitem): self.moduleLookup = {} sFit = Fit.getInstance() + sMkt = Market.getInstance() fit = sFit.getFit(self.mainFrame.getActiveFit()) def get_metalevel(x): @@ -61,7 +62,8 @@ class ChangeItemToVariation(ContextMenuCombined): def get_metagroup(x): # We want deadspace before officer mods remap = {5: 6, 6: 5} - return remap.get(x.metaGroup.ID, x.metaGroup.ID) if x.metaGroup is not None else 0 + metaGroup = sMkt.getMetaGroupByItem(x) + return remap.get(metaGroup.ID, metaGroup.ID) if metaGroup is not None else 0 def get_boosterrank(x): # If we're returning a lot of items, sort my name @@ -84,7 +86,9 @@ class ChangeItemToVariation(ContextMenuCombined): bindmenu = m # Do not show abyssal items - items = list(i for i in self.mainVariations if i.metaGroup is None or i.metaGroup.ID != 15) + items = list( + i for i in self.mainVariations + if sMkt.getMetaGroupByItem(i) is None or sMkt.getMetaGroupByItem(i).ID != 15) # Sort items by metalevel, and group within that metalevel # Sort all items by name first items.sort(key=lambda x: x.name) @@ -102,12 +106,13 @@ class ChangeItemToVariation(ContextMenuCombined): group = None for item in items: # Apparently no metaGroup for the Tech I variant: + metaGroup = sMkt.getMetaGroupByItem(item) if 'subSystem' in item.effects: thisgroup = item.marketGroup.marketGroupName - elif item.metaGroup is None: + elif metaGroup is None: thisgroup = 'Tech I' else: - thisgroup = item.metaGroup.name + thisgroup = metaGroup.name if thisgroup != group and context not in ('implantItem', 'boosterItem'): group = thisgroup