From b3b134ea45aa410ad5b2738d50a0e2d5e1d7bd51 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 1 Aug 2019 12:21:01 +0300 Subject: [PATCH] Add support for ship browser lite to command view --- gui/builtinAdditionPanes/commandView.py | 18 +++++++++++++++--- gui/builtinContextMenus/commandFitAdd.py | 2 +- gui/builtinShipBrowser/fitItem.py | 2 +- gui/fitCommands/__init__.py | 2 +- gui/fitCommands/gui/commandFit/add.py | 17 +++++++++++------ gui/graphFrame/lists.py | 2 +- 6 files changed, 30 insertions(+), 13 deletions(-) diff --git a/gui/builtinAdditionPanes/commandView.py b/gui/builtinAdditionPanes/commandView.py index e5db133fe..451b450bf 100644 --- a/gui/builtinAdditionPanes/commandView.py +++ b/gui/builtinAdditionPanes/commandView.py @@ -117,7 +117,7 @@ class CommandView(d.Display): if type == "fit": activeFit = self.mainFrame.getActiveFit() if activeFit: - self.mainFrame.command.Submit(cmd.GuiAddCommandFitCommand(fitID=activeFit, commandFitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiAddCommandFitsCommand(fitID=activeFit, commandFitIDs=[fitID])) @staticmethod def fitSort(fit): @@ -228,8 +228,20 @@ class CommandView(d.Display): commandFits.append(commandFit) return commandFits + # Context menu handlers def addFit(self, fit): if fit is None: return - fitID = self.mainFrame.getActiveFit() - self.mainFrame.command.Submit(cmd.GuiAddCommandFitCommand(fitID=fitID, commandFitID=fit.ID)) + self.mainFrame.command.Submit(cmd.GuiAddCommandFitsCommand( + fitID=self.mainFrame.getActiveFit(), + commandFitIDs=[fit.ID])) + + def getExistingFitIDs(self): + return [f.ID for f in self.fits] + + def addFitsByIDs(self, fitIDs): + if not fitIDs: + return + self.mainFrame.command.Submit(cmd.GuiAddCommandFitsCommand( + fitID=self.mainFrame.getActiveFit(), + commandFitIDs=fitIDs)) diff --git a/gui/builtinContextMenus/commandFitAdd.py b/gui/builtinContextMenus/commandFitAdd.py index 88dd41318..e87a6535a 100644 --- a/gui/builtinContextMenus/commandFitAdd.py +++ b/gui/builtinContextMenus/commandFitAdd.py @@ -97,7 +97,7 @@ class AddCommandFit(ContextMenuUnconditional): return fitID = self.mainFrame.getActiveFit() - self.mainFrame.command.Submit(cmd.GuiAddCommandFitCommand(fitID=fitID, commandFitID=fit.ID)) + self.mainFrame.command.Submit(cmd.GuiAddCommandFitsCommand(fitID=fitID, commandFitIDs=[fit.ID])) AddCommandFit.populateFits(None) diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index 291d0bcac..aa70d6402 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -184,7 +184,7 @@ class FitItem(SFItem.SFBrowserItem): def OnAddCommandFit(self, event): activeFit = self.mainFrame.getActiveFit() if activeFit: - if self.mainFrame.command.Submit(cmd.GuiAddCommandFitCommand(fitID=activeFit, commandFitID=self.fitID)): + if self.mainFrame.command.Submit(cmd.GuiAddCommandFitsCommand(fitID=activeFit, commandFitIDs=[self.fitID])): self.mainFrame.additionsPane.select("Command") def OnMouseCaptureLost(self, event): diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index a83dd387f..2ca606e6a 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -7,7 +7,7 @@ from .gui.cargo.add import GuiAddCargoCommand from .gui.cargo.changeAmount import GuiChangeCargoAmountCommand from .gui.cargo.changeMetas import GuiChangeCargoMetasCommand from .gui.cargo.remove import GuiRemoveCargosCommand -from .gui.commandFit.add import GuiAddCommandFitCommand +from .gui.commandFit.add import GuiAddCommandFitsCommand from .gui.commandFit.remove import GuiRemoveCommandFitsCommand from .gui.commandFit.toggleStates import GuiToggleCommandFitStatesCommand from .gui.fitRename import GuiRenameFitCommand diff --git a/gui/fitCommands/gui/commandFit/add.py b/gui/fitCommands/gui/commandFit/add.py index 64d5b97ed..e2b6a8dd0 100644 --- a/gui/fitCommands/gui/commandFit/add.py +++ b/gui/fitCommands/gui/commandFit/add.py @@ -8,17 +8,22 @@ from gui.fitCommands.helpers import InternalCommandHistory from service.fit import Fit -class GuiAddCommandFitCommand(wx.Command): +class GuiAddCommandFitsCommand(wx.Command): - def __init__(self, fitID, commandFitID): - wx.Command.__init__(self, True, 'Add Command Fit') + def __init__(self, fitID, commandFitIDs): + wx.Command.__init__(self, True, 'Add Command Fits') self.internalHistory = InternalCommandHistory() self.fitID = fitID - self.commandFitID = commandFitID + self.commandFitIDs = commandFitIDs def Do(self): - cmd = CalcAddCommandCommand(fitID=self.fitID, commandFitID=self.commandFitID) - success = self.internalHistory.submit(cmd) + commands = [] + for commandFitID in self.commandFitIDs: + cmd = CalcAddCommandCommand(fitID=self.fitID, commandFitID=commandFitID) + commands.append(cmd) + if not commands: + return False + success = self.internalHistory.submitBatch(*commands) eos.db.flush() sFit = Fit.getInstance() sFit.recalc(self.fitID) diff --git a/gui/graphFrame/lists.py b/gui/graphFrame/lists.py index bdf3d2b52..43e24dd33 100644 --- a/gui/graphFrame/lists.py +++ b/gui/graphFrame/lists.py @@ -176,7 +176,7 @@ class BaseList(gui.display.Display): self.fits.append(fit) self.updateView() self.graphFrame.draw() - + class FitList(BaseList):