i18n: annotate gui/builtinContextMenus

This commit is contained in:
zhaoweny
2020-06-23 15:31:19 +08:00
parent 1079371ecf
commit 1c4de8b259
47 changed files with 340 additions and 218 deletions

View File

@@ -1,44 +1,46 @@
import wx
import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from gui.utils.clipboard import toClipboard
from service.fit import Fit
from service.port.eft import exportDrones, exportFighters, exportCargo, exportImplants, exportBoosters
from service.port.eft import exportBoosters, exportCargo, exportDrones, exportFighters, exportImplants
viewSpecMap = {
'droneItemMisc': ('Drones', lambda cw: cw.drones, exportDrones),
'fighterItemMisc': ('Fighters', lambda cw: cw.fighters, exportFighters),
'cargoItemMisc': ('Cargo Items', lambda cw: cw.cargo, exportCargo),
'implantItemMisc': ('Implants', lambda cw: cw.implants, exportImplants),
'implantItemMiscChar': ('Implants', lambda cw: cw.implants, exportImplants),
'boosterItemMisc': ('Boosters', lambda cw: cw.boosters, exportBoosters)}
_t = wx.GetTranslation
class AdditionsExportAll(ContextMenuUnconditional):
visibilitySetting = 'additionsCopyPaste'
def __init__(self):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.viewSpecMap = {
'droneItemMisc': (_t('Drones'), lambda cw: cw.drones, exportDrones),
'fighterItemMisc': (_t('Fighters'), lambda cw: cw.fighters, exportFighters),
'cargoItemMisc': (_t('Cargo Items'), lambda cw: cw.cargo, exportCargo),
'implantItemMisc': (_t('Implants'), lambda cw: cw.implants, exportImplants),
'implantItemMiscChar': (_t('Implants'), lambda cw: cw.implants, exportImplants),
'boosterItemMisc': (_t('Boosters'), lambda cw: cw.boosters, exportBoosters)
}
def display(self, callingWindow, srcContext):
if srcContext not in viewSpecMap:
if srcContext not in self.viewSpecMap:
return False
fit = Fit.getInstance().getFit(self.mainFrame.getActiveFit())
if fit is None:
return False
if not viewSpecMap[srcContext][1](callingWindow):
if not self.viewSpecMap[srcContext][1](callingWindow):
return False
self.srcContext = srcContext
return True
def getText(self, callingWindow, itmContext):
return 'Copy All {}'.format(viewSpecMap[self.srcContext][0])
return _t('Copy All {}').format(self.viewSpecMap[self.srcContext][0])
def activate(self, callingWindow, fullContext, i):
items = viewSpecMap[self.srcContext][1](callingWindow)
export = viewSpecMap[self.srcContext][2](items)
items = self.viewSpecMap[self.srcContext][1](callingWindow)
export = self.viewSpecMap[self.srcContext][2](items)
if export:
toClipboard(export)

View File

@@ -1,28 +1,30 @@
import wx
import gui.mainFrame
from gui.contextMenu import ContextMenuSelection
from gui.utils.clipboard import toClipboard
from service.fit import Fit
from service.port.eft import exportDrones, exportFighters, exportCargo, exportImplants, exportBoosters
from service.port.eft import exportBoosters, exportCargo, exportDrones, exportFighters, exportImplants
viewSpecMap = {
'droneItemMisc': ('Drones', exportDrones),
'fighterItemMisc': ('Fighters', exportFighters),
'cargoItemMisc': ('Cargo Items', exportCargo),
'implantItemMisc': ('Implants', exportImplants),
'implantItemMiscChar': ('Implants', exportImplants),
'boosterItemMisc': ('Boosters', exportBoosters)}
_t = wx.GetTranslation
class AdditionsExportAll(ContextMenuSelection):
visibilitySetting = 'additionsCopyPaste'
def __init__(self):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.viewSpecMap = {
'droneItemMisc': (_t('Drones'), exportDrones),
'fighterItemMisc': (_t('Fighters'), exportFighters),
'cargoItemMisc': (_t('Cargo Items'), exportCargo),
'implantItemMisc': (_t('Implants'), exportImplants),
'implantItemMiscChar': (_t('Implants'), exportImplants),
'boosterItemMisc': (_t('Boosters'), exportBoosters)
}
def display(self, callingWindow, srcContext, selection):
if srcContext not in viewSpecMap:
if srcContext not in self.viewSpecMap:
return False
if not selection:
return False
@@ -34,10 +36,10 @@ class AdditionsExportAll(ContextMenuSelection):
return True
def getText(self, callingWindow, itmContext, selection):
return 'Copy Selected {}'.format(viewSpecMap[self.srcContext][0])
return _t('Copy Selected {}').format(self.viewSpecMap[self.srcContext][0])
def activate(self, callingWindow, fullContext, selection, i):
export = viewSpecMap[self.srcContext][1](selection)
export = self.viewSpecMap[self.srcContext][1](selection)
if export:
toClipboard(export)

View File

@@ -1,3 +1,5 @@
import wx
import gui.mainFrame
from gui import fitCommands as cmd
from gui.contextMenu import ContextMenuUnconditional
@@ -5,25 +7,25 @@ from gui.utils.clipboard import fromClipboard
from service.fit import Fit
from service.port.eft import parseAdditions
viewSpecMap = {
'droneItemMisc': ('Drones', lambda i: i.isDrone, cmd.GuiImportLocalDronesCommand),
'fighterItemMisc': ('Fighters', lambda i: i.isFighter, cmd.GuiImportLocalFightersCommand),
'cargoItemMisc': ('Cargo Items', lambda i: not i.isAbyssal, cmd.GuiImportCargosCommand),
'implantItemMisc': ('Implants', lambda i: i.isImplant, cmd.GuiImportImplantsCommand),
'implantItemMiscChar': ('Implants', lambda i: i.isImplant, cmd.GuiImportImplantsCommand),
'boosterItemMisc': ('Boosters', lambda i: i.isBooster, cmd.GuiImportBoostersCommand)}
_t = wx.GetTranslation
class AdditionsImport(ContextMenuUnconditional):
visibilitySetting = 'additionsCopyPaste'
def __init__(self):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.viewSpecMap = {
'droneItemMisc': (_t('Drones'), lambda i: i.isDrone, cmd.GuiImportLocalDronesCommand),
'fighterItemMisc': (_t('Fighters'), lambda i: i.isFighter, cmd.GuiImportLocalFightersCommand),
'cargoItemMisc': (_t('Cargo Items'), lambda i: not i.isAbyssal, cmd.GuiImportCargosCommand),
'implantItemMisc': (_t('Implants'), lambda i: i.isImplant, cmd.GuiImportImplantsCommand),
'implantItemMiscChar': (_t('Implants'), lambda i: i.isImplant, cmd.GuiImportImplantsCommand),
'boosterItemMisc': (_t('Boosters'), lambda i: i.isBooster, cmd.GuiImportBoostersCommand)
}
def display(self, callingWindow, srcContext):
if srcContext not in viewSpecMap:
if srcContext not in self.viewSpecMap:
return False
fit = Fit.getInstance().getFit(self.mainFrame.getActiveFit())
if fit is None:
@@ -35,16 +37,16 @@ class AdditionsImport(ContextMenuUnconditional):
return True
def getText(self, callingWindow, itmContext):
return 'Paste {}'.format(viewSpecMap[self.srcContext][0])
return _t('Paste {}').format(self.viewSpecMap[self.srcContext][0])
def activate(self, callingWindow, fullContext, i):
text = fromClipboard()
items = parseAdditions(text)
filterFunc = viewSpecMap[self.srcContext][1]
filterFunc = self.viewSpecMap[self.srcContext][1]
items = [(i.ID, a) for i, a in items if filterFunc(i)]
if not items:
return
command = viewSpecMap[self.srcContext][2]
command = self.viewSpecMap[self.srcContext][2]
self.mainFrame.command.Submit(command(self.mainFrame.getActiveFit(), items))

View File

