diff --git a/gui/builtinMarketBrowser/itemView.py b/gui/builtinMarketBrowser/itemView.py index a0f7aa06d..b6a4b4085 100644 --- a/gui/builtinMarketBrowser/itemView.py +++ b/gui/builtinMarketBrowser/itemView.py @@ -34,6 +34,7 @@ class ItemView(Display): self.filteredStore = set() self.sMkt = marketBrowser.sMkt self.sFit = Fit.getInstance() + self.sAmmo = Ammo.getInstance() self.marketBrowser = marketBrowser self.marketView = marketBrowser.marketView @@ -53,6 +54,7 @@ class ItemView(Display): self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.itemActivated) self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag) + # the "charges for active fitting" needs to listen to fitting changes self.mainFrame.Bind(GE.FIT_CHANGED, self.selectedFittingChanged) self.active = [] @@ -134,22 +136,28 @@ class ItemView(Display): if fitId is None: return set() - sAmmo = Ammo.getInstance() fit = self.sFit.getFit(fitId) + + # use a set so we only add one entry for each charge items = set() for mod in fit.modules: - charges = sAmmo.getModuleFlatAmmo(mod) + charges = self.sAmmo.getModuleFlatAmmo(mod) for charge in charges: items.add(charge) return items def selectedFittingChanged(self, event): + # skip the event so the other handlers also get called event.Skip() activeFitID = self.mainFrame.getActiveFit() + + # if it was not the active fitting that was changed, do not do anything if activeFitID is not None and activeFitID not in event.fitIDs: return items = self.getChargesForActiveFit() + + # update the UI self.updateItemStore(items) self.filterItemStore() diff --git a/gui/builtinMarketBrowser/marketTree.py b/gui/builtinMarketBrowser/marketTree.py index b130ac1f9..9c6fb7375 100644 --- a/gui/builtinMarketBrowser/marketTree.py +++ b/gui/builtinMarketBrowser/marketTree.py @@ -35,6 +35,7 @@ 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) + # Add charges for active fitting node cffIconId = self.addImage("damagePattern_small", "gui") self.AppendItem(self.root, _t("Charges For Active Fit"), cffIconId, data=CHARGES_FOR_FIT)