Issue #2073: Added popup menu item

This commit is contained in:
Gochim
2019-12-03 09:23:54 +02:00
parent 9943f784a8
commit 259214e907
4 changed files with 63 additions and 5 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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()

View File

@@ -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()