@@ -6,9 +6,10 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuSingle
from service.fit import Fit
_t = wx.GetTranslation
class AmmoToDmgPattern(ContextMenuSingle):
visibilitySetting = 'ammoPattern'
def __init__(self):
@@ -28,7 +29,7 @@ class AmmoToDmgPattern(ContextMenuSingle):
return False
def getText(self, callingWindow, itmContext, mainItem):
return "Set {} as Damage Pattern".format(itmContext if itmContext is not None else "Item")
return _t("Set {} as Damage Pattern").format(itmContext if itmContext is not None else _t("Item"))
def activate(self, callingWindow, fullContext, mainItem, i):
fitID = self.mainFrame.getActiveFit()

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
@@ -6,6 +7,8 @@ from gui import fitCommands as cmd
from gui.contextMenu import ContextMenuSingle
from service.fit import Fit
_t = wx.GetTranslation
class BoosterSideEffects(ContextMenuSingle):
@@ -28,7 +31,7 @@ class BoosterSideEffects(ContextMenuSingle):
return False
def getText(self, callingWindow, itmContext, mainItem):
return "Side Effects"
return _t("Side Effects")
def addEffect(self, menu, ability):
label = ability.name
@@ -67,7 +70,7 @@ class BoosterSideEffects(ContextMenuSingle):
if booster in fit.boosters:
index = fit.boosters.index(booster)
self.mainFrame.command.Submit(cmd.GuiToggleBoosterSideEffectStateCommand(
fitID=fitID, position=index, effectID=effect.effectID))
fitID=fitID, position=index, effectID=effect.effectID))
BoosterSideEffects.register()

View File

@@ -1,8 +1,12 @@
import wx
import gui.fitCommands as cmd
import gui.mainFrame
from gui.contextMenu import ContextMenuSingle
from service.fit import Fit
_t = wx.GetTranslation
class AddToCargo(ContextMenuSingle):
@@ -26,7 +30,7 @@ class AddToCargo(ContextMenuSingle):
return True
def getText(self, callingWindow, itmContext, mainItem):
return "Add {} to Cargo".format(itmContext)
return _t("Add {} to Cargo").format(itmContext)
def activate(self, callingWindow, fullContext, mainItem, i):
fitID = self.mainFrame.getActiveFit()

View File

@@ -1,7 +1,11 @@
import wx
import gui.fitCommands as cmd
import gui.mainFrame
from gui.contextMenu import ContextMenuSingle
_t = wx.GetTranslation
class AddToCargoAmmo(ContextMenuSingle):
@@ -21,7 +25,7 @@ class AddToCargoAmmo(ContextMenuSingle):
return True
def getText(self, callingWindow, itmContext, mainItem):
return "Add {0} to Cargo (x1000)".format(itmContext)
return _t("Add {0} to Cargo (x1000)").format(itmContext)
def activate(self, callingWindow, fullContext, mainItem, i):
fitID = self.mainFrame.getActiveFit()

View File

@@ -7,9 +7,10 @@ from gui.contextMenu import ContextMenuUnconditional
from service.fit import Fit
from service.market import Market
_t = wx.GetTranslation
class AddCommandFit(ContextMenuUnconditional):
# Get list of items that define a command fit
sMkt = Market.getInstance()
grp = sMkt.getGroup(1770) # Command burst group
@@ -47,7 +48,7 @@ class AddCommandFit(ContextMenuUnconditional):
return True
def getText(self, callingWindow, itmContext):
return "Command Fits"
return _t("Command Fits")
def addFit(self, menu, fit, includeShip=False):
label = fit.name if not includeShip else "({}) {}".format(fit.ship.item.name, fit.name)

View File

@@ -35,8 +35,8 @@ class ChangeDamagePattern(ContextMenuUnconditional):
# Order here is important: patterns with duplicate names from the latter will overwrite
# patterns from the former
self.patterns = sorted(
chain(builtinPatterns, userPatterns),
key=lambda p: p.fullName not in ["Uniform", "Selected Ammo"])
chain(builtinPatterns, userPatterns),
key=lambda p: p.fullName not in ["Uniform", "Selected Ammo"])
self.patternEventMap = {}
self.items = (OrderedDict(), OrderedDict())

View File

@@ -1,9 +1,13 @@
import wx
import gui.fitCommands as cmd
import gui.mainFrame
from gui.contextMenu import ContextMenuSingle
from gui.fitCommands.helpers import droneStackLimit
from service.fit import Fit
_t = wx.GetTranslation
class DroneAddStack(ContextMenuSingle):
@@ -33,14 +37,14 @@ class DroneAddStack(ContextMenuSingle):
return True
def getText(self, callingWindow, itmContext, mainItem):
return 'Add {} to Drone Bay{}'.format(
itmContext, '' if self.amount == 1 else ' (x{})'.format(self.amount))
return _t('Add {} to Drone Bay{}').format(
itmContext, '' if self.amount == 1 else ' (x{})'.format(self.amount))
def activate(self, callingWindow, fullContext, mainItem, i):
command = cmd.GuiAddLocalDroneCommand(
fitID=self.mainFrame.getActiveFit(),
itemID=int(mainItem.ID),
amount=self.amount)
fitID=self.mainFrame.getActiveFit(),
itemID=int(mainItem.ID),
amount=self.amount)
if self.mainFrame.command.Submit(command):
self.mainFrame.additionsPane.select('Drones', focus=False)

View File

@@ -8,6 +8,8 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuSingle
from service.fit import Fit
_t = wx.GetTranslation
class DroneSplitStack(ContextMenuSingle):
@@ -24,7 +26,7 @@ class DroneSplitStack(ContextMenuSingle):
return mainItem.amount > 1
def getText(self, callingWindow, itmContext, mainItem):
return "Split {} Stack".format(itmContext)
return _t("Split {} Stack").format(itmContext)
def activate(self, callingWindow, fullContext, mainItem, i):
with DroneStackSplit(self.mainFrame, mainItem.amount) as dlg:
@@ -41,7 +43,7 @@ class DroneSplitStack(ContextMenuSingle):
if mainItem in fit.drones:
position = fit.drones.index(mainItem)
self.mainFrame.command.Submit(cmd.GuiSplitLocalDroneStackCommand(
fitID=fitID, position=position, amount=int(cleanInput)))
fitID=fitID, position=position, amount=int(cleanInput)))
DroneSplitStack.register()

View File

@@ -10,6 +10,8 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from service.market import Market
_t = wx.GetTranslation
class Group:
@@ -32,9 +34,7 @@ class Entry:
self.shortName = shortName
class AddEnvironmentEffect(ContextMenuUnconditional):
# CCP doesn't currently provide a mapping between the general Environment, and the specific environment effect
# (which can be random when going into Abyssal space). This is how we currently define it:
# environment type: specific type name prefix
@@ -53,7 +53,7 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
return srcContext == "projected"
def getText(self, callingWindow, itmContext):
return "Add Environmental Effect"
return _t("Add Environmental Effect")
def _addGroup(self, parentMenu, name):
id = ContextMenuUnconditional.nextID()
@@ -103,8 +103,8 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
def getData(self):
data = Group()
data.groups['Wormhole'] = self.getEffectBeacons(
'Black Hole', 'Cataclysmic Variable', 'Magnetar',
'Pulsar', 'Red Giant', 'Wolf Rayet')
'Black Hole', 'Cataclysmic Variable', 'Magnetar',
'Pulsar', 'Red Giant', 'Wolf Rayet')
data.groups['Sansha Incursion'] = self.getEffectBeacons('Sansha Incursion')
data.groups['Triglavian Invasion'] = self.getEffectBeacons('Triglavian Invasion')
data.groups['Triglavian Invasion'].groups['Destructible Beacons'] = self.getDestructibleBeacons()
@@ -165,8 +165,8 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
environments = {x.ID: x for x in sMkt.getGroup("Abyssal Environment").items}
items = chain(
sMkt.getGroup("MassiveEnvironments").items,
sMkt.getGroup("Non-Interactable Object").items)
sMkt.getGroup("MassiveEnvironments").items,
sMkt.getGroup("Non-Interactable Object").items)
for beacon in items:
if not beacon.isType('projected'):
continue
@@ -210,4 +210,5 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
data.sort()
return data
AddEnvironmentEffect.register()

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.globalEvents as GE
@@ -6,6 +7,8 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from service.fit import Fit
_t = wx.GetTranslation
class FactorReload(ContextMenuUnconditional):
@@ -20,7 +23,7 @@ class FactorReload(ContextMenuUnconditional):
return self.mainFrame.getActiveFit() is not None
def getText(self, callingWindow, itmContext):
return "Factor in Reload Time"
return _t("Factor in Reload Time")
def activate(self, callingWindow, fullContext, i):
fitIDs = Fit.getInstance().toggleFactorReload()

