예제 #1
0
 def Do(self):
     sFit = Fit.getInstance()
     fit = sFit.getFit(self.fitID)
     mod = fit.modules[self.position]
     if mod.isEmpty:
         return False
     if not mod.isMutated:
         return False
     cmd = CalcReplaceLocalModuleCommand(fitID=self.fitID,
                                         position=self.position,
                                         newModInfo=ModuleInfo(
                                             itemID=mod.baseItemID,
                                             chargeID=mod.chargeID,
                                             state=mod.state,
                                             spoolType=mod.spoolType,
                                             spoolAmount=mod.spoolAmount))
     success = self.internalHistory.submit(cmd)
     sFit.recalc(self.fitID)
     sFit.fill(self.fitID)
     wx.PostEvent(gui.mainFrame.MainFrame.getInstance(),
                  GE.FitChanged(fitID=self.fitID))
     return success
예제 #2
0
 def Do(self):
     info = ModuleInfo(itemID=self.itemID)
     added_modules = 0
     while True:
         cmd = CalcAddLocalModuleCommand(fitID=self.fitID, newModInfo=info)
         if not self.internalHistory.submit(cmd):
             break
         added_modules += 1
     Market.getInstance().storeRecentlyUsed(self.itemID)
     sFit = Fit.getInstance()
     # Only last command decides if we need to recalc here or not
     if cmd.needsGuiRecalc:
         eos.db.flush()
         sFit.recalc(self.fitID)
     self.savedRemovedDummies = sFit.fill(self.fitID)
     eos.db.commit()
     success = added_modules > 0
     wx.PostEvent(
         gui.mainFrame.MainFrame.getInstance(),
         GE.FitChanged(
             fitIDs=(self.fitID, ), action='modadd', typeID=self.itemID)
         if success else GE.FitChanged(fitIDs=(self.fitID, )))
     return success