From bb76e9b3b42e00c665c6691eadc5580a3b994afa Mon Sep 17 00:00:00 2001 From: Eugen Beck Date: Sun, 22 Sep 2013 14:19:24 +0200 Subject: [PATCH] Added "Remove Drone Stack" to drone context menu --- gui/builtinContextMenus/__init__.py | 4 +-- gui/builtinContextMenus/droneRemoveStack.py | 28 +++++++++++++++++++++ service/fit.py | 6 ++--- 3 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 gui/builtinContextMenus/droneRemoveStack.py diff --git a/gui/builtinContextMenus/__init__.py b/gui/builtinContextMenus/__init__.py index bf2b8def3..623f0aff4 100644 --- a/gui/builtinContextMenus/__init__.py +++ b/gui/builtinContextMenus/__init__.py @@ -1,2 +1,2 @@ -__all__ = ["moduleAmmoPicker", "itemStats", "damagePattern", "marketJump", "itemRemove", - "droneSplit", "ammoPattern", "project", "factorReload", "whProjector"] +__all__ = ["moduleAmmoPicker", "itemStats", "damagePattern", "marketJump", "itemRemove", + "droneSplit", "droneRemoveStack", "ammoPattern", "project", "factorReload", "whProjector"] diff --git a/gui/builtinContextMenus/droneRemoveStack.py b/gui/builtinContextMenus/droneRemoveStack.py new file mode 100644 index 000000000..ebd657345 --- /dev/null +++ b/gui/builtinContextMenus/droneRemoveStack.py @@ -0,0 +1,28 @@ +from gui.contextMenu import ContextMenu +import gui.mainFrame +import service +import wx +import gui.globalEvents as GE + +class ItemRemove(ContextMenu): + def __init__(self): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + + def display(self, srcContext, selection): + return srcContext == "droneItem" + + def getText(self, itmContext, selection): + return "Remove {0} Stack".format(itmContext) + + def activate(self, fullContext, selection, i): + srcContext = fullContext[0] + sFit = service.Fit.getInstance() + fitID = self.mainFrame.getActiveFit() + cFit = sFit.getFit(fitID) + + idx = cFit.drones.index(selection[0]) + sFit.removeDrone(fitID, idx, numDronesToRemove=cFit.drones[idx].amount) + + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + +ItemRemove.register() \ No newline at end of file diff --git a/service/fit.py b/service/fit.py index 4df5fb2f2..fe4754eee 100644 --- a/service/fit.py +++ b/service/fit.py @@ -438,12 +438,12 @@ class Fit(object): fit = eos.db.getFit(fitID) self.splitDrones(fit, d, amount, fit.drones) - def removeDrone(self, fitID, i): + def removeDrone(self, fitID, i, numDronesToRemove=1): fit = eos.db.getFit(fitID) d = fit.drones[i] - d.amount -= 1 + d.amount -= numDronesToRemove if d.amountActive > 0: - d.amountActive -= 1 + d.amountActive -= numDronesToRemove if d.amount == 0: del fit.drones[i]