View File

@@ -1,12 +1,15 @@
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
from gui import fitCommands as cmd
from gui.fitCommands.helpers import getSimilarFighters
from gui.contextMenu import ContextMenuCombined
from gui.fitCommands.helpers import getSimilarFighters
from service.fit import Fit
_t = wx.GetTranslation
class FighterAbilities(ContextMenuCombined):
@@ -27,7 +30,7 @@ class FighterAbilities(ContextMenuCombined):
return True
def getText(self, callingWindow, itmContext, mainItem, selection):
return "Abilities"
return _t("Abilities")
def addAbility(self, menu, ability):
label = ability.name
@@ -78,10 +81,10 @@ class FighterAbilities(ContextMenuCombined):
if fighter in container:
positions.append(container.index(fighter))
self.mainFrame.command.Submit(command(
fitID=fitID,
mainPosition=mainPosition,
positions=positions,
effectID=ability.effectID))
fitID=fitID,
mainPosition=mainPosition,
positions=positions,
effectID=ability.effectID))
FighterAbilities.register()

View File

@@ -1,9 +1,12 @@
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
_t = wx.GetTranslation
class AddBrowsedFits(ContextMenuUnconditional):
@@ -16,7 +19,7 @@ class AddBrowsedFits(ContextMenuUnconditional):
return True
def getText(self, callingWindow, itmContext):
return 'Add Fit...'
return _t('Add Fit...')
def activate(self, callingWindow, fullContext, i):
from gui.fitBrowserLite import FitBrowserLiteDialog
@@ -24,7 +27,8 @@ class AddBrowsedFits(ContextMenuUnconditional):
'projected': 'Add Projected Fits',
'commandView': 'Add Command Fits',
'graphFitList': 'Add Fits to Graph',
'graphTgtList': 'Add Targets to Graph'}
'graphTgtList': 'Add Targets to Graph'
}
excludedFitIDs = callingWindow.getExistingFitIDs()
with FitBrowserLiteDialog(self.mainFrame, title=titles[fullContext[0]], excludedFitIDs=excludedFitIDs) as dlg:
if dlg.ShowModal() == wx.ID_OK:

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
@@ -6,6 +7,8 @@ from gui.builtinViews.emptyView import BlankPage
from gui.contextMenu import ContextMenuUnconditional
from service.fit import Fit
_t = wx.GetTranslation
class AddCurrentlyOpenFit(ContextMenuUnconditional):
@@ -23,7 +26,7 @@ class AddCurrentlyOpenFit(ContextMenuUnconditional):
return True
def getText(self, callingWindow, itmContext):
return 'Add Currently Open Fit'
return _t('Add Currently Open Fit')
def getSubMenu(self, callingWindow, context, rootMenu, i, pitem):
self.fitLookup = {}

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
@@ -6,6 +7,8 @@ from graphs.wrapper import BaseWrapper
from gui.builtinShipBrowser.events import FitSelected
from gui.contextMenu import ContextMenuSingle
_t = wx.GetTranslation
class OpenFitInNewTab(ContextMenuSingle):
@@ -31,7 +34,7 @@ class OpenFitInNewTab(ContextMenuSingle):
return True
def getText(self, callingWindow, itmContext, mainItem):
return "Open Fit in New Tab"
return _t("Open Fit in New Tab")
def activate(self, callingWindow, fullContext, mainItem, i):
if isinstance(mainItem, BaseWrapper):

View File

@@ -8,6 +8,7 @@ from eos.const import FitSystemSecurity
from gui.contextMenu import ContextMenuUnconditional
from service.fit import Fit
_t = wx.GetTranslation
optionMap = OrderedDict((
('High Security', FitSystemSecurity.HISEC),
@@ -34,7 +35,7 @@ class FitSystemSecurityMenu(ContextMenuUnconditional):
return True
def getText(self, callingWindow, itmContext):
return "Citadel System Security"
return _t("Citadel System Security")
def addOption(self, menu, optionLabel):
id = ContextMenuUnconditional.nextID()
@@ -60,8 +61,8 @@ class FitSystemSecurityMenu(ContextMenuUnconditional):
optionLabel = self.optionIds[event.Id]
optionValue = optionMap[optionLabel]
self.mainFrame.command.Submit(cmd.GuiChangeFitSystemSecurityCommand(
fitID=self.mainFrame.getActiveFit(),
secStatus=optionValue))
fitID=self.mainFrame.getActiveFit(),
secStatus=optionValue))
FitSystemSecurityMenu.register()

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.globalEvents as GE
@@ -6,6 +7,8 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from service.settings import GraphSettings
_t = wx.GetTranslation
class GraphDmgApplyProjectedMenu(ContextMenuUnconditional):
@@ -17,7 +20,7 @@ class GraphDmgApplyProjectedMenu(ContextMenuUnconditional):
return srcContext == 'dmgStatsGraph'
def getText(self, callingWindow, itmContext):
return 'Apply Projected Items'
return _t('Apply Projected Items')
def activate(self, callingWindow, fullContext, i):
self.settings.set('applyProjected', not self.settings.get('applyProjected'))

View File

@@ -1,6 +1,5 @@
from collections import OrderedDict
# noinspection PyPackageRequirements
import wx
import gui.globalEvents as GE
@@ -9,6 +8,10 @@ from gui.contextMenu import ContextMenuUnconditional
from service.const import GraphDpsDroneMode
from service.settings import GraphSettings
# noinspection PyPackageRequirements
_t = wx.GetTranslation
class GraphDmgDroneModeMenu(ContextMenuUnconditional):
@@ -20,7 +23,7 @@ class GraphDmgDroneModeMenu(ContextMenuUnconditional):
return srcContext == 'dmgStatsGraph'
def getText(self, callingWindow, itmContext):
return 'Drone Mode'
return _t('Drone Mode')
def handleModeSwitch(self, event):
option = self.idOptionMap[event.Id]

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.globalEvents as GE
@@ -6,6 +7,8 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from service.settings import GraphSettings
_t = wx.GetTranslation
class GraphDmgIgnoreResistsMenu(ContextMenuUnconditional):
@@ -17,7 +20,7 @@ class GraphDmgIgnoreResistsMenu(ContextMenuUnconditional):
return srcContext == 'dmgStatsGraph'
def getText(self, callingWindow, itmContext):
return 'Ignore Target Resists'
return _t('Ignore Target Resists')
def activate(self, callingWindow, fullContext, i):
self.settings.set('ignoreResists', not self.settings.get('ignoreResists'))

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.globalEvents as GE
@@ -6,6 +7,8 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from service.settings import GraphSettings
_t = wx.GetTranslation
class GraphIgnoreDcrMenu(ContextMenuUnconditional):
@@ -17,7 +20,7 @@ class GraphIgnoreDcrMenu(ContextMenuUnconditional):
return srcContext in ('dmgStatsGraph', 'remoteRepsGraph', 'ewarStatsGraph')
def getText(self, callingWindow, itmContext):
return 'Ignore Drone Control Range'
return _t('Ignore Drone Control Range')
def activate(self, callingWindow, fullContext, i):
self.settings.set('ignoreDCR', not self.settings.get('ignoreDCR'))

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
@@ -7,6 +8,8 @@ from gui.contextMenu import ContextMenuSingle
from service.ammo import Ammo
from service.market import Market
_t = wx.GetTranslation
class GraphFitAmmoPicker(ContextMenuSingle):
@@ -23,7 +26,7 @@ class GraphFitAmmoPicker(ContextMenuSingle):
return True
def getText(self, callingWindow, itmContext, mainItem):
return 'Plot with Different Ammo...'
return _t('Plot with Different Ammo...')
def activate(self, callingWindow, fullContext, mainItem, i):
AmmoPickerFrame.openOne(callingWindow, mainItem.item, forceReopen=True)
@@ -73,7 +76,6 @@ class AmmoPickerFrame(AuxiliaryDialog):
class AmmoPickerContents(wx.ScrolledCanvas):
indent = 15
def __init__(self, parent, fit):

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.globalEvents as GE
@@ -6,6 +7,8 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from service.settings import GraphSettings
_t = wx.GetTranslation
class GraphIgnoreLockRangeMenu(ContextMenuUnconditional):
@@ -17,7 +20,7 @@ class GraphIgnoreLockRangeMenu(ContextMenuUnconditional):
return srcContext in ('dmgStatsGraph', 'remoteRepsGraph', 'ewarStatsGraph')
def getText(self, callingWindow, itmContext):
return 'Ignore Lock Range'
return _t('Ignore Lock Range')
def activate(self, callingWindow, fullContext, i):
self.settings.set('ignoreLockRange', not self.settings.get('ignoreLockRange'))

