From 2aa274f56fbd08f0c09a2a8bfa6b3c6c36b907fc Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Tue, 30 Jul 2019 19:20:14 +0300 Subject: [PATCH] Remove character editor implant set context menu hack as it's no longer needed --- gui/builtinContextMenus/implantSetAdd.py | 33 +++++++----------------- gui/characterEditor.py | 5 +--- 2 files changed, 11 insertions(+), 27 deletions(-) diff --git a/gui/builtinContextMenus/implantSetAdd.py b/gui/builtinContextMenus/implantSetAdd.py index 703e80fe4..e85f149b4 100644 --- a/gui/builtinContextMenus/implantSetAdd.py +++ b/gui/builtinContextMenus/implantSetAdd.py @@ -4,17 +4,17 @@ import wx import gui.fitCommands as cmd import gui.globalEvents as GE import gui.mainFrame -from gui.contextMenu import ContextMenuSingle +from gui.contextMenu import ContextMenuUnconditional from service.character import Character from service.implantSet import ImplantSets as s_ImplantSets -class AddImplantSet(ContextMenuSingle): +class AddImplantSet(ContextMenuUnconditional): def __init__(self): self.mainFrame = gui.mainFrame.MainFrame.getInstance() - def display(self, callingWindow, srcContext, mainItem): + def display(self, callingWindow, srcContext): sIS = s_ImplantSets.getInstance() implantSets = sIS.getImplantSetList() @@ -23,24 +23,10 @@ class AddImplantSet(ContextMenuSingle): return False return srcContext in ("implantView", "implantEditor") - def getText(self, callingWindow, itmContext, mainItem): + def getText(self, callingWindow, itmContext): return "Add Implant Set" - def getSubMenu(self, callingWindow, context, mainItem, rootMenu, i, pitem): - """ - A note on the mainItem here: Most context menus act on a fit, so it's easy enough to get the active fit from - the MainFrame instance. There's never been a reason to get info from another window, so there's not common - way of doing this. However, we use this context menu within the Character Editor to apply implant sets to a - character, so we need to access the character editor. - - It is for these reasons that I hijack the mainItem parameter when calling the menu and pass a pointer to the - Character Editor. This way we can use it to get current editing character ID and apply the implants. - - It would probably be better to have a function on the MainFrame to get the currently open Character Editor (as - we do with the item stats window). Eventually... Until then, this long ass note will remain to remind me why - stupid shit like this is even happening. - """ - + def getSubMenu(self, callingWindow, context, rootMenu, i, pitem): m = wx.Menu() bindmenu = rootMenu if "wxMSW" in wx.PlatformInfo else m @@ -48,12 +34,12 @@ class AddImplantSet(ContextMenuSingle): implantSets = sIS.getImplantSetList() self.context = context - self.mainItem = mainItem # dirty hack here + self.callingWindow = callingWindow self.idmap = {} for set in sorted(implantSets, key=lambda i: i.name): - id = ContextMenuSingle.nextID() + id = ContextMenuUnconditional.nextID() mitem = wx.MenuItem(rootMenu, id, set.name) bindmenu.Bind(wx.EVT_MENU, self.handleSelection, mitem) self.idmap[id] = set @@ -69,14 +55,15 @@ class AddImplantSet(ContextMenuSingle): return if self.context == "implantEditor": + charEditor = self.callingWindow.Parent.Parent # we are calling from character editor, the implant source is different sChar = Character.getInstance() - char = self.mainItem.entityEditor.getActiveEntity() + char = charEditor.entityEditor.getActiveEntity() for implant in set.implants: sChar.addImplant(char.ID, implant.item.ID) - wx.PostEvent(self.mainItem, GE.CharChanged()) + wx.PostEvent(charEditor, GE.CharChanged()) else: self.mainFrame.command.Submit(cmd.GuiAddImplantSetCommand( fitID=self.mainFrame.getActiveFit(), diff --git a/gui/characterEditor.py b/gui/characterEditor.py index 0d2eb83f6..1de9c4ac3 100644 --- a/gui/characterEditor.py +++ b/gui/characterEditor.py @@ -710,10 +710,7 @@ class ImplantEditorView(BaseImplantEditorView): def spawnMenu(self, event): context = (("implantEditor",),) - # fuck good coding practices, passing a pointer to the character editor here for [reasons] =D - # (see implantSets context class for info) - item = self.Parent.Parent - menu = ContextMenu.getMenu(self, item, (item,), *context) + menu = ContextMenu.getMenu(self, None, None, *context) if menu: self.PopupMenu(menu)