Pass item which is considered to be clicked item to context menus

This commit is contained in:
DarkPhoenix
2019-04-22 15:45:37 +03:00
parent 881ec8b5b4
commit c03d000c45
14 changed files with 19 additions and 19 deletions

View File

@@ -191,5 +191,5 @@ class BoosterView(d.Display):
return None
srcContext = "boosterItem"
itemContext = "Booster"
menu = ContextMenu.getMenu((booster,), (srcContext, itemContext))
menu = ContextMenu.getMenu(booster, (booster,), (srcContext, itemContext))
self.PopupMenu(menu)

View File

@@ -187,5 +187,5 @@ class CargoView(d.Display):
sourceContext = "cargoItem"
itemContext = sMkt.getCategoryByItem(cargo.item).name
menu = ContextMenu.getMenu((cargo,), (sourceContext, itemContext))
menu = ContextMenu.getMenu(cargo, (cargo,), (sourceContext, itemContext))
self.PopupMenu(menu)

View File

@@ -202,7 +202,7 @@ class CommandView(d.Display):
context = ((fitSrcContext, fitItemContext),)
context += (("commandView",),)
menu = ContextMenu.getMenu((item,) if item is not None else [], *context)
menu = ContextMenu.getMenu(item, (item,) if item is not None else [], *context)
if menu is not None:
self.PopupMenu(menu)

View File

@@ -289,5 +289,5 @@ class DroneView(Display):
sMkt = Market.getInstance()
sourceContext = "droneItem"
itemContext = sMkt.getCategoryByItem(drone.item).name
menu = ContextMenu.getMenu((drone,), (sourceContext, itemContext))
menu = ContextMenu.getMenu(drone, (drone,), (sourceContext, itemContext))
self.PopupMenu(menu)

View File

@@ -316,5 +316,5 @@ class FighterDisplay(d.Display):
sMkt = Market.getInstance()
sourceContext = "fighterItem"
itemContext = sMkt.getCategoryByItem(fighter.item).name
menu = ContextMenu.getMenu((fighter,), (sourceContext, itemContext))
menu = ContextMenu.getMenu(fighter, (fighter,), (sourceContext, itemContext))
self.PopupMenu(menu)

View File

@@ -262,12 +262,12 @@ class ImplantDisplay(d.Display):
sourceContext = "implantItem" if fit.implantSource == ImplantLocation.FIT else "implantItemChar"
itemContext = sMkt.getCategoryByItem(implant.item).name
fullContext = ((sourceContext, itemContext), ("implantView", itemContext))
menu = ContextMenu.getMenu((implant,), *fullContext)
menu = ContextMenu.getMenu(implant, (implant,), *fullContext)
elif sel == -1 and fit.implantSource == ImplantLocation.FIT:
fitID = self.mainFrame.getActiveFit()
if fitID is None:
return
context = ("implantView",)
menu = ContextMenu.getMenu([], context)
menu = ContextMenu.getMenu(None, [], context)
if menu is not None:
self.PopupMenu(menu)

View File

@@ -323,7 +323,7 @@ class ProjectedView(d.Display):
context = ((fitSrcContext, fitItemContext),)
context += (("projected",),)
menu = ContextMenu.getMenu((item,) if item is not None else [], *context)
menu = ContextMenu.getMenu(item, (item,) if item is not None else [], *context)
if menu is not None:
self.PopupMenu(menu)

View File

@@ -82,7 +82,8 @@ class ItemAffectedBy(wx.Panel):
# instead, we send the item.
type_ = stuff.__class__.__name__
contexts.append(("itemStats", type_))
menu = ContextMenu.getMenu(stuff if type_ != "Skill" else stuff.item, *contexts)
stuff = stuff if type_ != "Skill" else stuff.item
menu = ContextMenu.getMenu(stuff, (stuff,), *contexts)
self.PopupMenu(menu)
def ExpandCollapseTree(self):

View File

@@ -247,7 +247,7 @@ class ItemView(Display):
sourceContext = "marketItemMisc" if self.marketBrowser.mode in ("search", "recent") else "marketItemGroup"
itemContext = sMkt.getCategoryByItem(item).name
menu = ContextMenu.getMenu((item,), (sourceContext, itemContext))
menu = ContextMenu.getMenu(item, (item,), (sourceContext, itemContext))
self.PopupMenu(menu)
def populate(self, items):

View File

@@ -108,7 +108,7 @@ class ShipItem(SFItem.SFBrowserItem):
pos = event.GetPosition()
pos = self.ScreenToClient(pos)
contexts = [("baseShip", "Ship Basic")]
menu = ContextMenu.getMenu(self.baseItem, *contexts)
menu = ContextMenu.getMenu(self.baseItem, (self.baseItem,), *contexts)
self.PopupMenu(menu, pos)
def OnTimer(self, event):

View File

@@ -602,7 +602,6 @@ class FittingView(d.Display):
self.populate(self.mods)
def fitChanged(self, event):
# print('====== Fit Changed: {} {} activeFitID: {}, eventFitID: {}'.format(repr(self), str(bool(self)), self.activeFitID, event.fitID))
if not self:
event.Skip()
return
@@ -626,7 +625,6 @@ class FittingView(d.Display):
return
sMkt = Market.getInstance()
selection = []
sel = self.GetFirstSelected()
contexts = []
for mod in self.getSelectedMods():
@@ -658,7 +656,7 @@ class FittingView(d.Display):
contexts.append(("fittingShip", "Ship" if not fit.isStructure else "Citadel"))
menu = ContextMenu.getMenu(selection, *contexts)
menu = ContextMenu.getMenu(selection[0], selection, *contexts)
self.PopupMenu(menu)
def click(self, event):

View File

@@ -417,8 +417,8 @@ class SkillTreeView(wx.Panel):
srcContext = "skillItem"
itemContext = "Skill"
context = (srcContext, itemContext)
self.statsMenu = ContextMenu.getMenu(None, context)
self.levelChangeMenu = ContextMenu.getMenu(None, context) or wx.Menu()
self.statsMenu = ContextMenu.getMenu(None, None, context)
self.levelChangeMenu = ContextMenu.getMenu(None, None, context) or wx.Menu()
self.levelChangeMenu.AppendSeparator()
self.levelIds = {}
@@ -715,7 +715,8 @@ class ImplantEditorView(BaseImplantEditorView):
context = (("implantEditor",),)
# fuck good coding practices, passing a pointer to the character editor here for [reasons] =D
# (see implantSets context class for info)
menu = ContextMenu.getMenu((self.Parent.Parent,), *context)
item = self.Parent.Parent
menu = ContextMenu.getMenu(item, (item,), *context)
if menu:
self.PopupMenu(menu)

View File

@@ -44,7 +44,7 @@ class ContextMenu(object):
return False
@classmethod
def getMenu(cls, selection, *fullContexts):
def getMenu(cls, main, selection, *fullContexts):
"""
getMenu returns a menu that is used with wx.PopupMenu.

View File

@@ -134,7 +134,7 @@ class StatsPane(wx.Panel):
viewName = contentPanel.viewName
def handler(event):
menu = ContextMenu.getMenu(None, (viewName,))
menu = ContextMenu.getMenu(None, None, (viewName,))
if menu is not None:
contentPanel.PopupMenu(menu)