View File

@@ -1,11 +1,13 @@
# noinspection PyPackageRequirements
import wx
from gui.contextMenu import ContextMenuUnconditional
from service.market import Market
from service.implantSet import ImplantSets as UserImplantSets
from service.precalcImplantSet import PrecalcedImplantSets
_t = wx.GetTranslation
class ImplantSetApply(ContextMenuUnconditional):
@@ -20,7 +22,7 @@ class ImplantSetApply(ContextMenuUnconditional):
return srcContext in ("implantItemMisc", "implantEditor")
def getText(self, callingWindow, context):
return "Apply Implant Set"
return _t("Apply Implant Set")
def _addSeparator(self, m, text):
id_ = ContextMenuUnconditional.nextID()

View File

@@ -4,6 +4,8 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from service.fit import Fit
_t = wx.GetTranslation
class ImplantSetSave(ContextMenuUnconditional):
@@ -22,7 +24,7 @@ class ImplantSetSave(ContextMenuUnconditional):
return True
def getText(self, callingWindow, context):
return 'Save as New Implant Set'
return _t('Save as New Implant Set')
def activate(self, callingWindow, fullContext, i):
with NameDialog(self.mainFrame, '') as dlg:
@@ -40,13 +42,13 @@ ImplantSetSave.register()
class NameDialog(wx.Dialog):
def __init__(self, parent, value):
super().__init__(parent, title='New Implant Set', style=wx.DEFAULT_DIALOG_STYLE)
super().__init__(parent, title=_t('New Implant Set'), style=wx.DEFAULT_DIALOG_STYLE)
self.SetMinSize((346, 156))
bSizer1 = wx.BoxSizer(wx.VERTICAL)
bSizer2 = wx.BoxSizer(wx.VERTICAL)
text = wx.StaticText(self, wx.ID_ANY, 'Enter a name for your new Implant Set:')
text = wx.StaticText(self, wx.ID_ANY, _t('Enter a name for your new Implant Set:'))
bSizer2.Add(text, 0)
bSizer1.Add(bSizer2, 0, wx.ALL, 10)

View File

@@ -1,6 +1,5 @@
import re
# noinspection PyPackageRequirements
import wx
import gui.fitCommands as cmd
@@ -12,6 +11,10 @@ from eos.saveddata.fit import Fit as es_Fit
from gui.contextMenu import ContextMenuSingle
from service.fit import Fit
# noinspection PyPackageRequirements
_t = wx.GetTranslation
class ChangeItemAmount(ContextMenuSingle):
@@ -28,7 +31,7 @@ class ChangeItemAmount(ContextMenuSingle):
return True
def getText(self, callingWindow, itmContext, mainItem):
return "Change {0} Quantity".format(itmContext)
return _t("Change {0} Quantity").format(itmContext)
def activate(self, callingWindow, fullContext, mainItem, i):
fitID = self.mainFrame.getActiveFit()
@@ -54,30 +57,30 @@ class ChangeItemAmount(ContextMenuSingle):
if isinstance(mainItem, es_Cargo):
self.mainFrame.command.Submit(cmd.GuiChangeCargoAmountCommand(
fitID=fitID, itemID=mainItem.itemID, amount=cleanInput))
fitID=fitID, itemID=mainItem.itemID, amount=cleanInput))
elif isinstance(mainItem, Drone):
if srcContext == "projectedDrone":
self.mainFrame.command.Submit(cmd.GuiChangeProjectedDroneAmountCommand(
fitID=fitID, itemID=mainItem.itemID, amount=cleanInput))
fitID=fitID, itemID=mainItem.itemID, amount=cleanInput))
else:
if mainItem in fit.drones:
position = fit.drones.index(mainItem)
self.mainFrame.command.Submit(cmd.GuiChangeLocalDroneAmountCommand(
fitID=fitID, position=position, amount=cleanInput))
fitID=fitID, position=position, amount=cleanInput))
elif isinstance(mainItem, es_Fit):
self.mainFrame.command.Submit(cmd.GuiChangeProjectedFitAmountCommand(
fitID=fitID, projectedFitID=mainItem.ID, amount=cleanInput))
fitID=fitID, projectedFitID=mainItem.ID, amount=cleanInput))
elif isinstance(mainItem, es_Fighter):
if srcContext == "projectedFighter":
if mainItem in fit.projectedFighters:
position = fit.projectedFighters.index(mainItem)
self.mainFrame.command.Submit(cmd.GuiChangeProjectedFighterAmountCommand(
fitID=fitID, position=position, amount=cleanInput))
fitID=fitID, position=position, amount=cleanInput))
else:
if mainItem in fit.fighters:
position = fit.fighters.index(mainItem)
self.mainFrame.command.Submit(cmd.GuiChangeLocalFighterAmountCommand(
fitID=fitID, position=position, amount=cleanInput))
fitID=fitID, position=position, amount=cleanInput))
ChangeItemAmount.register()
@@ -86,13 +89,13 @@ ChangeItemAmount.register()
class AmountChanger(wx.Dialog):
def __init__(self, parent, value, limits=None):
super().__init__(parent, title="Change Amount", style=wx.DEFAULT_DIALOG_STYLE)
super().__init__(parent, title=_t("Change Amount"), style=wx.DEFAULT_DIALOG_STYLE)
self.SetMinSize((346, 156))
bSizer1 = wx.BoxSizer(wx.VERTICAL)
bSizer2 = wx.BoxSizer(wx.VERTICAL)
text = wx.StaticText(self, wx.ID_ANY, "New Amount:" if limits is None else "New Amount ({}-{})".format(*limits))
text = wx.StaticText(self, wx.ID_ANY, _t("New Amount:") if limits is None else _t("New Amount ({}-{})").format(*limits))
bSizer2.Add(text, 0)
bSizer1.Add(bSizer2, 0, wx.ALL, 10)

View File

@@ -1,10 +1,13 @@
import wx
import gui.fitCommands as cmd
import gui.mainFrame
from gui.contextMenu import ContextMenuSingle
_t = wx.GetTranslation
class FillWithItem(ContextMenuSingle):
visibilitySetting = 'moduleFill'
def __init__(self):
@@ -26,12 +29,12 @@ class FillWithItem(ContextMenuSingle):
return True
def getText(self, callingWindow, itmContext, mainItem):
return "Fill With Module"
return _t("Fill With Module")
def activate(self, callingWindow, fullContext, mainItem, i):
self.mainFrame.command.Submit(cmd.GuiFillWithNewLocalModulesCommand(
fitID=self.mainFrame.getActiveFit(),
itemID=int(mainItem.ID)))
fitID=self.mainFrame.getActiveFit(),
itemID=int(mainItem.ID)))
FillWithItem.register()

