diff --git a/gui/builtinAdditionPanes/implantView.py b/gui/builtinAdditionPanes/implantView.py index e608e6ec1..425658dd9 100644 --- a/gui/builtinAdditionPanes/implantView.py +++ b/gui/builtinAdditionPanes/implantView.py @@ -298,8 +298,13 @@ class ImplantDisplay(d.Display): fit = Fit.getInstance().getFit(fitID) sourceContext1 = "implantItem" if fit.implantSource == ImplantLocation.FIT else "implantItemChar" sourceContext2 = "implantItemMisc" if fit.implantSource == ImplantLocation.FIT else "implantItemMiscChar" + sourceContext3 = "implantSetAdd" itemContext = None if mainImplant is None else Market.getInstance().getCategoryByItem(mainImplant.item).name - menu = ContextMenu.getMenu(self, mainImplant, selection, (sourceContext1, itemContext), (sourceContext2, itemContext)) + menu = ContextMenu.getMenu(self, mainImplant, selection, + (sourceContext1, itemContext), + (sourceContext2, itemContext), + (sourceContext3, itemContext) + ) if menu: self.PopupMenu(menu) diff --git a/gui/builtinContextMenus/__init__.py b/gui/builtinContextMenus/__init__.py index 0750f7075..a2a76b048 100644 --- a/gui/builtinContextMenus/__init__.py +++ b/gui/builtinContextMenus/__init__.py @@ -36,6 +36,7 @@ from gui.builtinContextMenus import cargoAdd from gui.builtinContextMenus import cargoAddAmmo from gui.builtinContextMenus import itemProject from gui.builtinContextMenus import ammoToDmgPattern +from gui.builtinContextMenus import implantSetLoad from gui.builtinContextMenus import implantSetAdd # Price from gui.builtinContextMenus import priceOptions diff --git a/gui/builtinContextMenus/implantSetAdd.py b/gui/builtinContextMenus/implantSetAdd.py index cc418b8ad..2e46c0d05 100644 --- a/gui/builtinContextMenus/implantSetAdd.py +++ b/gui/builtinContextMenus/implantSetAdd.py @@ -5,7 +5,7 @@ from gui.contextMenu import ContextMenuUnconditional from service.implantSet import ImplantSets as s_ImplantSets -class AddImplantSet(ContextMenuUnconditional): +class ImplantSetAdd(ContextMenuUnconditional): def display(self, callingWindow, srcContext): @@ -14,10 +14,10 @@ class AddImplantSet(ContextMenuUnconditional): if len(implantSets) == 0: return False - return srcContext in ("implantItemMisc", "implantEditor") + return srcContext in ("implantSetAdd", "implantEditor") def getText(self, callingWindow, itmContext): - return "Add Implant Set" + return "Add As New Implant Set" def getSubMenu(self, callingWindow, context, rootMenu, i, pitem): m = wx.Menu() @@ -49,4 +49,4 @@ class AddImplantSet(ContextMenuUnconditional): self.callingWindow.addImplantSet(impSet) -AddImplantSet.register() +ImplantSetAdd.register() diff --git a/gui/builtinContextMenus/implantSetLoad.py b/gui/builtinContextMenus/implantSetLoad.py new file mode 100644 index 000000000..6bb030826 --- /dev/null +++ b/gui/builtinContextMenus/implantSetLoad.py @@ -0,0 +1,52 @@ +# noinspection PyPackageRequirements +import wx + +from gui.contextMenu import ContextMenuUnconditional +from service.implantSet import ImplantSets as s_ImplantSets + + +class ImplantSetLoad(ContextMenuUnconditional): + + def display(self, callingWindow, srcContext): + + sIS = s_ImplantSets.getInstance() + implantSets = sIS.getImplantSetList() + + if len(implantSets) == 0: + return False + return srcContext in ("implantItemMisc", "implantEditor") + + def getText(self, callingWindow, itmContext): + return "Load Implant Set" + + def getSubMenu(self, callingWindow, context, rootMenu, i, pitem): + m = wx.Menu() + bindmenu = rootMenu if "wxMSW" in wx.PlatformInfo else m + + sIS = s_ImplantSets.getInstance() + implantSets = sIS.getImplantSetList() + + self.context = context + self.callingWindow = callingWindow + + self.idmap = {} + + for set in sorted(implantSets, key=lambda i: i.name): + id = ContextMenuUnconditional.nextID() + mitem = wx.MenuItem(rootMenu, id, set.name) + bindmenu.Bind(wx.EVT_MENU, self.handleSelection, mitem) + self.idmap[id] = set + m.Append(mitem) + + return m + + def handleSelection(self, event): + impSet = self.idmap.get(event.Id, None) + if impSet is None: + event.Skip() + return + + self.callingWindow.addImplantSet(impSet) + + +ImplantSetLoad.register()