Improve some efficiencies with the variations context menu: Do not recalc twice when switching items. (#1095)

This commit is contained in:
Ryan Holmes
2017-04-02 16:46:25 -05:00
committed by GitHub
parent 1daafd15e6
commit 3dd539b4f0
2 changed files with 24 additions and 18 deletions

View File

@@ -143,11 +143,11 @@ class MetaSwap(ContextMenu):
for idx, drone_stack in enumerate(fit.drones):
if drone_stack is selected_item:
drone_count = drone_stack.amount
sFit.removeDrone(fitID, idx, drone_count)
sFit.removeDrone(fitID, idx, drone_count, False)
break
if drone_count:
sFit.addDrone(fitID, item.ID, drone_count)
sFit.addDrone(fitID, item.ID, drone_count, True)
elif isinstance(selected_item, Fighter):
fighter_count = None
@@ -164,16 +164,16 @@ class MetaSwap(ContextMenu):
else:
fighter_count.amount = 0
sFit.removeFighter(fitID, idx)
sFit.removeFighter(fitID, idx, False)
break
sFit.addFighter(fitID, item.ID)
sFit.addFighter(fitID, item.ID, True)
elif isinstance(selected_item, Booster):
for idx, booster_stack in enumerate(fit.boosters):
if booster_stack is selected_item:
sFit.removeBooster(fitID, idx)
sFit.addBooster(fitID, item.ID)
sFit.removeBooster(fitID, idx, False)
sFit.addBooster(fitID, item.ID, True)
break
elif isinstance(selected_item, Implant):

View File

@@ -278,7 +278,7 @@ class Fit(object):
self.recalc(fit)
return True
def addBooster(self, fitID, itemID):
def addBooster(self, fitID, itemID, recalc=True):
pyfalog.debug("Adding booster ({0}) to fit ID: {1}", itemID, fitID)
if fitID is None:
return False
@@ -292,10 +292,11 @@ class Fit(object):
return False
fit.boosters.append(booster)
self.recalc(fit)
if recalc:
self.recalc(fit)
return True
def removeBooster(self, fitID, position):
def removeBooster(self, fitID, position, recalc=True):
pyfalog.debug("Removing booster from position ({0}) for fit ID: {1}", position, fitID)
if fitID is None:
return False
@@ -303,7 +304,8 @@ class Fit(object):
fit = eos.db.getFit(fitID)
booster = fit.boosters[position]
fit.boosters.remove(booster)
self.recalc(fit)
if recalc:
self.recalc(fit)
return True
def project(self, fitID, thing):
@@ -670,7 +672,7 @@ class Fit(object):
self.recalc(fit)
return True
def addFighter(self, fitID, itemID):
def addFighter(self, fitID, itemID, recalc=True):
pyfalog.debug("Adding fighters ({0}) to fit ID: {1}", itemID, fitID)
if fitID is None:
return False
@@ -712,22 +714,24 @@ class Fit(object):
return False
eos.db.commit()
self.recalc(fit)
if recalc:
self.recalc(fit)
return True
else:
return False
def removeFighter(self, fitID, i):
def removeFighter(self, fitID, i, recalc=True):
pyfalog.debug("Removing fighters from fit ID: {0}", fitID)
fit = eos.db.getFit(fitID)
f = fit.fighters[i]
fit.fighters.remove(f)
eos.db.commit()
self.recalc(fit)
if recalc:
self.recalc(fit)
return True
def addDrone(self, fitID, itemID, numDronesToAdd=1):
def addDrone(self, fitID, itemID, numDronesToAdd=1, recalc=True):
pyfalog.debug("Adding {0} drones ({1}) to fit ID: {2}", numDronesToAdd, itemID, fitID)
if fitID is None:
return False
@@ -749,7 +753,8 @@ class Fit(object):
return False
drone.amount += numDronesToAdd
eos.db.commit()
self.recalc(fit)
if recalc:
self.recalc(fit)
return True
else:
return False
@@ -810,7 +815,7 @@ class Fit(object):
fit = eos.db.getFit(fitID)
self.splitDrones(fit, d, amount, fit.drones)
def removeDrone(self, fitID, i, numDronesToRemove=1):
def removeDrone(self, fitID, i, numDronesToRemove=1, recalc=True):
pyfalog.debug("Removing {0} drones for fit ID: {1}", numDronesToRemove, fitID)
fit = eos.db.getFit(fitID)
d = fit.drones[i]
@@ -822,7 +827,8 @@ class Fit(object):
del fit.drones[i]
eos.db.commit()
self.recalc(fit)
if recalc:
self.recalc(fit)
return True
def toggleDrone(self, fitID, i):