View File

@@ -1,7 +1,11 @@
import wx
import gui.mainFrame
from gui.contextMenu import ContextMenuSingle
from service.market import Market
_t = wx.GetTranslation
class JumpToMarketItem(ContextMenuSingle):
def __init__(self):
@@ -37,7 +41,7 @@ class JumpToMarketItem(ContextMenuSingle):
return doit
def getText(self, callingWindow, itmContext, mainItem):
return "{0} Market Group".format(itmContext if itmContext is not None else "Item")
return _t("{0} Market Group").format(itmContext if itmContext is not None else _t("Item"))
def activate(self, callingWindow, fullContext, mainItem, i):
srcContext = fullContext[0]

View File

@@ -1,11 +1,14 @@
import wx
import gui.fitCommands as cmd
import gui.mainFrame
from gui.contextMenu import ContextMenuSingle
from service.fit import Fit
_t = wx.GetTranslation
class ProjectItem(ContextMenuSingle):
visibilitySetting = 'project'
def __init__(self):
@@ -28,7 +31,7 @@ class ProjectItem(ContextMenuSingle):
return mainItem.isType("projected")
def getText(self, callingWindow, itmContext, mainItem):
return "Project {0} onto Fit".format(itmContext)
return _t("Project {0} onto Fit").format(itmContext)
def activate(self, callingWindow, fullContext, mainItem, i):
fitID = self.mainFrame.getActiveFit()

View File

@@ -1,6 +1,5 @@
import re
# noinspection PyPackageRequirements
import wx
import gui.fitCommands as cmd
@@ -12,6 +11,10 @@ from gui.contextMenu import ContextMenuCombined
from gui.fitCommands.helpers import getSimilarFighters, getSimilarModPositions
from service.fit import Fit
# noinspection PyPackageRequirements
_t = wx.GetTranslation
class ChangeItemProjectionRange(ContextMenuCombined):
@@ -28,7 +31,7 @@ class ChangeItemProjectionRange(ContextMenuCombined):
return True
def getText(self, callingWindow, itmContext, mainItem, selection):
return 'Change {} Range'.format(itmContext)
return _t('Change {} Range').format(itmContext)
def activate(self, callingWindow, fullContext, mainItem, selection, i):
fitID = self.mainFrame.getActiveFit()
@@ -63,7 +66,7 @@ class ChangeItemProjectionRange(ContextMenuCombined):
fit = Fit.getInstance().getFit(fitID)
items = getSimilarFighters(fit.projectedFighters, mainItem)
self.mainFrame.command.Submit(cmd.GuiChangeProjectedItemsProjectionRangeCommand(
fitID=fitID, items=items, projectionRange=newRange))
fitID=fitID, items=items, projectionRange=newRange))
ChangeItemProjectionRange.register()

View File

@@ -12,6 +12,8 @@ from gui.contextMenu import ContextMenuCombined
from gui.fitCommands.helpers import getSimilarFighters, getSimilarModPositions
from service.fit import Fit
_t = wx.GetTranslation
class RemoveItem(ContextMenuCombined):
@@ -20,13 +22,13 @@ class RemoveItem(ContextMenuCombined):
def display(self, callingWindow, srcContext, mainItem, selection):
if srcContext not in (
"fittingModule", "droneItem",
"implantItem", "boosterItem",
"projectedModule", "cargoItem",
"projectedFit", "projectedDrone",
"fighterItem", "projectedFighter",
"commandFit", "graphFitList",
"graphTgtList"
"fittingModule", "droneItem",
"implantItem", "boosterItem",
"projectedModule", "cargoItem",
"projectedFit", "projectedDrone",
"fighterItem", "projectedFighter",
"commandFit", "graphFitList",
"graphTgtList"
):
return False
@@ -37,9 +39,9 @@ class RemoveItem(ContextMenuCombined):
return True
def getText(self, callingWindow, itmContext, mainItem, selection):
return 'Remove {}{}'.format(
itmContext if itmContext is not None else 'Item',
' Stack' if self.srcContext in ('droneItem', 'projectedDrone', 'cargoItem', 'projectedFit') else '')
return _t('Remove {}{}').format(
itmContext if itmContext is not None else _t('Item'),
_t(' Stack') if self.srcContext in ('droneItem', 'projectedDrone', 'cargoItem', 'projectedFit') else '')
def activate(self, callingWindow, fullContext, mainItem, selection, i):
handlerMap = {
@@ -55,7 +57,8 @@ class RemoveItem(ContextMenuCombined):
'projectedFighter': self.__handleProjectedItem,
'commandFit': self.__handleCommandFit,
'graphFitList': self.__handleGraphItem,
'graphTgtList': self.__handleGraphItem}
'graphTgtList': self.__handleGraphItem
}
srcContext = fullContext[0]
handler = handlerMap.get(srcContext)
if handler is None:
@@ -73,7 +76,7 @@ class RemoveItem(ContextMenuCombined):
if mod in fit.modules:
positions.append(fit.modules.index(mod))
self.mainFrame.command.Submit(cmd.GuiRemoveLocalModuleCommand(
fitID=fitID, positions=positions))
fitID=fitID, positions=positions))
def __handleDrone(self, callingWindow, mainItem, selection):
fitID = self.mainFrame.getActiveFit()
@@ -83,7 +86,7 @@ class RemoveItem(ContextMenuCombined):
if drone in fit.drones:
positions.append(fit.drones.index(drone))
self.mainFrame.command.Submit(cmd.GuiRemoveLocalDronesCommand(
fitID=fitID, positions=positions, amount=math.inf))
fitID=fitID, positions=positions, amount=math.inf))
def __handleFighter(self, callingWindow, mainItem, selection):
fitID = self.mainFrame.getActiveFit()
@@ -97,7 +100,7 @@ class RemoveItem(ContextMenuCombined):
if fighter in fit.fighters:
positions.append(fit.fighters.index(fighter))
self.mainFrame.command.Submit(cmd.GuiRemoveLocalFightersCommand(
fitID=fitID, positions=positions))
fitID=fitID, positions=positions))
def __handleImplant(self, callingWindow, mainItem, selection):
fitID = self.mainFrame.getActiveFit()
@@ -107,7 +110,7 @@ class RemoveItem(ContextMenuCombined):
if implant in fit.implants:
positions.append(fit.implants.index(implant))
self.mainFrame.command.Submit(cmd.GuiRemoveImplantsCommand(
fitID=fitID, positions=positions))
fitID=fitID, positions=positions))
def __handleBooster(self, callingWindow, mainItem, selection):
fitID = self.mainFrame.getActiveFit()
@@ -117,19 +120,19 @@ class RemoveItem(ContextMenuCombined):
if booster in fit.boosters:
positions.append(fit.boosters.index(booster))
self.mainFrame.command.Submit(cmd.GuiRemoveBoostersCommand(
fitID=fitID, positions=positions))
fitID=fitID, positions=positions))
def __handleCargo(self, callingWindow, mainItem, selection):
fitID = self.mainFrame.getActiveFit()
itemIDs = [c.itemID for c in selection]
self.mainFrame.command.Submit(cmd.GuiRemoveCargosCommand(
fitID=fitID, itemIDs=itemIDs))
fitID=fitID, itemIDs=itemIDs))
def __handleProjectedItem(self, callingWindow, mainItem, selection):
fitID = self.mainFrame.getActiveFit()
if isinstance(mainItem, EosFit):
self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand(
fitID=fitID, items=selection, amount=math.inf))
fitID=fitID, items=selection, amount=math.inf))
elif isinstance(mainItem, EosModule):
if wx.GetMouseState().GetModifiers() in (wx.MOD_ALT, wx.MOD_CONTROL):
fit = Fit.getInstance().getFit(fitID)
@@ -138,10 +141,10 @@ class RemoveItem(ContextMenuCombined):
else:
items = selection
self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand(
fitID=fitID, items=items, amount=math.inf))
fitID=fitID, items=items, amount=math.inf))
elif isinstance(mainItem, EosDrone):
self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand(
fitID=fitID, items=selection, amount=math.inf))
fitID=fitID, items=selection, amount=math.inf))
elif isinstance(mainItem, EosFighter):
if wx.GetMouseState().GetModifiers() in (wx.MOD_ALT, wx.MOD_CONTROL):
fit = Fit.getInstance().getFit(fitID)
@@ -149,16 +152,16 @@ class RemoveItem(ContextMenuCombined):
else:
items = selection
self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand(
fitID=fitID, items=items, amount=math.inf))
fitID=fitID, items=items, amount=math.inf))
else:
self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand(
fitID=fitID, items=selection, amount=math.inf))
fitID=fitID, items=selection, amount=math.inf))
def __handleCommandFit(self, callingWindow, mainItem, selection):
fitID = self.mainFrame.getActiveFit()
commandFitIDs = [cf.ID for cf in selection]
self.mainFrame.command.Submit(cmd.GuiRemoveCommandFitsCommand(
fitID=fitID, commandFitIDs=commandFitIDs))
fitID=fitID, commandFitIDs=commandFitIDs))
def __handleGraphItem(self, callingWindow, mainItem, selection):
callingWindow.removeWrappers(selection)

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
@@ -6,6 +7,8 @@ from gui.contextMenu import ContextMenuSingle
from gui.itemStats import ItemStatsFrame
from service.fit import Fit
_t = wx.GetTranslation
class ItemStats(ContextMenuSingle):
def __init__(self):
@@ -13,16 +16,16 @@ class ItemStats(ContextMenuSingle):
def display(self, callingWindow, srcContext, mainItem):
if srcContext not in (
"marketItemGroup", "marketItemMisc",
"fittingModule", "fittingCharge",
"fittingShip", "baseShip",
"cargoItem", "droneItem",
"implantItem", "boosterItem",
"skillItem", "projectedModule",
"projectedDrone", "projectedCharge",
"itemStats", "fighterItem",
"implantItemChar", "projectedFighter",
"fittingMode"
"marketItemGroup", "marketItemMisc",
"fittingModule", "fittingCharge",
"fittingShip", "baseShip",
"cargoItem", "droneItem",
"implantItem", "boosterItem",
"skillItem", "projectedModule",
"projectedDrone", "projectedCharge",
"itemStats", "fighterItem",
"implantItemChar", "projectedFighter",
"fittingMode"
):
return False
@@ -32,7 +35,7 @@ class ItemStats(ContextMenuSingle):
return True
def getText(self, callingWindow, itmContext, mainItem):
return "{} Stats".format(itmContext if itmContext is not None else "Item")
return _t("{} Stats").format(itmContext if itmContext is not None else _t("Item"))
def activate(self, callingWindow, fullContext, mainItem, i):
srcContext = fullContext[0]

