Add support for ship browser lite to projected view

This commit is contained in:
DarkPhoenix
2019-08-01 12:26:35 +03:00
parent b3b134ea45
commit ee9c1db000
4 changed files with 31 additions and 12 deletions

View File

@@ -144,8 +144,8 @@ class ProjectedView(d.Display):
if type == 'fit':
activeFit = self.mainFrame.getActiveFit()
if activeFit:
self.mainFrame.command.Submit(cmd.GuiAddProjectedFitCommand(
fitID=activeFit, projectedFitID=fitID, amount=1))
self.mainFrame.command.Submit(cmd.GuiAddProjectedFitsCommand(
fitID=activeFit, projectedFitIDs=[fitID], amount=1))
@staticmethod
def moduleSort(module):
@@ -375,8 +375,22 @@ class ProjectedView(d.Display):
projectors.append(projector)
return projectors
# Context menu handlers
def addFit(self, fit):
if fit is None:
return
fitID = self.mainFrame.getActiveFit()
self.mainFrame.command.Submit(cmd.GuiAddProjectedFitCommand(fitID=fitID, projectedFitID=fit.ID, amount=1))
self.mainFrame.command.Submit(cmd.GuiAddProjectedFitsCommand(
fitID=self.mainFrame.getActiveFit(),
projectedFitIDs=[fit.ID],
amount=1))
def getExistingFitIDs(self):
return [f.ID for f in self.fits]
def addFitsByIDs(self, fitIDs):
if not fitIDs:
return
self.mainFrame.command.Submit(cmd.GuiAddProjectedFitsCommand(
fitID=self.mainFrame.getActiveFit(),
projectedFitIDs=fitIDs,
amount=1))

View File

@@ -177,7 +177,7 @@ class FitItem(SFItem.SFBrowserItem):
if activeFit:
sFit = Fit.getInstance()
projectedFit = sFit.getFit(self.fitID)
command = cmd.GuiAddProjectedFitCommand(fitID=activeFit, projectedFitID=projectedFit.ID, amount=1)
command = cmd.GuiAddProjectedFitsCommand(fitID=activeFit, projectedFitIDs=[projectedFit.ID], amount=1)
if self.mainFrame.command.Submit(command):
self.mainFrame.additionsPane.select("Projected")

View File

@@ -59,7 +59,7 @@ from .gui.projectedFighter.abilityToggleState import GuiToggleProjectedFighterAb
from .gui.projectedFighter.add import GuiAddProjectedFighterCommand
from .gui.projectedFighter.changeAmount import GuiChangeProjectedFighterAmountCommand
from .gui.projectedFighter.changeMetas import GuiChangeProjectedFighterMetasCommand
from .gui.projectedFit.add import GuiAddProjectedFitCommand
from .gui.projectedFit.add import GuiAddProjectedFitsCommand
from .gui.projectedFit.changeAmount import GuiChangeProjectedFitAmountCommand
from .gui.projectedModule.add import GuiAddProjectedModuleCommand
from .gui.projectedModule.changeCharges import GuiChangeProjectedModuleChargesCommand

View File

@@ -8,18 +8,23 @@ from gui.fitCommands.helpers import InternalCommandHistory
from service.fit import Fit
class GuiAddProjectedFitCommand(wx.Command):
class GuiAddProjectedFitsCommand(wx.Command):
def __init__(self, fitID, projectedFitID, amount):
wx.Command.__init__(self, True, 'Add Projected Fit')
def __init__(self, fitID, projectedFitIDs, amount):
wx.Command.__init__(self, True, 'Add Projected Fits')
self.internalHistory = InternalCommandHistory()
self.fitID = fitID
self.projectedFitID = projectedFitID
self.projectedFitIDs = projectedFitIDs
self.amount = amount
def Do(self):
cmd = CalcAddProjectedFitCommand(fitID=self.fitID, projectedFitID=self.projectedFitID, amount=self.amount)
success = self.internalHistory.submit(cmd)
commands = []
for projectedFitID in self.projectedFitIDs:
cmd = CalcAddProjectedFitCommand(fitID=self.fitID, projectedFitID=projectedFitID, amount=self.amount)
commands.append(cmd)
if not commands:
return False
success = self.internalHistory.submitBatch(*commands)
sFit = Fit.getInstance()
eos.db.flush()
sFit.recalc(self.fitID)