diff --git a/gui/builtinAdditionPanes/droneView.py b/gui/builtinAdditionPanes/droneView.py index 201a005d9..4a4f554cd 100644 --- a/gui/builtinAdditionPanes/droneView.py +++ b/gui/builtinAdditionPanes/droneView.py @@ -76,7 +76,7 @@ class DroneView(Display): self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged) self.mainFrame.Bind(ITEM_SELECTED, self.addItem) - self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem) + self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDoubleClick) self.Bind(wx.EVT_LEFT_DOWN, self.click) self.Bind(wx.EVT_KEY_UP, self.kbEvent) self.Bind(wx.EVT_MOTION, self.OnMouseMove) @@ -223,13 +223,17 @@ class DroneView(Display): event.Skip() - def removeItem(self, event): + def OnLeftDoubleClick(self, event): row, _ = self.HitTest(event.Position) if row != -1: col = self.getColumn(event.Position) if col != self.getColIndex(State): + mstate = wx.GetMouseState() drone = self.drones[self.GetItemData(row)] - self.removeDrone(drone) + if mstate.cmdDown or mstate.altDown: + self.removeDroneStack(drone) + else: + self.removeDrone(drone) def removeDrone(self, drone): fitID = self.mainFrame.getActiveFit() @@ -253,7 +257,6 @@ class DroneView(Display): sel = self.GetFirstSelected() if sel != -1: drone = self.drones[sel] - sMkt = Market.getInstance() sourceContext = "droneItem" itemContext = sMkt.getCategoryByItem(drone.item).name diff --git a/gui/builtinAdditionPanes/projectedView.py b/gui/builtinAdditionPanes/projectedView.py index 74d54ed5c..473da003c 100644 --- a/gui/builtinAdditionPanes/projectedView.py +++ b/gui/builtinAdditionPanes/projectedView.py @@ -331,8 +331,11 @@ class ProjectedView(d.Display): self.mainFrame.command.Submit(cmd.GuiRemoveProjectedModuleCommand( fitID=fitID, position=Fit.getInstance().getFit(fitID).projectedModules.index(thing))) elif isinstance(thing, es_Drone): + mstate = wx.GetMouseState() self.mainFrame.command.Submit(cmd.GuiRemoveProjectedDroneCommand( - fitID=fitID, itemID=thing.itemID, amount=1)) + fitID=fitID, + itemID=thing.itemID, + amount=math.inf if mstate.cmdDown or mstate.altDown else 1)) elif isinstance(thing, es_Fighter): self.mainFrame.command.Submit(cmd.GuiRemoveProjectedFighterCommand( fitID=fitID, position=Fit.getInstance().getFit(fitID).projectedFighters.index(thing))) diff --git a/gui/builtinViews/implantEditor.py b/gui/builtinViews/implantEditor.py index 603d00c4b..4aaa72a8d 100644 --- a/gui/builtinViews/implantEditor.py +++ b/gui/builtinViews/implantEditor.py @@ -199,7 +199,7 @@ class AvailableImplantsView(d.Display): def __init__(self, parent): d.Display.__init__(self, parent, style=wx.LC_SINGLE_SEL) - self.Bind(wx.EVT_LEFT_DCLICK, parent.removeItem) + self.Bind(wx.EVT_LEFT_DCLICK, parent.OnLeftDoubleClick) class ItemView(d.Display):