update on fit change, new icon

This commit is contained in:
Karl Werner
2024-07-06 15:52:18 +02:00
parent 735827a25b
commit f38c61da51
2 changed files with 32 additions and 10 deletions

View File

@@ -2,6 +2,7 @@ import wx
from logbook import Logger
import gui.builtinMarketBrowser.pfSearchBox as SBox
import gui.globalEvents as GE
from config import slotColourMap, slotColourMapDark
from eos.saveddata.module import Module
from gui.builtinMarketBrowser.events import ItemSelected, RECENTLY_USED_MODULES, CHARGES_FOR_FIT
@@ -52,6 +53,8 @@ class ItemView(Display):
self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.itemActivated)
self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag)
self.mainFrame.Bind(GE.FIT_CHANGED, self.selectedFittingChanged)
self.active = []
def delaySearch(self, evt):
@@ -95,15 +98,7 @@ class ItemView(Display):
if seldata == RECENTLY_USED_MODULES:
items = self.sMkt.getRecentlyUsed()
elif seldata == CHARGES_FOR_FIT:
fitId = self.mainFrame.getActiveFit()
items = set()
if fitId is not None:
fit = self.sFit.getFit(fitId)
items = set()
for mod in fit.modules:
charges = Ammo.getInstance().getModuleFlatAmmo(mod)
for charge in charges:
items.add(charge)
items = self.getChargesForActiveFit()
elif seldata is not None:
# If market group treeview item doesn't have children (other market groups or dummies),
# then it should have items in it and we want to request them
@@ -132,6 +127,32 @@ class ItemView(Display):
btn.setUserSelection(True)
self.filterItemStore()
def getChargesForActiveFit(self):
fitId = self.mainFrame.getActiveFit()
# no active fit => no charges
if fitId is None:
return set()
sAmmo = Ammo.getInstance()
fit = self.sFit.getFit(fitId)
items = set()
for mod in fit.modules:
charges = sAmmo.getModuleFlatAmmo(mod)
for charge in charges:
items.add(charge)
return items
def selectedFittingChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and activeFitID not in event.fitIDs:
return
items = self.getChargesForActiveFit()
self.updateItemStore(items)
self.filterItemStore()
def updateItemStore(self, items):
self.unfilteredStore = items

View File

@@ -35,7 +35,8 @@ class MarketTree(wx.TreeCtrl):
# Add recently used modules node
rumIconId = self.addImage("market_small", "gui")
self.AppendItem(self.root, _t("Recently Used Items"), rumIconId, data=RECENTLY_USED_MODULES)
self.AppendItem(self.root, "Charges For Active Fit", rumIconId, data=CHARGES_FOR_FIT)
cffIconId = self.addImage("damagePattern_small", "gui")
self.AppendItem(self.root, _t("Charges For Active Fit"), cffIconId, data=CHARGES_FOR_FIT)
# Bind our lookup method to when the tree gets expanded
self.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.expandLookup)