From 5eb2fef89c79cc17f734d0b45f7d1a18ce93ebd7 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Thu, 8 Dec 2016 18:56:43 -0800 Subject: [PATCH] Implement fittingMode --- gui/builtinContextMenus/itemRemove.py | 3 ++- gui/builtinContextMenus/itemStats.py | 5 ++++- gui/builtinViews/fittingView.py | 25 +++++++++++++------------ gui/contextMenu.py | 9 ++------- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index c355d98b5..e111ec2d9 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -14,7 +14,8 @@ class ItemRemove(ContextMenu): "boosterItem", "projectedModule", "projectedCharge", "cargoItem", "projectedFit", "projectedDrone", - "fighterItem", "projectedFighter") + "fighterItem", "projectedFighter", + "fittingMode",) def getText(self, itmContext, selection): return "Remove {0}".format(itmContext if itmContext is not None else "Item") diff --git a/gui/builtinContextMenus/itemStats.py b/gui/builtinContextMenus/itemStats.py index d8d7e04ac..df059e782 100644 --- a/gui/builtinContextMenus/itemStats.py +++ b/gui/builtinContextMenus/itemStats.py @@ -18,7 +18,8 @@ class ItemStats(ContextMenu): "skillItem", "projectedModule", "projectedDrone", "projectedCharge", "itemStats", "fighterItem", - "implantItemChar", "projectedFighter") + "implantItemChar", "projectedFighter", + "fittingMode") def getText(self, itmContext, selection): return "{0} Stats".format(itmContext if itmContext is not None else "Item") @@ -29,6 +30,8 @@ class ItemStats(ContextMenu): fitID = self.mainFrame.getActiveFit() sFit = service.Fit.getInstance() stuff = sFit.getFit(fitID).ship + elif srcContext == "fittingMode": + stuff = selection[0].item else: stuff = selection[0] diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 9c19be68e..dd0f5338e 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -496,12 +496,19 @@ class FittingView(d.Display): while sel != -1 and sel not in self.blanks: mod = self.mods[self.GetItemData(sel)] - # Test if mod.isEmpty does not exist. - # Certain special module can be missing this trait - # Example: T3D modes - if not hasattr(mod, 'isEmpty'): - # Set it if missing, prevents later stack traces. - mod.isEmpty = False + # Test if this is a mode, which is a special snowflake of a Module + if hasattr(mod, "_Mode__item"): + srcContext = "fittingMode" + # Skip the normal processing + mod.isEmpty = True + + itemContext = sMkt.getCategoryByItem(mod.item).name + fullContext = (srcContext, itemContext) + if not srcContext in tuple(fCtxt[0] for fCtxt in contexts): + contexts.append(fullContext) + + selection.append(mod) + if not mod.isEmpty: srcContext = "fittingModule" @@ -510,12 +517,6 @@ class FittingView(d.Display): if not srcContext in tuple(fCtxt[0] for fCtxt in contexts): contexts.append(fullContext) - # Test if mod.charge exists - try: - mod.charge - except AttributeError: - # The attribute doesn't exist at all. Set to none so we don't get errors later. - mod.charge = None if mod.charge is not None: srcContext = "fittingCharge" diff --git a/gui/contextMenu.py b/gui/contextMenu.py index dcf5e6764..a2840f000 100644 --- a/gui/contextMenu.py +++ b/gui/contextMenu.py @@ -71,13 +71,8 @@ class ContextMenu(object): texts = m.getText(itemContext, selection) # Check the selected item to see if it has special reasons for not showing the menu item - skip_menu_item = False - for sel in selection: - if hasattr(sel, "_Mode__item") and texts == "Remove Module": - # Don't show remove for modes, these are special modules that cannot be removed - skip_menu_item = True - - if skip_menu_item == True: + if srcContext == "fittingMode" and texts == "Remove Module": + # Don't show remove for modes, these are special modules that cannot be removed continue if isinstance(texts, basestring):