Avoid doing unnecessary recalcs
This commit is contained in:
@@ -19,9 +19,10 @@ class GuiAddProjectedModuleCommand(wx.Command):
|
||||
def Do(self):
|
||||
cmd = CalcAddProjectedModuleCommand(fitID=self.fitID, modInfo=ModuleInfo(itemID=self.itemID))
|
||||
success = self.internalHistory.submit(cmd)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
sFit.recalc(self.fitID)
|
||||
if cmd.needsGuiRecalc:
|
||||
eos.db.flush()
|
||||
sFit.recalc(self.fitID)
|
||||
sFit.fill(self.fitID)
|
||||
eos.db.commit()
|
||||
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
|
||||
|
||||
@@ -20,9 +20,10 @@ class GuiChangeProjectedModuleChargesCommand(wx.Command):
|
||||
def Do(self):
|
||||
cmd = CalcChangeModuleChargesCommand(fitID=self.fitID, projected=True, chargeMap={p: self.chargeItemID for p in self.positions})
|
||||
success = self.internalHistory.submit(cmd)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
sFit.recalc(self.fitID)
|
||||
if cmd.needsGuiRecalc:
|
||||
eos.db.flush()
|
||||
sFit.recalc(self.fitID)
|
||||
sFit.fill(self.fitID)
|
||||
eos.db.commit()
|
||||
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
|
||||
|
||||
@@ -22,6 +22,7 @@ class GuiChangeProjectedModuleMetasCommand(wx.Command):
|
||||
sFit = Fit.getInstance()
|
||||
fit = sFit.getFit(self.fitID)
|
||||
results = []
|
||||
needRecalc = None
|
||||
for position in sorted(self.positions, reverse=True):
|
||||
module = fit.projectedModules[position]
|
||||
if module.itemID == self.newItemID:
|
||||
@@ -31,9 +32,12 @@ class GuiChangeProjectedModuleMetasCommand(wx.Command):
|
||||
cmdRemove = CalcRemoveProjectedModuleCommand(fitID=self.fitID, position=position)
|
||||
cmdAdd = CalcAddProjectedModuleCommand(fitID=self.fitID, modInfo=info)
|
||||
results.append(self.internalHistory.submitBatch(cmdRemove, cmdAdd))
|
||||
# Only last add command counts
|
||||
needRecalc = cmdAdd.needsGuiRecalc
|
||||
success = any(results)
|
||||
eos.db.flush()
|
||||
sFit.recalc(self.fitID)
|
||||
if needRecalc:
|
||||
eos.db.flush()
|
||||
sFit.recalc(self.fitID)
|
||||
sFit.fill(self.fitID)
|
||||
eos.db.commit()
|
||||
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
|
||||
|
||||
Reference in New Issue
Block a user