57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
from gui.contextMenu import ContextMenu
|
|
import gui.mainFrame
|
|
import service
|
|
import wx
|
|
from gui import bitmapLoader
|
|
from eos.types import Hardpoint
|
|
import gui.globalEvents as GE
|
|
from gui.builtinContextMenus.moduleAmmoPicker import ModuleAmmoPicker
|
|
import eos.db
|
|
|
|
class ModuleGlobalAmmoPicker(ModuleAmmoPicker):
|
|
def __init__(self):
|
|
self.mainFrame = gui.mainFrame.MainFrame.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
|
|
|
|
sFit = service.Fit.getInstance()
|
|
fitID = self.mainFrame.getActiveFit()
|
|
fit = eos.db.getFit(fitID)
|
|
|
|
selectedModule = self.modules[0]
|
|
allModules = []
|
|
for mod in fit.modules:
|
|
if mod.itemID is None:
|
|
continue
|
|
if mod.itemID == selectedModule.itemID:
|
|
allModules.append(mod)
|
|
|
|
sFit.setAmmo(fitID, charge.ID if charge is not None else None, allModules)
|
|
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
|
|
|
def display(self, srcContext, selection):
|
|
try:
|
|
selectionLen = len(selection)
|
|
except:
|
|
pass
|
|
else:
|
|
if selectionLen != 1:
|
|
return False
|
|
|
|
return super(ModuleGlobalAmmoPicker, self).display(srcContext, selection)
|
|
|
|
|
|
ModuleGlobalAmmoPicker.register()
|