Set charge to all modules when cmd/control is pressed, instead of having separate menu item

This commit is contained in:
DarkPhoenix
2019-04-16 19:35:24 +03:00
parent af2da86f6f
commit f100971fbe
5 changed files with 31 additions and 86 deletions

View File

@@ -9,7 +9,6 @@ from gui.builtinContextMenus import ( # noqa: E402,F401
# Often-used item manipulations
shipModeChange,
moduleAmmoChange,
moduleAmmoChangeAll,
moduleSpool,
boosterSideEffects,
fighterAbilities,

View File

@@ -6,6 +6,7 @@ import gui.mainFrame
from eos.const import FittingHardpoint
from gui.bitmap_loader import BitmapLoader
from gui.contextMenu import ContextMenu
from service.fit import Fit
from service.market import Market
from service.settings import ContextMenuSettings
@@ -227,12 +228,32 @@ class ChangeModuleAmmo(ContextMenu):
return
fitID = self.mainFrame.getActiveFit()
if self.context == 'fittingModule':
self.mainFrame.command.Submit(cmd.GuiChangeLocalModuleChargesCommand(
fitID=fitID, modules=self.modules, chargeItemID=charge.ID if charge is not None else None))
elif self.context == 'projectedModule':
self.mainFrame.command.Submit(cmd.GuiChangeProjectedModuleChargesCommand(
fitID=fitID, modules=self.modules, chargeItemID=charge.ID if charge is not None else None))
# Set to all modules if ctrl is pressed
if wx.GetMouseState().CmdDown():
fit = Fit.getInstance().getFit(fitID)
selectedModule = self.modules[0]
if self.context == 'fittingModule':
self.mainFrame.command.Submit(cmd.GuiChangeLocalModuleChargesCommand(
fitID=fitID,
modules=[m for m in fit.modules if m.itemID is not None and m.itemID == selectedModule.itemID],
chargeItemID=charge.ID if charge is not None else None))
elif self.context == 'projectedModule':
self.mainFrame.command.Submit(cmd.GuiChangeProjectedModuleChargesCommand(
fitID=fitID,
modules=[m for m in fit.projectedModules if
m.itemID is not None and m.itemID == selectedModule.itemID],
chargeItemID=charge.ID if charge is not None else None))
else:
if self.context == 'fittingModule':
self.mainFrame.command.Submit(cmd.GuiChangeLocalModuleChargesCommand(
fitID=fitID,
modules=self.modules,
chargeItemID=charge.ID if charge is not None else None))
elif self.context == 'projectedModule':
self.mainFrame.command.Submit(cmd.GuiChangeProjectedModuleChargesCommand(
fitID=fitID,
modules=self.modules,
chargeItemID=charge.ID if charge is not None else None))
ChangeModuleAmmo.register()

View File

@@ -1,58 +0,0 @@
import gui.fitCommands as cmd
import gui.mainFrame
from gui.builtinContextMenus.moduleAmmoChange import ChangeModuleAmmo
from service.fit import Fit
from service.settings import ContextMenuSettings
class ChangeModuleAmmoAll(ChangeModuleAmmo):
def __init__(self):
super(ChangeModuleAmmoAll, self).__init__()
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.settings = ContextMenuSettings.getInstance()
def getText(self, itmContext, selection):
return "Charge (All)"
def handleAmmoSwitch(self, event):
if len(self.modules) != 1:
event.Skip()
return
charge = self.chargeIds.get(event.Id, False)
if charge is False:
event.Skip()
return
fitID = self.mainFrame.getActiveFit()
fit = Fit.getInstance().getFit(fitID)
selectedModule = self.modules[0]
if self.context == 'fittingModule':
self.mainFrame.command.Submit(cmd.GuiChangeLocalModuleChargesCommand(
fitID=fitID,
modules=[m for m in fit.modules if m.itemID is not None and m.itemID == selectedModule.itemID],
chargeItemID=charge.ID if charge is not None else None))
elif self.context == 'projectedModule':
self.mainFrame.command.Submit(cmd.GuiChangeProjectedModuleChargesCommand(
fitID=fitID,
modules=[m for m in fit.projectedModules if m.itemID is not None and m.itemID == selectedModule.itemID],
chargeItemID=charge.ID if charge is not None else None))
def display(self, srcContext, selection):
if not self.settings.get('moduleGlobalAmmoPicker'):
return False
try:
selectionLen = len(selection)
except:
pass
else:
if selectionLen != 1:
return False
return super(ChangeModuleAmmoAll, self).display(srcContext, selection)
ChangeModuleAmmoAll.register()

View File

@@ -59,20 +59,10 @@ class PFContextMenuPref(PreferenceView):
rbSizerRow2.Add(self.rbBox4, 1, wx.ALL, 5)
self.rbBox4.Bind(wx.EVT_RADIOBOX, self.OnSetting4Change)
# self.rbBox5 = wx.RadioBox(panel, -1, "Charge", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS)
# self.rbBox5.SetSelection(self.settings.get('moduleAmmoPicker'))
# rbSizerRow2.Add(self.rbBox5, 0, wx.ALL, 5)
# self.rbBox5.Bind(wx.EVT_RADIOBOX, self.OnSetting5Change)
self.rbBox6 = wx.RadioBox(panel, -1, "Charge (All)", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS)
self.rbBox6.SetSelection(self.settings.get('moduleGlobalAmmoPicker'))
rbSizerRow2.Add(self.rbBox6, 1, wx.ALL, 5)
self.rbBox6.Bind(wx.EVT_RADIOBOX, self.OnSetting6Change)
self.rbBox7 = wx.RadioBox(panel, -1, "Project onto Fit", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS)
self.rbBox7.SetSelection(self.settings.get('project'))
rbSizerRow2.Add(self.rbBox7, 1, wx.ALL, 5)
self.rbBox7.Bind(wx.EVT_RADIOBOX, self.OnSetting7Change)
self.rbBox5 = wx.RadioBox(panel, -1, "Project onto Fit", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS)
self.rbBox5.SetSelection(self.settings.get('project'))
rbSizerRow2.Add(self.rbBox5, 1, wx.ALL, 5)
self.rbBox5.Bind(wx.EVT_RADIOBOX, self.OnSetting5Change)
mainSizer.Add(rbSizerRow2, 1, wx.ALL | wx.EXPAND, 0)
@@ -107,12 +97,6 @@ class PFContextMenuPref(PreferenceView):
self.settings.set('metaSwap', event.GetInt())
def OnSetting5Change(self, event):
self.settings.set('moduleAmmoPicker', event.GetInt())
def OnSetting6Change(self, event):
self.settings.set('moduleGlobalAmmoPicker', event.GetInt())
def OnSetting7Change(self, event):
self.settings.set('project', event.GetInt())
def OnSetting8Change(self, event):

View File

@@ -482,7 +482,6 @@ class ContextMenuSettings(object):
"marketJump" : 1,
"metaSwap" : 1,
"moduleAmmoPicker" : 1,
"moduleGlobalAmmoPicker": 1,
"openFit" : 1,
"priceClear" : 1,
"project" : 1,