View File

@@ -1,16 +1,18 @@
# noinspection PyPackageRequirements
import wx
import gui.fitCommands as cmd
import gui.mainFrame
from gui.contextMenu import ContextMenuCombined
from gui.fitCommands.helpers import getSimilarModPositions, getSimilarFighters
from gui.fitCommands.helpers import getSimilarFighters, getSimilarModPositions
from service.fit import Fit
from service.market import Market
_t = wx.GetTranslation
class ChangeItemToVariation(ContextMenuCombined):
visibilitySetting = 'metaSwap'
def __init__(self):
@@ -18,15 +20,15 @@ class ChangeItemToVariation(ContextMenuCombined):
def display(self, callingWindow, srcContext, mainItem, selection):
if self.mainFrame.getActiveFit() is None or srcContext not in (
'fittingModule',
'droneItem',
'fighterItem',
'boosterItem',
'implantItem',
'cargoItem',
'projectedModule',
'projectedDrone',
'projectedFighter'
'fittingModule',
'droneItem',
'fighterItem',
'boosterItem',
'implantItem',
'cargoItem',
'projectedModule',
'projectedDrone',
'projectedFighter'
):
return False
@@ -44,7 +46,7 @@ class ChangeItemToVariation(ContextMenuCombined):
return True
def getText(self, callingWindow, itmContext, mainItem, selection):
return 'Variations'
return _t('Variations')
def getSubMenu(self, callingWindow, context, mainItem, selection, rootMenu, i, pitem):
self.moduleLookup = {}
@@ -60,7 +62,8 @@ class ChangeItemToVariation(ContextMenuCombined):
# We want deadspace before officer mods
5: 6, 6: 5,
# For structures we want t1-t2-faction
54: 52, 52: 54}
54: 52, 52: 54
}
metaGroup = sMkt.getMetaGroupByItem(x)
return remap.get(metaGroup.ID, metaGroup.ID) if metaGroup is not None else 0
@@ -86,8 +89,8 @@ class ChangeItemToVariation(ContextMenuCombined):
# Do not show abyssal items
items = list(
i for i in self.mainVariations
if sMkt.getMetaGroupByItem(i) is None or sMkt.getMetaGroupByItem(i).ID != 15)
i for i in self.mainVariations
if sMkt.getMetaGroupByItem(i) is None or sMkt.getMetaGroupByItem(i).ID != 15)
# Sort items by metalevel, and group within that metalevel
# Sort all items by name first
items.sort(key=lambda x: x.name)
@@ -143,7 +146,8 @@ class ChangeItemToVariation(ContextMenuCombined):
'boosterItem': self.__handleBooster,
'projectedModule': self.__handleProjectedModule,
'projectedDrone': self.__handleProjectedDrone,
'projectedFighter': self.__handleProjectedFighter}
'projectedFighter': self.__handleProjectedFighter
}
handler = handlerMap.get(context)
if handler is None:
return
@@ -169,7 +173,7 @@ class ChangeItemToVariation(ContextMenuCombined):
if modVariations == self.mainVariations:
positions.append(fit.modules.index(mod))
self.mainFrame.command.Submit(cmd.GuiChangeLocalModuleMetasCommand(
fitID=fitID, positions=positions, newItemID=varItem.ID))
fitID=fitID, positions=positions, newItemID=varItem.ID))
def __handleDrone(self, varItem):
fitID = self.mainFrame.getActiveFit()
@@ -186,7 +190,7 @@ class ChangeItemToVariation(ContextMenuCombined):
if droneVariations == self.mainVariations:
positions.append(fit.drones.index(drone))
self.mainFrame.command.Submit(cmd.GuiChangeLocalDroneMetasCommand(
fitID=fitID, positions=positions, newItemID=varItem.ID))
fitID=fitID, positions=positions, newItemID=varItem.ID))
def __handleFighter(self, varItem):
fitID = self.mainFrame.getActiveFit()
@@ -207,7 +211,7 @@ class ChangeItemToVariation(ContextMenuCombined):
if fighterVariations == self.mainVariations:
positions.append(fit.fighters.index(fighter))
self.mainFrame.command.Submit(cmd.GuiChangeLocalFighterMetasCommand(
fitID=fitID, positions=positions, newItemID=varItem.ID))
fitID=fitID, positions=positions, newItemID=varItem.ID))
def __handleCargo(self, varItem):
fitID = self.mainFrame.getActiveFit()
@@ -221,7 +225,7 @@ class ChangeItemToVariation(ContextMenuCombined):
if cargoVariations == self.mainVariations:
itemIDs.append(cargo.itemID)
self.mainFrame.command.Submit(cmd.GuiChangeCargoMetasCommand(
fitID=fitID, itemIDs=itemIDs, newItemID=varItem.ID))
fitID=fitID, itemIDs=itemIDs, newItemID=varItem.ID))
def __handleImplant(self, varItem):
fitID = self.mainFrame.getActiveFit()
@@ -230,7 +234,7 @@ class ChangeItemToVariation(ContextMenuCombined):
if implant in fit.implants:
position = fit.implants.index(implant)
self.mainFrame.command.Submit(cmd.GuiChangeImplantMetaCommand(
fitID=fitID, position=position, newItemID=varItem.ID))
fitID=fitID, position=position, newItemID=varItem.ID))
def __handleBooster(self, varItem):
fitID = self.mainFrame.getActiveFit()
@@ -239,7 +243,7 @@ class ChangeItemToVariation(ContextMenuCombined):
if booster in fit.boosters:
position = fit.boosters.index(booster)
self.mainFrame.command.Submit(cmd.GuiChangeBoosterMetaCommand(
fitID=fitID, position=position, newItemID=varItem.ID))
fitID=fitID, position=position, newItemID=varItem.ID))
def __handleProjectedModule(self, varItem):
fitID = self.mainFrame.getActiveFit()
@@ -259,7 +263,7 @@ class ChangeItemToVariation(ContextMenuCombined):
if modVariations == self.mainVariations:
positions.append(fit.projectedModules.index(mod))
self.mainFrame.command.Submit(cmd.GuiChangeProjectedModuleMetasCommand(
fitID=fitID, positions=positions, newItemID=varItem.ID))
fitID=fitID, positions=positions, newItemID=varItem.ID))
def __handleProjectedDrone(self, varItem):
fitID = self.mainFrame.getActiveFit()
@@ -276,7 +280,7 @@ class ChangeItemToVariation(ContextMenuCombined):
if droneVariations == self.mainVariations:
itemIDs.append(drone.itemID)
self.mainFrame.command.Submit(cmd.GuiChangeProjectedDroneMetasCommand(
fitID=fitID, itemIDs=itemIDs, newItemID=varItem.ID))
fitID=fitID, itemIDs=itemIDs, newItemID=varItem.ID))
def __handleProjectedFighter(self, varItem):
fitID = self.mainFrame.getActiveFit()
@@ -297,7 +301,7 @@ class ChangeItemToVariation(ContextMenuCombined):
if fighterVariations == self.mainVariations:
positions.append(fit.projectedFighters.index(fighter))
self.mainFrame.command.Submit(cmd.GuiChangeProjectedFighterMetasCommand(
fitID=fitID, positions=positions, newItemID=varItem.ID))
fitID=fitID, positions=positions, newItemID=varItem.ID))
ChangeItemToVariation.register()

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.fitCommands as cmd
@@ -9,6 +10,8 @@ from gui.fitCommands.helpers import getSimilarModPositions
from service.ammo import Ammo
from service.fit import Fit
_t = wx.GetTranslation
class ChangeModuleAmmo(ContextMenuCombined):
@@ -34,7 +37,7 @@ class ChangeModuleAmmo(ContextMenuCombined):
return True
def getText(self, callingWindow, itmContext, mainItem, selection):
return 'Charge'
return _t('Charge')
def _getAmmo(self, mod):
if mod.itemID is None:
@@ -129,9 +132,9 @@ class ChangeModuleAmmo(ContextMenuCombined):
return
positions = getSimilarModPositions(modContainer, self.module)
self.mainFrame.command.Submit(command(
fitID=fitID,
positions=positions,
chargeItemID=charge.ID if charge is not None else None))
fitID=fitID,
positions=positions,
chargeItemID=charge.ID if charge is not None else None))
else:
if self.srcContext == 'fittingModule':
command = cmd.GuiChangeLocalModuleChargesCommand
@@ -148,9 +151,9 @@ class ChangeModuleAmmo(ContextMenuCombined):
if modCharges.issubset(self.mainCharges):
positions.append(position)
self.mainFrame.command.Submit(command(
fitID=fitID,
positions=positions,
chargeItemID=charge.ID if charge is not None else None))
fitID=fitID,
positions=positions,
chargeItemID=charge.ID if charge is not None else None))
ChangeModuleAmmo.register()

