Rework 3 more UI commands
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
27
gui/fitCommands/fitRename.py
Normal file
27
gui/fitCommands/fitRename.py
Normal file
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user