From 425c7f657c6fa4acdd3946ece8909553aa69d47f Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 3 Aug 2018 22:30:09 -0400 Subject: [PATCH] Do command fit toggle. Still need to settle on the logic for how to handle deleted fits - seems there's an issue with the queue. --- gui/builtinAdditionPanes/commandView.py | 4 +-- gui/fitCommands/__init__.py | 1 + gui/fitCommands/calc/fitToggleCommand.py | 42 ++++++++++++++++++++++++ gui/fitCommands/guiToggleCommand.py | 31 +++++++++++++++++ service/fit.py | 1 + 5 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 gui/fitCommands/calc/fitToggleCommand.py create mode 100644 gui/fitCommands/guiToggleCommand.py diff --git a/gui/builtinAdditionPanes/commandView.py b/gui/builtinAdditionPanes/commandView.py index 7a35ac74b..d05e4fe8c 100644 --- a/gui/builtinAdditionPanes/commandView.py +++ b/gui/builtinAdditionPanes/commandView.py @@ -186,9 +186,7 @@ class CommandView(d.Display): col = self.getColumn(event.Position) if col == self.getColIndex(State): fitID = self.mainFrame.getActiveFit() - sFit = Fit.getInstance() - sFit.toggleCommandFit(fitID, item) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + self.mainFrame.command.Submit(cmd.GuiToggleCommandCommand(fitID, item.ID)) def scheduleMenu(self, event): event.Skip() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 7e16fecbb..7abbd4141 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -12,3 +12,4 @@ from .guiRemoveBooster import GuiRemoveBoosterCommand from .guiAddCommand import GuiAddCommandCommand from .guiRemoveCommand import GuiRemoveCommandCommand from .guiSetMode import GuiSetModeCommand +from .guiToggleCommand import GuiToggleCommandCommand \ No newline at end of file diff --git a/gui/fitCommands/calc/fitToggleCommand.py b/gui/fitCommands/calc/fitToggleCommand.py new file mode 100644 index 000000000..c8adc87ac --- /dev/null +++ b/gui/fitCommands/calc/fitToggleCommand.py @@ -0,0 +1,42 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +#from .helpers import ModuleInfoCache +from eos.saveddata.module import Module, State +import eos.db +from logbook import Logger +pyfalog = Logger(__name__) +from eos.saveddata.implant import Implant + +class FitToggleCommandCommand(wx.Command): + """" + from sFit.toggleCommandFit + """ + def __init__(self, fitID, commandFitId): + wx.Command.__init__(self, True, "Cargo add") + self.fitID = fitID + self.commandFitID = commandFitId + + def Do(self): + pyfalog.debug("Toggle command fit ({0}) for: {1}", self.commandFitID, self.fitID) + commandFit = eos.db.getFit(self.commandFitID) + + if not commandFit: + pyfalog.debug(" -- Command fit not found, deleted?") + return False + + commandInfo = commandFit.getCommandInfo(self.fitID) + + if not commandInfo: + pyfalog.debug(" -- Command fit info not found, deleted?") + return False + + commandInfo.active = not commandInfo.active + eos.db.commit() + return True + + def Undo(self): + cmd = FitToggleCommandCommand(self.fitID, self.commandFitID) + return cmd.Do() diff --git a/gui/fitCommands/guiToggleCommand.py b/gui/fitCommands/guiToggleCommand.py new file mode 100644 index 000000000..b7f07ed78 --- /dev/null +++ b/gui/fitCommands/guiToggleCommand.py @@ -0,0 +1,31 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitToggleCommand import FitToggleCommandCommand + +class GuiToggleCommandCommand(wx.Command): + def __init__(self, fitID, commandFitID): + wx.Command.__init__(self, True, "") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + # can set his up no to not have to set variables on our object + self.cmd = FitToggleCommandCommand(fitID, commandFitID) + + def Do(self): + if self.internal_history.Submit(self.cmd): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + diff --git a/service/fit.py b/service/fit.py index d581ff07f..238c5c58b 100644 --- a/service/fit.py +++ b/service/fit.py @@ -496,6 +496,7 @@ class Fit(object): eos.db.commit() self.recalc(fit) + @deprecated def toggleCommandFit(self, fitID, thing): pyfalog.debug("Toggle command fit ({0}) for: {1}", fitID, thing) fit = eos.db.getFit(fitID)