View File

@@ -1,11 +1,14 @@
import wx
import gui.fitCommands as cmd
import gui.mainFrame
from gui.contextMenu import ContextMenuSingle
from service.fit import Fit
_t = wx.GetTranslation
class FillWithModule(ContextMenuSingle):
visibilitySetting = 'moduleFill'
def __init__(self):
@@ -18,7 +21,7 @@ class FillWithModule(ContextMenuSingle):
return srcContext == "fittingModule"
def getText(self, callingWindow, itmContext, mainItem):
return "Fill With {0}".format(itmContext if itmContext is not None else "Module")
return _t("Fill With {0}").format(itmContext if itmContext is not None else _t("Module"))
def activate(self, callingWindow, fullContext, mainItem, i):
@@ -30,7 +33,7 @@ class FillWithModule(ContextMenuSingle):
if mainItem in fit.modules:
position = fit.modules.index(mainItem)
self.mainFrame.command.Submit(cmd.GuiFillWithClonedLocalModulesCommand(
fitID=fitID, position=position))
fitID=fitID, position=position))
FillWithModule.register()

View File

@@ -1,8 +1,12 @@
import wx
import gui.mainFrame
from gui.contextMenu import ContextMenuSingle
from gui.utils.clipboard import toClipboard
from service.port.muta import renderMutant
_t = wx.GetTranslation
class ExportMutatedModule(ContextMenuSingle):
@@ -21,7 +25,7 @@ class ExportMutatedModule(ContextMenuSingle):
return True
def getText(self, callingWindow, itmContext, mainItem):
return 'Copy Module to Clipboard'
return _t('Copy Module to Clipboard')
def activate(self, callingWindow, fullContext, mainItem, i):
export = renderMutant(mainItem, prefix=' ')

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
@@ -6,6 +7,8 @@ from gui.contextMenu import ContextMenuSingle
from gui.fitCommands import GuiConvertMutatedLocalModuleCommand, GuiRevertMutatedLocalModuleCommand
from service.fit import Fit
_t = wx.GetTranslation
class ChangeModuleMutation(ContextMenuSingle):
@@ -27,7 +30,7 @@ class ChangeModuleMutation(ContextMenuSingle):
return True
def getText(self, callingWindow, itmContext, mainItem):
return "Apply Mutaplasmid" if not mainItem.isMutated else "Revert to {}".format(mainItem.baseItem.name)
return _t("Apply Mutaplasmid") if not mainItem.isMutated else _t("Revert to {}").format(mainItem.baseItem.name)
def getSubMenu(self, callingWindow, context, mainItem, rootMenu, i, pitem):
if mainItem.isMutated:
@@ -56,7 +59,7 @@ class ChangeModuleMutation(ContextMenuSingle):
if mod in fit.modules:
position = fit.modules.index(mod)
self.mainFrame.command.Submit(GuiConvertMutatedLocalModuleCommand(
fitID=fitID, position=position, mutaplasmid=mutaplasmid))
fitID=fitID, position=position, mutaplasmid=mutaplasmid))
def activate(self, callingWindow, fullContext, mainItem, i):
fitID = self.mainFrame.getActiveFit()
@@ -64,7 +67,7 @@ class ChangeModuleMutation(ContextMenuSingle):
if mainItem in fit.modules:
position = fit.modules.index(mainItem)
self.mainFrame.command.Submit(GuiRevertMutatedLocalModuleCommand(
fitID=fitID, position=position))
fitID=fitID, position=position))
def getBitmap(self, callingWindow, context, mainItem):
return None

View File

