Implement alt logic in projected item removal via context menu

This commit is contained in:
DarkPhoenix
2019-04-29 01:04:22 +03:00
parent 99d72956e8
commit 958fbac582
2 changed files with 33 additions and 5 deletions

View File

@@ -25,17 +25,17 @@ from logbook import Logger
import gui.builtinAdditionPanes.droneView import gui.builtinAdditionPanes.droneView
import gui.display as d import gui.display as d
import gui.fitCommands as cmd
import gui.globalEvents as GE import gui.globalEvents as GE
from eos.saveddata.drone import Drone as EosDrone from eos.saveddata.drone import Drone as EosDrone
from eos.saveddata.fighter import Fighter as EosFighter from eos.saveddata.fighter import Fighter as EosFighter
from eos.saveddata.fit import Fit as EosFit
from eos.saveddata.module import Module as EosModule from eos.saveddata.module import Module as EosModule
from gui.builtinViewColumns.state import State from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu from gui.contextMenu import ContextMenu
from gui.utils.staticHelpers import DragDropHelper from gui.utils.staticHelpers import DragDropHelper
from service.fit import Fit from service.fit import Fit
from service.market import Market from service.market import Market
import gui.fitCommands as cmd
pyfalog = Logger(__name__) pyfalog = Logger(__name__)

View File

@@ -4,8 +4,12 @@ import wx
import gui.fitCommands as cmd import gui.fitCommands as cmd
import gui.mainFrame import gui.mainFrame
from eos.saveddata.drone import Drone as EosDrone
from eos.saveddata.fighter import Fighter as EosFighter
from eos.saveddata.fit import Fit as EosFit
from eos.saveddata.module import Module as EosModule
from gui.contextMenu import ContextMenuCombined from gui.contextMenu import ContextMenuCombined
from gui.fitCommands.helpers import getSimilarModPositions, getSimilarFighters from gui.fitCommands.helpers import getSimilarFighters, getSimilarModPositions
from service.fit import Fit from service.fit import Fit
from service.settings import ContextMenuSettings from service.settings import ContextMenuSettings
@@ -122,8 +126,32 @@ class RemoveItem(ContextMenuCombined):
def __handleProjectedItem(self, mainItem, selection): def __handleProjectedItem(self, mainItem, selection):
fitID = self.mainFrame.getActiveFit() fitID = self.mainFrame.getActiveFit()
self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand( if isinstance(mainItem, EosFit):
fitID=fitID, items=selection, amount=math.inf)) self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand(
fitID=fitID, items=selection, amount=math.inf))
elif isinstance(mainItem, EosModule):
if wx.GetMouseState().GetModifiers() == wx.MOD_ALT:
fit = Fit.getInstance().getFit(fitID)
positions = getSimilarModPositions(fit.projectedModules, mainItem)
items = [fit.projectedModules[p] for p in positions]
else:
items = selection
self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand(
fitID=fitID, items=items, amount=math.inf))
elif isinstance(mainItem, EosDrone):
self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand(
fitID=fitID, items=selection, amount=math.inf))
elif isinstance(mainItem, EosFighter):
if wx.GetMouseState().GetModifiers() == wx.MOD_ALT:
fit = Fit.getInstance().getFit(fitID)
items = getSimilarFighters(fit.projectedFighters, mainItem)
else:
items = selection
self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand(
fitID=fitID, items=items, amount=math.inf))
else:
self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand(
fitID=fitID, items=selection, amount=math.inf))
def __handleCommandFit(self, mainItem, selection): def __handleCommandFit(self, mainItem, selection):
fitID = self.mainFrame.getActiveFit() fitID = self.mainFrame.getActiveFit()