Add modules to recents when they are removed too
This commit is contained in:
@@ -27,7 +27,6 @@ class ItemView(Display):
|
||||
|
||||
self.unfilteredStore = set()
|
||||
self.filteredStore = set()
|
||||
self.recentlyUsedModules = []
|
||||
self.sMkt = marketBrowser.sMkt
|
||||
self.sFit = Fit.getInstance()
|
||||
|
||||
@@ -53,14 +52,6 @@ class ItemView(Display):
|
||||
self.metaMap = self.makeReverseMetaMap()
|
||||
self.active = []
|
||||
|
||||
# Fill up recently used modules set
|
||||
pyfalog.debug("Fill up recently used modules set")
|
||||
for itemID in self.sMkt.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"]:
|
||||
item = self.sMkt.getItem(itemID)
|
||||
if item is None:
|
||||
self.sMkt.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"].remove(itemID)
|
||||
self.recentlyUsedModules.append(item)
|
||||
|
||||
def delaySearch(self, evt):
|
||||
sFit = Fit.getInstance()
|
||||
self.searchTimer.Stop()
|
||||
@@ -87,12 +78,6 @@ class ItemView(Display):
|
||||
return
|
||||
|
||||
if self.mainFrame.getActiveFit():
|
||||
|
||||
self.sMkt.storeRecentlyUsed(self.active[sel].ID)
|
||||
self.recentlyUsedModules = []
|
||||
for itemID in self.sMkt.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"]:
|
||||
self.recentlyUsedModules.append(self.sMkt.getItem(itemID))
|
||||
|
||||
wx.PostEvent(self.mainFrame, ItemSelected(itemID=self.active[sel].ID))
|
||||
|
||||
def treeSelectionChanged(self, event=None):
|
||||
@@ -119,7 +104,7 @@ class ItemView(Display):
|
||||
else:
|
||||
# If method was called but selection wasn't actually made or we have a hit on recently used modules
|
||||
if seldata == RECENTLY_USED_MODULES:
|
||||
items = self.recentlyUsedModules
|
||||
items = self.sMkt.getRecentlyUsed()
|
||||
else:
|
||||
items = set()
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.booster.add import CalcAddBoosterCommand
|
||||
from gui.fitCommands.helpers import BoosterInfo, InternalCommandHistory
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiAddBoosterCommand(wx.Command):
|
||||
@@ -19,6 +20,7 @@ class GuiAddBoosterCommand(wx.Command):
|
||||
def Do(self):
|
||||
cmd = CalcAddBoosterCommand(fitID=self.fitID, boosterInfo=BoosterInfo(itemID=self.itemID))
|
||||
success = self.internalHistory.submit(cmd)
|
||||
Market.getInstance().storeRecentlyUsed(self.itemID)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
sFit.recalc(self.fitID)
|
||||
|
||||
@@ -6,6 +6,7 @@ from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.booster.remove import CalcRemoveBoosterCommand
|
||||
from gui.fitCommands.helpers import InternalCommandHistory
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiRemoveBoostersCommand(wx.Command):
|
||||
@@ -17,10 +18,12 @@ class GuiRemoveBoostersCommand(wx.Command):
|
||||
self.positions = positions
|
||||
|
||||
def Do(self):
|
||||
sMkt = Market.getInstance()
|
||||
results = []
|
||||
for position in sorted(self.positions, reverse=True):
|
||||
cmd = CalcRemoveBoosterCommand(fitID=self.fitID, position=position)
|
||||
results.append(self.internalHistory.submit(cmd))
|
||||
sMkt.storeRecentlyUsed(cmd.savedBoosterInfo.itemID)
|
||||
success = any(results)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
|
||||
@@ -5,6 +5,7 @@ import gui.mainFrame
|
||||
from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.cargo.add import CalcAddCargoCommand
|
||||
from gui.fitCommands.helpers import CargoInfo, InternalCommandHistory
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiAddCargoCommand(wx.Command):
|
||||
@@ -19,6 +20,7 @@ class GuiAddCargoCommand(wx.Command):
|
||||
def Do(self):
|
||||
cmd = CalcAddCargoCommand(fitID=self.fitID, cargoInfo=CargoInfo(itemID=self.itemID, amount=self.amount))
|
||||
success = self.internalHistory.submit(cmd)
|
||||
Market.getInstance().storeRecentlyUsed(self.itemID)
|
||||
eos.db.commit()
|
||||
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
|
||||
return success
|
||||
|
||||
@@ -7,6 +7,7 @@ import gui.mainFrame
|
||||
from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.cargo.remove import CalcRemoveCargoCommand
|
||||
from gui.fitCommands.helpers import CargoInfo, InternalCommandHistory
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiRemoveCargosCommand(wx.Command):
|
||||
@@ -18,12 +19,14 @@ class GuiRemoveCargosCommand(wx.Command):
|
||||
self.itemIDs = itemIDs
|
||||
|
||||
def Do(self):
|
||||
sMkt = Market.getInstance()
|
||||
results = []
|
||||
for itemID in self.itemIDs:
|
||||
cmd = CalcRemoveCargoCommand(
|
||||
fitID=self.fitID,
|
||||
cargoInfo=CargoInfo(itemID=itemID, amount=math.inf))
|
||||
results.append(self.internalHistory.submit(cmd))
|
||||
sMkt.storeRecentlyUsed(itemID)
|
||||
success = any(results)
|
||||
eos.db.commit()
|
||||
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
|
||||
|
||||
@@ -8,6 +8,7 @@ from gui.fitCommands.calc.implant.add import CalcAddImplantCommand
|
||||
from gui.fitCommands.calc.implant.changeLocation import CalcChangeImplantLocationCommand
|
||||
from gui.fitCommands.helpers import ImplantInfo, InternalCommandHistory
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiAddImplantCommand(wx.Command):
|
||||
@@ -28,6 +29,7 @@ class GuiAddImplantCommand(wx.Command):
|
||||
successSource = False
|
||||
cmd = CalcAddImplantCommand(fitID=self.fitID, implantInfo=ImplantInfo(itemID=self.itemID))
|
||||
successImplant = self.internalHistory.submit(cmd)
|
||||
Market.getInstance().storeRecentlyUsed(self.itemID)
|
||||
# Acceptable behavior when we already have passed implant and just switch source, or
|
||||
# when we have source and add implant, but not if we do not change anything
|
||||
success = successSource or successImplant
|
||||
|
||||
@@ -6,6 +6,7 @@ import gui.mainFrame
|
||||
from gui import globalEvents as GE
|
||||
from gui.fitCommands.helpers import InternalCommandHistory
|
||||
from gui.fitCommands.calc.implant.remove import CalcRemoveImplantCommand
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiRemoveImplantsCommand(wx.Command):
|
||||
@@ -17,10 +18,12 @@ class GuiRemoveImplantsCommand(wx.Command):
|
||||
self.positions = positions
|
||||
|
||||
def Do(self):
|
||||
sMkt = Market.getInstance()
|
||||
results = []
|
||||
for position in sorted(self.positions, reverse=True):
|
||||
cmd = CalcRemoveImplantCommand(fitID=self.fitID, position=position)
|
||||
results.append(self.internalHistory.submit(cmd))
|
||||
sMkt.storeRecentlyUsed(cmd.savedImplantInfo.itemID)
|
||||
success = any(results)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
|
||||
@@ -6,6 +6,7 @@ from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.drone.localAdd import CalcAddLocalDroneCommand
|
||||
from gui.fitCommands.helpers import DroneInfo, InternalCommandHistory
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiAddLocalDroneCommand(wx.Command):
|
||||
@@ -20,6 +21,7 @@ class GuiAddLocalDroneCommand(wx.Command):
|
||||
def Do(self):
|
||||
cmd = CalcAddLocalDroneCommand(fitID=self.fitID, droneInfo=DroneInfo(itemID=self.itemID, amount=self.amount, amountActive=0))
|
||||
success = self.internalHistory.submit(cmd)
|
||||
Market.getInstance().storeRecentlyUsed(self.itemID)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
sFit.recalc(self.fitID)
|
||||
|
||||
@@ -6,6 +6,7 @@ from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.drone.localRemove import CalcRemoveLocalDroneCommand
|
||||
from gui.fitCommands.helpers import InternalCommandHistory
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiRemoveLocalDronesCommand(wx.Command):
|
||||
@@ -18,6 +19,7 @@ class GuiRemoveLocalDronesCommand(wx.Command):
|
||||
self.amount = amount
|
||||
|
||||
def Do(self):
|
||||
sMkt = Market.getInstance()
|
||||
results = []
|
||||
for position in sorted(self.positions, reverse=True):
|
||||
cmd = CalcRemoveLocalDroneCommand(
|
||||
@@ -25,6 +27,7 @@ class GuiRemoveLocalDronesCommand(wx.Command):
|
||||
position=position,
|
||||
amount=self.amount)
|
||||
results.append(self.internalHistory.submit(cmd))
|
||||
sMkt.storeRecentlyUsed(cmd.savedDroneInfo.itemID)
|
||||
success = any(results)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
|
||||
@@ -6,6 +6,7 @@ from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.fighter.localAdd import CalcAddLocalFighterCommand
|
||||
from gui.fitCommands.helpers import FighterInfo, InternalCommandHistory
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiAddLocalFighterCommand(wx.Command):
|
||||
@@ -19,6 +20,7 @@ class GuiAddLocalFighterCommand(wx.Command):
|
||||
def Do(self):
|
||||
cmd = CalcAddLocalFighterCommand(fitID=self.fitID, fighterInfo=FighterInfo(itemID=self.itemID))
|
||||
success = self.internalHistory.submit(cmd)
|
||||
Market.getInstance().storeRecentlyUsed(self.itemID)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
sFit.recalc(self.fitID)
|
||||
|
||||
@@ -6,6 +6,7 @@ from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.fighter.localRemove import CalcRemoveLocalFighterCommand
|
||||
from gui.fitCommands.helpers import InternalCommandHistory
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiRemoveLocalFightersCommand(wx.Command):
|
||||
@@ -17,10 +18,12 @@ class GuiRemoveLocalFightersCommand(wx.Command):
|
||||
self.positions = positions
|
||||
|
||||
def Do(self):
|
||||
sMkt = Market.getInstance()
|
||||
results = []
|
||||
for position in sorted(self.positions, reverse=True):
|
||||
cmd = CalcRemoveLocalFighterCommand(fitID=self.fitID, position=position)
|
||||
results.append(self.internalHistory.submit(cmd))
|
||||
sMkt.storeRecentlyUsed(cmd.savedFighterInfo.itemID)
|
||||
success = any(results)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
|
||||
@@ -6,6 +6,7 @@ from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.module.localAdd import CalcAddLocalModuleCommand
|
||||
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo, restoreRemovedDummies
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiAddLocalModuleCommand(wx.Command):
|
||||
@@ -20,6 +21,7 @@ class GuiAddLocalModuleCommand(wx.Command):
|
||||
def Do(self):
|
||||
cmd = CalcAddLocalModuleCommand(fitID=self.fitID, newModInfo=ModuleInfo(itemID=self.itemID))
|
||||
success = self.internalHistory.submit(cmd)
|
||||
Market.getInstance().storeRecentlyUsed(self.itemID)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
sFit.recalc(self.fitID)
|
||||
|
||||
@@ -6,6 +6,7 @@ from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.module.localAdd import CalcAddLocalModuleCommand
|
||||
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo, restoreRemovedDummies
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiFillWithNewLocalModulesCommand(wx.Command):
|
||||
@@ -25,6 +26,7 @@ class GuiFillWithNewLocalModulesCommand(wx.Command):
|
||||
if not self.internalHistory.submit(cmd):
|
||||
break
|
||||
added_modules += 1
|
||||
Market.getInstance().storeRecentlyUsed(self.itemID)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
sFit.recalc(self.fitID)
|
||||
|
||||
@@ -6,6 +6,7 @@ from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.module.localRemove import CalcRemoveLocalModulesCommand
|
||||
from gui.fitCommands.helpers import InternalCommandHistory, restoreRemovedDummies
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiRemoveLocalModuleCommand(wx.Command):
|
||||
@@ -19,11 +20,16 @@ class GuiRemoveLocalModuleCommand(wx.Command):
|
||||
self.savedRemovedDummies = None
|
||||
|
||||
def Do(self):
|
||||
sMkt = Market.getInstance()
|
||||
sFit = Fit.getInstance()
|
||||
fit = sFit.getFit(self.fitID)
|
||||
self.savedTypeIDs = {m.itemID for m in fit.modules if not m.isEmpty}
|
||||
cmd = CalcRemoveLocalModulesCommand(fitID=self.fitID, positions=self.positions)
|
||||
success = self.internalHistory.submit(cmd)
|
||||
for container in (cmd.savedSubInfos, cmd.savedModInfos):
|
||||
for position in sorted(container, reverse=True):
|
||||
modInfo = container[position]
|
||||
sMkt.storeRecentlyUsed(modInfo.itemID)
|
||||
eos.db.flush()
|
||||
sFit.recalc(self.fitID)
|
||||
self.savedRemovedDummies = sFit.fill(self.fitID)
|
||||
|
||||
@@ -6,6 +6,7 @@ from gui import globalEvents as GE
|
||||
from gui.fitCommands.calc.module.localReplace import CalcReplaceLocalModuleCommand
|
||||
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo, restoreRemovedDummies
|
||||
from service.fit import Fit
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class GuiReplaceLocalModuleCommand(wx.Command):
|
||||
@@ -27,6 +28,7 @@ class GuiReplaceLocalModuleCommand(wx.Command):
|
||||
newModInfo=ModuleInfo(itemID=self.itemID))
|
||||
results.append(self.internalHistory.submit(cmd))
|
||||
success = any(results)
|
||||
Market.getInstance().storeRecentlyUsed(self.itemID)
|
||||
eos.db.flush()
|
||||
sFit = Fit.getInstance()
|
||||
sFit.recalc(self.fitID)
|
||||
|
||||
@@ -821,10 +821,22 @@ class Market:
|
||||
items.append(item)
|
||||
return items
|
||||
|
||||
def getRecentlyUsed(self):
|
||||
recentlyUsedItems = []
|
||||
for itemID in self.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"]:
|
||||
item = self.getItem(itemID)
|
||||
if item is None:
|
||||
self.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"].remove(itemID)
|
||||
recentlyUsedItems.append(item)
|
||||
return recentlyUsedItems
|
||||
|
||||
def storeRecentlyUsed(self, itemID):
|
||||
recentlyUsedModules = self.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"]
|
||||
while itemID in recentlyUsedModules:
|
||||
recentlyUsedModules.remove(itemID)
|
||||
item = self.getItem(itemID)
|
||||
if item.isAbyssal:
|
||||
return
|
||||
while len(recentlyUsedModules) >= 20:
|
||||
recentlyUsedModules.pop(-1)
|
||||
recentlyUsedModules.insert(0, itemID)
|
||||
|
||||
Reference in New Issue
Block a user