From 4402addcb05663dd11ba0301b10513494aeff9b2 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 6 Jul 2019 03:06:47 +0300 Subject: [PATCH] Add drone options to context menus --- gui/builtinContextMenus/__init__.py | 3 +- gui/builtinContextMenus/graphDmgDroneMode.py | 45 ++++++++++++++++++++ gui/builtinContextMenus/moduleSpool.py | 2 +- service/settings.py | 2 +- 4 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 gui/builtinContextMenus/graphDmgDroneMode.py diff --git a/gui/builtinContextMenus/__init__.py b/gui/builtinContextMenus/__init__.py index 9cf6ed183..6905d8010 100644 --- a/gui/builtinContextMenus/__init__.py +++ b/gui/builtinContextMenus/__init__.py @@ -41,5 +41,6 @@ from gui.builtinContextMenus import ( # noqa: E402,F401 factorReload, targetResists, # Graph extra options - graphDmgIgnoreResists + graphDmgIgnoreResists, + graphDmgDroneMode ) diff --git a/gui/builtinContextMenus/graphDmgDroneMode.py b/gui/builtinContextMenus/graphDmgDroneMode.py new file mode 100644 index 000000000..8bc9fb4b4 --- /dev/null +++ b/gui/builtinContextMenus/graphDmgDroneMode.py @@ -0,0 +1,45 @@ +from collections import OrderedDict + +# noinspection PyPackageRequirements +import wx + +import gui.mainFrame +from gui.contextMenu import ContextMenuUnconditional +from service.settings import GraphSettings + + +class TargetResists(ContextMenuUnconditional): + + def __init__(self): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.settings = GraphSettings.getInstance() + + def display(self, srcContext): + return srcContext == 'dmgStatsGraph' + + def getText(self, itmContext): + return 'Drone Mode' + + def handleModeSwitch(self, event): + optionName = self.idOptionMap[event.Id] + self.settings.set('mobileDroneMode', optionName) + + def getSubMenu(self, context, rootMenu, i, pitem): + m = wx.Menu() + if "wxMSW" in wx.PlatformInfo: + bindmenu = rootMenu + else: + bindmenu = m + self.idOptionMap = {} + optionMap = OrderedDict([('auto', 'Auto'), ('followSelf', 'Stick to attacker'), ('followTgt', 'Stick to target')]) + for optionName, label in optionMap.items(): + menuId = ContextMenuUnconditional.nextID() + item = wx.MenuItem(m, menuId, label, kind=wx.ITEM_CHECK) + bindmenu.Bind(wx.EVT_MENU, self.handleModeSwitch, item) + m.Append(item) + item.Check(optionName == self.settings.get('mobileDroneMode')) + self.idOptionMap[menuId] = optionName + return m + + +TargetResists.register() diff --git a/gui/builtinContextMenus/moduleSpool.py b/gui/builtinContextMenus/moduleSpool.py index 5f56c2f88..488e14f55 100644 --- a/gui/builtinContextMenus/moduleSpool.py +++ b/gui/builtinContextMenus/moduleSpool.py @@ -17,7 +17,6 @@ class ChangeModuleSpool(ContextMenuSingle): def __init__(self): self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.settings = ContextMenuSettings.getInstance() - self.cycleMap = {} self.resetId = None def display(self, srcContext, mainItem): @@ -75,6 +74,7 @@ class ChangeModuleSpool(ContextMenuSingle): val2 -= minStep return cycles + self.cycleMap = {} cyclesToShow = findCycles(cycleMin, cycleMax) for cycle in range(cycleTotalMin, cycleTotalMax + 1): menuId = ContextMenuSingle.nextID() diff --git a/service/settings.py b/service/settings.py index bedd9e7fd..3c90a5ea0 100644 --- a/service/settings.py +++ b/service/settings.py @@ -514,7 +514,7 @@ class GraphSettings: def __init__(self): defaults = { - 'mobileDroneMode': 0, + 'mobileDroneMode': 'auto', 'ignoreResists': True} self.settings = SettingsProvider.getInstance().getSettings('graphSettings', defaults)