MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / Do

Method Do

gui/fitCommands/gui/itemsRebase.py:22–68  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

20 self.rebaseMap = rebaseMap
21
22 def Do(self):
23 sFit = Fit.getInstance()
24 fit = sFit.getFit(self.fitID)
25 # Here we assume that item attribs do not change and item state will not change
26 for mod in fit.modules:
27 if mod.itemID in self.rebaseMap:
28 cmd = CalcRebaseItemCommand(
29 fitID=self.fitID,
30 containerName='modules',
31 position=fit.modules.index(mod),
32 itemID=self.rebaseMap[mod.itemID])
33 self.internalHistory.submit(cmd)
34 if mod.chargeID in self.rebaseMap:
35 cmd = CalcChangeModuleChargesCommand(
36 fitID=self.fitID,
37 projected=False,
38 chargeMap={fit.modules.index(mod): self.rebaseMap[mod.chargeID]},
39 recalc=False)
40 self.internalHistory.submit(cmd)
41 for containerName in ('drones', 'fighters', 'implants', 'boosters'):
42 container = getattr(fit, containerName)
43 for obj in container:
44 if obj.itemID in self.rebaseMap:
45 cmd = CalcRebaseItemCommand(
46 fitID=self.fitID,
47 containerName=containerName,
48 position=container.index(obj),
49 itemID=self.rebaseMap[obj.itemID])
50 self.internalHistory.submit(cmd)
51 # Need to process cargo separately as we want to merge items when needed,
52 # e.g. FN iron and CN iron into single stack of CN iron
53 for cargo in fit.cargo:
54 if cargo.itemID in self.rebaseMap:
55 amount = cargo.amount
56 cmdRemove = CalcRemoveCargoCommand(
57 fitID=self.fitID,
58 cargoInfo=CargoInfo(itemID=cargo.itemID, amount=amount))
59 cmdAdd = CalcAddCargoCommand(
60 fitID=self.fitID,
61 cargoInfo=CargoInfo(itemID=self.rebaseMap[cargo.itemID], amount=amount))
62 self.internalHistory.submitBatch(cmdRemove, cmdAdd)
63 eos.db.flush()
64 sFit.recalc(fit)
65 sFit.fill(self.fitID)
66 eos.db.commit()
67 wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
68 return len(self.internalHistory) > 0
69
70 def Undo(self):
71 sFit = Fit.getInstance()

Callers

nothing calls this directly

Calls 12

CargoInfoClass · 0.90
CalcAddCargoCommandClass · 0.90
getFitMethod · 0.80
submitMethod · 0.80
submitBatchMethod · 0.80
flushMethod · 0.80
recalcMethod · 0.80
getInstanceMethod · 0.45
fillMethod · 0.45

Tested by

no test coverage detected