From a560597a85ee23a1e1e7b3c5afd1bae3cc47dace Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 15 Apr 2019 12:06:07 +0300 Subject: [PATCH] Rework 3 more UI commands --- gui/builtinContextMenus/tacticalMode.py | 2 +- gui/builtinShipBrowser/fitItem.py | 2 +- gui/fitCommands/__init__.py | 6 ++-- .../calcCommands/shipModeChange.py | 6 ++-- gui/fitCommands/fitRename.py | 27 ++++++++++++++++++ gui/fitCommands/guiFitRename.py | 28 ------------------- .../{guiRebaseItems.py => itemsRebase.py} | 25 ++++++++--------- .../{guiSetMode.py => shipModeChange.py} | 18 ++++++------ gui/mainFrame.py | 2 +- service/price.py | 3 +- 10 files changed, 59 insertions(+), 60 deletions(-) create mode 100644 gui/fitCommands/fitRename.py delete mode 100644 gui/fitCommands/guiFitRename.py rename gui/fitCommands/{guiRebaseItems.py => itemsRebase.py} (83%) rename gui/fitCommands/{guiSetMode.py => shipModeChange.py} (53%) diff --git a/gui/builtinContextMenus/tacticalMode.py b/gui/builtinContextMenus/tacticalMode.py index b9b51ae8c..0e31c5c11 100644 --- a/gui/builtinContextMenus/tacticalMode.py +++ b/gui/builtinContextMenus/tacticalMode.py @@ -61,7 +61,7 @@ class TacticalMode(ContextMenu): return fitID = self.mainFrame.getActiveFit() - self.mainFrame.command.Submit(cmd.GuiSetModeCommand(fitID, self.modeIds[event.Id].item.ID)) + self.mainFrame.command.Submit(cmd.GuiChangeShipModeCommand(fitID, self.modeIds[event.Id].item.ID)) TacticalMode.register() diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index 175fb4410..8be39c269 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -327,7 +327,7 @@ class FitItem(SFItem.SFBrowserItem): self.editWasShown = 0 fitName = self.tcFitName.GetValue() if fitName: - self.mainFrame.command.Submit(cmd.GuiFitRenameCommand(self.fitID, fitName)) + self.mainFrame.command.Submit(cmd.GuiRenameFitCommand(self.fitID, fitName)) else: self.tcFitName.SetValue(self.fitName) diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index e3263147c..41c4fc561 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -18,11 +18,11 @@ from .localFighter.changeAmount import GuiChangeLocalFighterAmountCommand from .localFighter.remove import GuiRemoveLocalFighterCommand from .localFighter.toggleState import GuiToggleLocalFighterStateCommand from .guiCargoToModule import GuiCargoToModuleCommand -from .guiFitRename import GuiFitRenameCommand +from .fitRename import GuiRenameFitCommand from .guiMetaSwap import GuiMetaSwapCommand from .guiModuleToCargo import GuiModuleToCargoCommand -from .guiRebaseItems import GuiRebaseItemsCommand -from .guiSetMode import GuiSetModeCommand +from .itemsRebase import GuiRebaseItemsCommand +from .shipModeChange import GuiChangeShipModeCommand from .guiSwapCloneModule import GuiModuleSwapOrCloneCommand from .implant.add import GuiAddImplantCommand from .implant.changeLocation import GuiChangeImplantLocationCommand diff --git a/gui/fitCommands/calcCommands/shipModeChange.py b/gui/fitCommands/calcCommands/shipModeChange.py index d332af647..b33004c06 100644 --- a/gui/fitCommands/calcCommands/shipModeChange.py +++ b/gui/fitCommands/calcCommands/shipModeChange.py @@ -13,13 +13,13 @@ pyfalog = Logger(__name__) class CalcChangeShipModeCommand(wx.Command): def __init__(self, fitID, itemID): - wx.Command.__init__(self, True, 'Set Mode') + wx.Command.__init__(self, True, 'Change Ship Mode') self.fitID = fitID self.itemID = itemID self.savedItemID = None def Do(self): - pyfalog.debug('Doing changing mode to {} for fit {}'.format(self.itemID, self.fitID)) + pyfalog.debug('Doing changing ship mode to {} for fit {}'.format(self.itemID, self.fitID)) fit = Fit.getInstance().getFit(self.fitID) self.savedItemID = fit.modeID item = Market.getInstance().getItem(self.itemID) @@ -29,6 +29,6 @@ class CalcChangeShipModeCommand(wx.Command): return True def Undo(self): - pyfalog.debug('Undoing changing mode to {} for fit {}'.format(self.itemID, self.fitID)) + pyfalog.debug('Undoing changing ship mode to {} for fit {}'.format(self.itemID, self.fitID)) cmd = CalcChangeShipModeCommand(self.fitID, self.savedItemID) return cmd.Do() diff --git a/gui/fitCommands/fitRename.py b/gui/fitCommands/fitRename.py new file mode 100644 index 000000000..3fa6a32d5 --- /dev/null +++ b/gui/fitCommands/fitRename.py @@ -0,0 +1,27 @@ +import wx + +import gui.mainFrame +from gui.builtinShipBrowser.events import FitRenamed +from gui.fitCommands.calcCommands.fitRename import CalcFitRenameCommand +from gui.fitCommands.helpers import InternalCommandHistory + + +class GuiRenameFitCommand(wx.Command): + + def __init__(self, fitID, name): + wx.Command.__init__(self, True, 'Rename Fit') + self.internalHistory = InternalCommandHistory() + self.fitID = fitID + self.name = name + + def Do(self): + cmd = CalcFitRenameCommand(fitID=self.fitID, name=self.name) + if self.internalHistory.submit(cmd): + wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), FitRenamed(fitID=self.fitID)) + return True + return False + + def Undo(self): + success = self.internalHistory.undoAll() + wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), FitRenamed(fitID=self.fitID)) + return success diff --git a/gui/fitCommands/guiFitRename.py b/gui/fitCommands/guiFitRename.py deleted file mode 100644 index 201c85ce9..000000000 --- a/gui/fitCommands/guiFitRename.py +++ /dev/null @@ -1,28 +0,0 @@ -import wx -import gui.mainFrame -from .calcCommands.fitRename import CalcFitRenameCommand -from service.fit import Fit -from logbook import Logger -from gui.builtinShipBrowser.events import FitRenamed -pyfalog = Logger(__name__) - - -class GuiFitRenameCommand(wx.Command): - def __init__(self, fitID, newName): - wx.Command.__init__(self, True) - self.fitID = fitID - self.newName = newName - self.internalHistory = wx.CommandProcessor() - - def Do(self): - if self.internalHistory.Submit(CalcFitRenameCommand(self.fitID, self.newName)): - wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), FitRenamed(fitID=self.fitID)) - return True - return False - - def Undo(self): - pyfalog.debug("{} Undo()".format(self)) - for _ in self.internalHistory.Commands: - self.internalHistory.Undo() - wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), FitRenamed(fitID=self.fitID)) - return True diff --git a/gui/fitCommands/guiRebaseItems.py b/gui/fitCommands/itemsRebase.py similarity index 83% rename from gui/fitCommands/guiRebaseItems.py rename to gui/fitCommands/itemsRebase.py index 304b3cf7d..caa3d985c 100644 --- a/gui/fitCommands/guiRebaseItems.py +++ b/gui/fitCommands/itemsRebase.py @@ -3,32 +3,31 @@ import wx import eos.db import gui.mainFrame from gui import globalEvents as GE -from gui.fitCommands.helpers import CargoInfo +from gui.fitCommands.helpers import CargoInfo, InternalCommandHistory from service.fit import Fit -from .calcCommands.itemRebase import CalcRebaseItemCommand -from .calcCommands.module.changeCharges import CalcChangeModuleChargesCommand from .calcCommands.cargo.add import CalcAddCargoCommand from .calcCommands.cargo.remove import CalcRemoveCargoCommand -from gui.fitCommands.helpers import InternalCommandHistory - +from .calcCommands.itemRebase import CalcRebaseItemCommand +from .calcCommands.module.changeCharges import CalcChangeModuleChargesCommand class GuiRebaseItemsCommand(wx.Command): def __init__(self, fitID, rebaseMap): - wx.Command.__init__(self, True, "Mass Rebase Item") + wx.Command.__init__(self, True, 'Rebase Items') + self.internalHistory = InternalCommandHistory() self.fitID = fitID self.rebaseMap = rebaseMap - self.internalHistory = InternalCommandHistory() def Do(self): - fit = eos.db.getFit(self.fitID) + sFit = Fit.getInstance() + fit = sFit.getFit(self.fitID) for mod in fit.modules: if mod.itemID in self.rebaseMap: - self.internalHistory.submit(CalcRebaseItemCommand(fitID=self.fitID, containerName="modules", position=mod.modPosition, itemID=self.rebaseMap[mod.itemID], commit=False)) + self.internalHistory.submit(CalcRebaseItemCommand(fitID=self.fitID, containerName='modules', position=mod.modPosition, itemID=self.rebaseMap[mod.itemID], commit=False)) if mod.chargeID in self.rebaseMap: self.internalHistory.submit(CalcChangeModuleChargesCommand(fitID=self.fitID, projected=False, chargeMap={mod.modPosition: self.rebaseMap[mod.chargeID]})) - for containerName in ("drones", "fighters", "implants", "boosters"): + for containerName in ('drones', 'fighters', 'implants', 'boosters'): container = getattr(fit, containerName) for obj in container: if obj.itemID in self.rebaseMap: @@ -42,15 +41,15 @@ class GuiRebaseItemsCommand(wx.Command): self.internalHistory.submit(CalcAddCargoCommand(fitID=self.fitID, cargoInfo=CargoInfo(itemID=self.rebaseMap[cargo.itemID], amount=amount))) if self.internalHistory: eos.db.commit() - Fit.getInstance().recalc(self.fitID) + sFit.recalc(self.fitID) wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitID=self.fitID)) return True else: return False def Undo(self): - self.internalHistory.undoAll() + success = self.internalHistory.undoAll() eos.db.commit() Fit.getInstance().recalc(self.fitID) wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitID=self.fitID)) - return True + return success diff --git a/gui/fitCommands/guiSetMode.py b/gui/fitCommands/shipModeChange.py similarity index 53% rename from gui/fitCommands/guiSetMode.py rename to gui/fitCommands/shipModeChange.py index d361776e6..999a8da6f 100644 --- a/gui/fitCommands/guiSetMode.py +++ b/gui/fitCommands/shipModeChange.py @@ -3,26 +3,28 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from .calcCommands.shipModeChange import CalcChangeShipModeCommand +from gui.fitCommands.helpers import InternalCommandHistory +from gui.fitCommands.calcCommands.shipModeChange import CalcChangeShipModeCommand -class GuiSetModeCommand(wx.Command): +class GuiChangeShipModeCommand(wx.Command): + def __init__(self, fitID, itemID): - wx.Command.__init__(self, True, "Mode Set") - self.internalHistory = wx.CommandProcessor() + wx.Command.__init__(self, True, 'Change Ship Mode') + self.internalHistory = InternalCommandHistory() self.fitID = fitID self.itemID = itemID def Do(self): - if self.internalHistory.Submit(CalcChangeShipModeCommand(self.fitID, self.itemID)): + cmd = CalcChangeShipModeCommand(fitID=self.fitID, itemID=self.itemID) + if self.internalHistory.submit(cmd): Fit.getInstance().recalc(self.fitID) wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitID=self.fitID)) return True return False def Undo(self): - for _ in self.internalHistory.Commands: - self.internalHistory.Undo() + success = self.internalHistory.undoAll() Fit.getInstance().recalc(self.fitID) wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitID=self.fitID)) - return True + return success diff --git a/gui/mainFrame.py b/gui/mainFrame.py index b2ed58425..87e28fd45 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -656,7 +656,7 @@ class MainFrame(wx.Frame): del self.waitDialog del self.disablerAll rebaseMap = {k.ID: v.ID for k, v in replacementsCheaper.items()} - self.command.Submit(cmd.GuiRebaseItemsCommand(fitID, rebaseMap)) + self.command.Submit(cmd.GuiRebaseItemsCommand(fitID=fitID, rebaseMap=rebaseMap)) fitItems = {i for i in Fit.fitItemIter(fit) if i is not fit.ship.item} self.disablerAll = wx.WindowDisabler() diff --git a/service/price.py b/service/price.py index 5cfdf09c8..0fa8b92ba 100644 --- a/service/price.py +++ b/service/price.py @@ -18,17 +18,16 @@ # ============================================================================= -import math import queue import threading from itertools import chain +import math import wx from logbook import Logger from eos import db from eos.saveddata.price import PriceStatus -from gui.fitCommands.guiRebaseItems import GuiRebaseItemsCommand from service.fit import Fit from service.market import Market from service.network import TimeoutError