Add context menu to change system security status

This commit is contained in:
DarkPhoenix
2019-05-01 16:22:26 +03:00
parent a7dcf1ace6
commit c447cf06d7
4 changed files with 62 additions and 2 deletions

View File

@@ -39,4 +39,6 @@ from gui.builtinContextMenus import ( # noqa: E402,F401
# Firepower panel
factorReload,
targetResists,
# Targeting & misc panel
fitSystemSecurity,
)

View File

@@ -0,0 +1,58 @@
from collections import OrderedDict
import wx
import gui.fitCommands as cmd
import gui.mainFrame
from eos.const import FitSystemSecurity
from gui.contextMenu import ContextMenuUnconditional
from service.fit import Fit
optionMap = OrderedDict((
('High Security', FitSystemSecurity.HISEC),
('Low Security', FitSystemSecurity.LOWSEC),
('Null Security', FitSystemSecurity.NULLSEC),
('W-Space', FitSystemSecurity.WSPACE)))
class FitSystemSecurityMenu(ContextMenuUnconditional):
def __init__(self):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
def display(self, srcContext):
return srcContext == 'targetingMiscViewMinimal'
def getText(self, itmContext):
return "System Security Status"
def addOption(self, menu, optionLabel):
id = ContextMenuUnconditional.nextID()
self.optionIds[id] = optionLabel
menuItem = wx.MenuItem(menu, id, optionLabel, kind=wx.ITEM_CHECK)
menu.Bind(wx.EVT_MENU, self.handleMode, menuItem)
return menuItem
def getSubMenu(self, context, rootMenu, i, pitem):
fitID = self.mainFrame.getActiveFit()
fit = Fit.getInstance().getFit(fitID)
msw = True if "wxMSW" in wx.PlatformInfo else False
self.optionIds = {}
sub = wx.Menu()
for optionLabel, optionValue in optionMap.items():
menuItem = self.addOption(rootMenu if msw else sub, optionLabel)
sub.Append(menuItem)
menuItem.Check(fit.getSystemSecurity() == optionValue)
return sub
def handleMode(self, event):
optionLabel = self.optionIds[event.Id]
optionValue = optionMap[optionLabel]
self.mainFrame.command.Submit(cmd.GuiChangeFitSystemSecurityCommand(
fitID=self.mainFrame.getActiveFit(),
secStatus=optionValue))
FitSystemSecurityMenu.register()

View File

@@ -33,8 +33,7 @@ class ChangeItemAmount(ContextMenuSingle):
return "Change {0} Quantity".format(itmContext)
def activate(self, fullContext, mainItem, i):
mainFrame = gui.mainFrame.MainFrame.getInstance()
fitID = mainFrame.getActiveFit()
fitID = self.mainFrame.getActiveFit()
srcContext = fullContext[0]
if isinstance(mainItem, es_Fit):
try: