diff --git a/gui/builtinAdditionPanes/cargoView.py b/gui/builtinAdditionPanes/cargoView.py index e28a1c3eb..235f4abb0 100644 --- a/gui/builtinAdditionPanes/cargoView.py +++ b/gui/builtinAdditionPanes/cargoView.py @@ -24,6 +24,7 @@ import gui.display as d import gui.fitCommands as cmd import gui.globalEvents as GE from gui.contextMenu import ContextMenu +from gui.builtinMarketBrowser.events import ITEM_SELECTED, ItemSelected from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit from service.market import Market @@ -58,6 +59,7 @@ class CargoView(d.Display): self.lastFitId = None self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged) + self.mainFrame.Bind(ITEM_SELECTED, self.addItem) self.Bind(wx.EVT_LEFT_DCLICK, self.onLeftDoubleClick) self.Bind(wx.EVT_KEY_UP, self.kbEvent) @@ -66,6 +68,31 @@ class CargoView(d.Display): self.Bind(wx.EVT_CONTEXT_MENU, self.spawnMenu) + def addItem(self, event): + item = Market.getInstance().getItem(event.itemID, eager='group') + if item is None or not item.isCharge: + event.Skip() + return + + fitID = self.mainFrame.getActiveFit() + fit = Fit.getInstance().getFit(fitID) + + if not fit: + event.Skip() + return + modifiers = wx.GetMouseState().GetModifiers() + amount = 1 + if modifiers == wx.MOD_CONTROL: + amount = 10 + elif modifiers == wx.MOD_ALT: + amount = 100 + elif modifiers == wx.MOD_CONTROL | wx.MOD_ALT: + amount = 1000 + self.mainFrame.command.Submit(cmd.GuiAddCargoCommand( + fitID=fitID, itemID=item.ID, amount=amount)) + self.mainFrame.additionsPane.select('Cargo') + event.Skip() + def handleListDrag(self, x, y, data): """ Handles dragging of items from various pyfa displays which support it diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 0c3088e3e..76f4c1aa2 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -377,23 +377,7 @@ class FittingView(d.Display): event.Skip() return batchOp = wx.GetMouseState().GetModifiers() == wx.MOD_ALT and getattr(event, 'allowBatch', None) is not False - # If we've selected ammo, then apply to the selected module(s) - if item.isCharge: - positions = [] - fit = Fit.getInstance().getFit(fitID) - if batchOp: - for position, mod in enumerate(fit.modules): - if isinstance(mod, Module) and not mod.isEmpty: - positions.append(position) - else: - for mod in self.getSelectedMods(): - if mod.isEmpty or mod not in fit.modules: - continue - positions.append(fit.modules.index(mod)) - if len(positions) > 0: - self.mainFrame.command.Submit(cmd.GuiChangeLocalModuleChargesCommand( - fitID=fitID, positions=positions, chargeItemID=itemID)) - elif (item.isModule and not batchOp) or item.isSubsystem: + if (item.isModule and not batchOp) or item.isSubsystem: self.mainFrame.command.Submit(cmd.GuiAddLocalModuleCommand(fitID=fitID, itemID=itemID)) elif item.isModule and batchOp: self.mainFrame.command.Submit(cmd.GuiFillWithNewLocalModulesCommand(fitID=fitID, itemID=itemID))