@@ -1,18 +1,20 @@
import math
# noinspection PyPackageRequirements
import wx
import eos.config
import gui.fitCommands as cmd
import gui.mainFrame
from eos.utils.spoolSupport import SpoolType, SpoolOptions
from eos.utils.spoolSupport import SpoolOptions, SpoolType
from gui.contextMenu import ContextMenuSingle
from service.fit import Fit
# noinspection PyPackageRequirements
_t = wx.GetTranslation
class ChangeModuleSpool(ContextMenuSingle):
visibilitySetting = 'spoolup'
def __init__(self):
@@ -32,7 +34,7 @@ class ChangeModuleSpool(ContextMenuSingle):
return self.mod.item.group.name in ("Precursor Weapon", "Mutadaptive Remote Armor Repairer")
def getText(self, callingWindow, itmContext, mainItem):
return "Spoolup Cycles"
return _t("Spoolup Cycles")
def getSubMenu(self, callingWindow, context, mainItem, rootMenu, i, pitem):
m = wx.Menu()
@@ -78,7 +80,7 @@ class ChangeModuleSpool(ContextMenuSingle):
# Show default only for current value and when not overriden
if not isNotDefault and cycle == cycleDefault:
text = "{} (default)".format(cycle)
text = _t("{} (default)").format(cycle)
# Always show current selection and stuff which we decided to show via the cycles function
elif cycle == cycleCurrent or cycle in cyclesToShow:
text = "{}".format(cycle)
@@ -93,7 +95,7 @@ class ChangeModuleSpool(ContextMenuSingle):
self.cycleMap[menuId] = cycle
self.resetId = ContextMenuSingle.nextID()
item = wx.MenuItem(m, self.resetId, "Reset")
item = wx.MenuItem(m, self.resetId, _t("Reset"))
bindmenu.Bind(wx.EVT_MENU, self.handleSpoolChange, item)
m.Append(item)
@@ -114,12 +116,12 @@ class ChangeModuleSpool(ContextMenuSingle):
if self.mod in fit.modules:
position = fit.modules.index(self.mod)
self.mainFrame.command.Submit(cmd.GuiChangeLocalModuleSpoolCommand(
fitID=fitID, position=position, spoolType=spoolType, spoolAmount=spoolAmount))
fitID=fitID, position=position, spoolType=spoolType, spoolAmount=spoolAmount))
elif self.context == 'projectedModule':
if self.mod in fit.projectedModules:
position = fit.projectedModules.index(self.mod)
self.mainFrame.command.Submit(cmd.GuiChangeProjectedModuleSpoolCommand(
fitID=fitID, position=position, spoolType=spoolType, spoolAmount=spoolAmount))
fitID=fitID, position=position, spoolType=spoolType, spoolAmount=spoolAmount))
ChangeModuleSpool.register()

View File

@@ -7,6 +7,8 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from service.settings import MarketPriceSettings
_t = wx.GetTranslation
class ItemGroupPrice(ContextMenuUnconditional, metaclass=ABCMeta):
@@ -14,11 +16,6 @@ class ItemGroupPrice(ContextMenuUnconditional, metaclass=ABCMeta):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.settings = MarketPriceSettings.getInstance()
@property
@abstractmethod
def label(self):
raise NotImplementedError()
@property
@abstractmethod
def optionName(self):
@@ -27,9 +24,6 @@ class ItemGroupPrice(ContextMenuUnconditional, metaclass=ABCMeta):
def display(self, callingWindow, srcContext):
return srcContext in ("priceViewFull", "priceViewMinimal")
def getText(self, callingWindow, itmContext):
return self.label
def activate(self, callingWindow, fullContext, i):
self.settings.set(self.optionName, not self.settings.get(self.optionName))
fitID = self.mainFrame.getActiveFit()
@@ -40,22 +34,25 @@ class ItemGroupPrice(ContextMenuUnconditional, metaclass=ABCMeta):
class DronesPrice(ItemGroupPrice):
label = 'Drones'
optionName = 'drones'
def getText(self, callingWindow, itmContext):
return _t('Drones')
class CargoPrice(ItemGroupPrice):
label = 'Cargo'
optionName = 'cargo'
def getText(self, callingWindow, itmContext):
return _t('Cargo')
class ImplantBoosterPrice(ItemGroupPrice):
label = 'Implants && Boosters'
optionName = 'character'
def getText(self, callingWindow, itmContext):
return _t('Implants && Boosters')
DronesPrice.register()
CargoPrice.register()

View File

@@ -1,6 +1,5 @@
from collections import OrderedDict
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
@@ -10,6 +9,9 @@ from gui.contextMenu import ContextMenuCombined
from service.const import TargetResistMode
from service.settings import GraphSettings
# noinspection PyPackageRequirements
_t = wx.GetTranslation
optionMap = OrderedDict((
('Auto', TargetResistMode.auto),
@@ -36,7 +38,7 @@ class TargetWrapperResists(ContextMenuCombined):
return True
def getText(self, callingWindow, itmContext, mainItem, selection):
return 'Resist Mode'
return _t('Resist Mode')
def addOption(self, menu, optionLabel):
id = ContextMenuCombined.nextID()

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
@@ -6,6 +7,8 @@ from gui.builtinShipBrowser.events import Stage3Selected
from gui.contextMenu import ContextMenuUnconditional
from service.fit import Fit
_t = wx.GetTranslation
class JumpToShip(ContextMenuUnconditional):
@@ -29,7 +32,7 @@ class JumpToShip(ContextMenuUnconditional):
return False
def getText(self, callingWindow, itmContext):
return "Open in Fitting Browser"
return _t("Open in Fitting Browser")
def activate(self, callingWindow, fullContext, i):
fitID = self.mainFrame.getActiveFit()

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.fitCommands as cmd
@@ -6,6 +7,8 @@ import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from service.fit import Fit
_t = wx.GetTranslation
class ChangeShipTacticalMode(ContextMenuUnconditional):
@@ -26,7 +29,7 @@ class ChangeShipTacticalMode(ContextMenuUnconditional):
return srcContext == "fittingShip" and self.modes is not None
def getText(self, callingWindow, itmContext):
return "Tactical Mode"
return _t("Tactical Mode")
def addMode(self, menu, mode):
label = mode.item.name.rsplit()[-2]

View File

@@ -1,4 +1,5 @@
# noinspection PyPackageRequirements
import wx
import gui.globalEvents as GE
@@ -9,9 +10,10 @@ from gui.contextMenu import ContextMenuSingle
from service.character import Character
from service.fit import Fit
_t = wx.GetTranslation
class ChangeAffectingSkills(ContextMenuSingle):
visibilitySetting = 'changeAffectingSkills'
def __init__(self):
@@ -19,9 +21,9 @@ class ChangeAffectingSkills(ContextMenuSingle):
def display(self, callingWindow, srcContext, mainItem):
if srcContext not in (
"fittingModule", "fittingCharge",
"fittingShip", "droneItem",
"fighterItem"
"fittingModule", "fittingCharge",
"fittingShip", "droneItem",
"fighterItem"
):
return False
@@ -68,7 +70,7 @@ class ChangeAffectingSkills(ContextMenuSingle):
return len(self.skills) > 0
def getText(self, callingWindow, itmContext, mainItem):
return "Change %s Skills" % itmContext
return _t("Change %s Skills") % itmContext
def addSkill(self, rootMenu, skill, i):
if i < 0:

View File

@@ -1,7 +1,6 @@
from collections import OrderedDict
from itertools import chain
# noinspection PyPackageRequirements
import wx
import gui.mainFrame
@@ -10,6 +9,10 @@ from gui.contextMenu import ContextMenuUnconditional
from gui.utils.sorter import smartSort
from service.targetProfile import TargetProfile as svc_TargetProfile
# noinspection PyPackageRequirements
_t = wx.GetTranslation
class TargetProfileAdder(ContextMenuUnconditional):

View File

@@ -1,8 +1,12 @@
import wx
import gui.mainFrame
from graphs.wrapper import TargetWrapper
from gui.contextMenu import ContextMenuSingle
from gui.targetProfileEditor import TargetProfileEditor
_t = wx.GetTranslation
class TargetProfileEditorMenu(ContextMenuSingle):

View File

@@ -1,7 +1,6 @@
from collections import OrderedDict
from itertools import chain
# noinspection PyPackageRequirements
import wx
import gui.globalEvents as GE
@@ -11,6 +10,10 @@ from gui.utils.sorter import smartSort
from service.fit import Fit
from service.targetProfile import TargetProfile as svc_TargetProfile
# noinspection PyPackageRequirements
_t = wx.GetTranslation
class TargetProfileSwitcher(ContextMenuUnconditional):