From 9d58ceb14dc0388f20fbd3adf9c746896a33b709 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 25 Apr 2019 09:56:09 +0300 Subject: [PATCH] Remove multiple cargo items at once via context menu --- gui/builtinAdditionPanes/cargoView.py | 22 +++++++++++++--------- gui/builtinContextMenus/itemRemove.py | 3 ++- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/gui/builtinAdditionPanes/cargoView.py b/gui/builtinAdditionPanes/cargoView.py index 271232b97..f21a97953 100644 --- a/gui/builtinAdditionPanes/cargoView.py +++ b/gui/builtinAdditionPanes/cargoView.py @@ -184,17 +184,21 @@ class CargoView(d.Display): self.mainFrame.command.Submit(cmd.GuiRemoveCargosCommand(fitID=fitID, itemIDs=itemIDs)) def spawnMenu(self, event): - sel = self.GetFirstSelected() - if sel != -1: + selection = self.getSelectedCargos() + clickedPos = self.getRowByAbs(event.Position) + mainCargo = None + if clickedPos != -1: try: - cargo = self.cargo[sel] + cargo = self.cargo[clickedPos] except IndexError: - return - sMkt = Market.getInstance() - sourceContext = "cargoItem" - itemContext = sMkt.getCategoryByItem(cargo.item).name - - menu = ContextMenu.getMenu(cargo, (cargo,), (sourceContext, itemContext)) + pass + else: + if cargo in self.original: + mainCargo = cargo + sourceContext = "cargoItem" + itemContext = None if mainCargo is None else Market.getInstance().getCategoryByItem(mainCargo.item).name + menu = ContextMenu.getMenu(mainCargo, selection, (sourceContext, itemContext)) + if menu: self.PopupMenu(menu) def getSelectedCargos(self): diff --git a/gui/builtinContextMenus/itemRemove.py b/gui/builtinContextMenus/itemRemove.py index b549d4d74..98d236e98 100644 --- a/gui/builtinContextMenus/itemRemove.py +++ b/gui/builtinContextMenus/itemRemove.py @@ -111,8 +111,9 @@ class RemoveItem(ContextMenuCombined): def __handleCargo(self, mainItem, selection): fitID = self.mainFrame.getActiveFit() + itemIDs = [c.itemID for c in selection] self.mainFrame.command.Submit(cmd.GuiRemoveCargosCommand( - fitID=fitID, itemIDs=[mainItem.itemID])) + fitID=fitID, itemIDs=itemIDs)) def __handleProjectedFit(self, mainItem, selection): fitID = self.mainFrame.getActiveFit()