Add ability to remove similar modules to "remove module" context menu

This commit is contained in:
DarkPhoenix
2019-04-23 17:50:20 +03:00
parent 99f00b25a1
commit b404abca41
2 changed files with 16 additions and 10 deletions

View File

@@ -1,6 +1,9 @@
import math
import wx
import gui.fitCommands as cmd
from gui.fitCommands.helpers import getSimilarModPositions
import gui.mainFrame
from gui.contextMenu import ContextMenuCombined
from service.fit import Fit
@@ -24,7 +27,7 @@ class RemoveItem(ContextMenuCombined):
):
return False
if mainItem is None and len(selection) == 0:
if mainItem is None or getattr(mainItem, "isEmpty", False):
return False
return True
@@ -36,18 +39,18 @@ class RemoveItem(ContextMenuCombined):
def activate(self, fullContext, mainItem, selection, i):
mainItem = selection[0] if mainItem is None else mainItem
srcContext = fullContext[0]
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)
fit = Fit.getInstance().getFit(fitID)
if srcContext == "fittingModule":
positions = []
for position, mod in enumerate(fit.modules):
if mod in selection:
positions.append(position)
if wx.GetMouseState().altDown:
positions = getSimilarModPositions(fit.modules, mainItem)
else:
positions = []
for position, mod in enumerate(fit.modules):
if mod in selection:
positions.append(position)
self.mainFrame.command.Submit(cmd.GuiRemoveLocalModuleCommand(
fitID=fitID, positions=positions))
elif srcContext == "droneItem":

View File

@@ -25,7 +25,10 @@ class ChangeModuleAmmo(ContextMenuCombined):
self.loadableCharges = {}
def display(self, srcContext, mainItem, selection):
if self.mainFrame.getActiveFit() is None or srcContext not in ("fittingModule", "projectedModule"):
if srcContext not in ("fittingModule", "projectedModule"):
return False
if self.mainFrame.getActiveFit() is None:
return False
self.mainCharges = self.getChargesForMod(mainItem)