Implement fittingMode

This commit is contained in:
Ebag333
2016-12-08 18:56:43 -08:00
parent 9403a1fce9
commit 5eb2fef89c
4 changed files with 21 additions and 21 deletions

View File

@@ -14,7 +14,8 @@ class ItemRemove(ContextMenu):
"boosterItem", "projectedModule", "boosterItem", "projectedModule",
"projectedCharge", "cargoItem", "projectedCharge", "cargoItem",
"projectedFit", "projectedDrone", "projectedFit", "projectedDrone",
"fighterItem", "projectedFighter") "fighterItem", "projectedFighter",
"fittingMode",)
def getText(self, itmContext, selection): def getText(self, itmContext, selection):
return "Remove {0}".format(itmContext if itmContext is not None else "Item") return "Remove {0}".format(itmContext if itmContext is not None else "Item")

View File

@@ -18,7 +18,8 @@ class ItemStats(ContextMenu):
"skillItem", "projectedModule", "skillItem", "projectedModule",
"projectedDrone", "projectedCharge", "projectedDrone", "projectedCharge",
"itemStats", "fighterItem", "itemStats", "fighterItem",
"implantItemChar", "projectedFighter") "implantItemChar", "projectedFighter",
"fittingMode")
def getText(self, itmContext, selection): def getText(self, itmContext, selection):
return "{0} Stats".format(itmContext if itmContext is not None else "Item") return "{0} Stats".format(itmContext if itmContext is not None else "Item")
@@ -29,6 +30,8 @@ class ItemStats(ContextMenu):
fitID = self.mainFrame.getActiveFit() fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance() sFit = service.Fit.getInstance()
stuff = sFit.getFit(fitID).ship stuff = sFit.getFit(fitID).ship
elif srcContext == "fittingMode":
stuff = selection[0].item
else: else:
stuff = selection[0] stuff = selection[0]

View File

@@ -496,12 +496,19 @@ class FittingView(d.Display):
while sel != -1 and sel not in self.blanks: while sel != -1 and sel not in self.blanks:
mod = self.mods[self.GetItemData(sel)] mod = self.mods[self.GetItemData(sel)]
# Test if mod.isEmpty does not exist. # Test if this is a mode, which is a special snowflake of a Module
# Certain special module can be missing this trait if hasattr(mod, "_Mode__item"):
# Example: T3D modes srcContext = "fittingMode"
if not hasattr(mod, 'isEmpty'): # Skip the normal processing
# Set it if missing, prevents later stack traces. mod.isEmpty = True
mod.isEmpty = False
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: if not mod.isEmpty:
srcContext = "fittingModule" srcContext = "fittingModule"
@@ -510,12 +517,6 @@ class FittingView(d.Display):
if not srcContext in tuple(fCtxt[0] for fCtxt in contexts): if not srcContext in tuple(fCtxt[0] for fCtxt in contexts):
contexts.append(fullContext) 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: if mod.charge is not None:
srcContext = "fittingCharge" srcContext = "fittingCharge"

View File

@@ -71,13 +71,8 @@ class ContextMenu(object):
texts = m.getText(itemContext, selection) texts = m.getText(itemContext, selection)
# Check the selected item to see if it has special reasons for not showing the menu item # Check the selected item to see if it has special reasons for not showing the menu item
skip_menu_item = False if srcContext == "fittingMode" and texts == "Remove Module":
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 # Don't show remove for modes, these are special modules that cannot be removed
skip_menu_item = True
if skip_menu_item == True:
continue continue
if isinstance(texts, basestring): if isinstance(texts, basestring):