diff --git a/gui/builtinMarketBrowser/events.py b/gui/builtinMarketBrowser/events.py index 30dfd1e4d..f99c888c7 100644 --- a/gui/builtinMarketBrowser/events.py +++ b/gui/builtinMarketBrowser/events.py @@ -5,3 +5,5 @@ import wx.lib.newevent ItemSelected, ITEM_SELECTED = wx.lib.newevent.NewEvent() RECENTLY_USED_MODULES = -2 + +CHARGES_FOR_FIT = -3 diff --git a/gui/builtinMarketBrowser/itemView.py b/gui/builtinMarketBrowser/itemView.py index a86bfdfbc..101417ca2 100644 --- a/gui/builtinMarketBrowser/itemView.py +++ b/gui/builtinMarketBrowser/itemView.py @@ -4,13 +4,14 @@ from logbook import Logger import gui.builtinMarketBrowser.pfSearchBox as SBox from config import slotColourMap, slotColourMapDark from eos.saveddata.module import Module -from gui.builtinMarketBrowser.events import ItemSelected, RECENTLY_USED_MODULES +from gui.builtinMarketBrowser.events import ItemSelected, RECENTLY_USED_MODULES, CHARGES_FOR_FIT from gui.contextMenu import ContextMenu from gui.display import Display from gui.utils.staticHelpers import DragDropHelper from gui.utils.dark import isDark from service.fit import Fit from service.market import Market +from service.ammo import Ammo pyfalog = Logger(__name__) @@ -91,7 +92,19 @@ class ItemView(Display): if sel.IsOk(): # Get data field of the selected item (which is a marketGroup ID if anything was selected) seldata = self.marketView.GetItemData(sel) - if seldata is not None and seldata != RECENTLY_USED_MODULES: + 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) + 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 if self.marketView.ItemHasChildren(sel) is False: @@ -103,11 +116,7 @@ class ItemView(Display): else: items = set() 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.sMkt.getRecentlyUsed() - else: - items = set() + items = set() # Fill store self.updateItemStore(items) diff --git a/gui/builtinMarketBrowser/marketTree.py b/gui/builtinMarketBrowser/marketTree.py index c20e8c962..3719b618b 100644 --- a/gui/builtinMarketBrowser/marketTree.py +++ b/gui/builtinMarketBrowser/marketTree.py @@ -1,7 +1,7 @@ import wx from gui.cachingImageList import CachingImageList -from gui.builtinMarketBrowser.events import RECENTLY_USED_MODULES +from gui.builtinMarketBrowser.events import RECENTLY_USED_MODULES, CHARGES_FOR_FIT from logbook import Logger @@ -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) + self.AppendItem(self.root, "Charges For Active Fit", rumIconId, data=CHARGES_FOR_FIT) # Bind our lookup method to when the tree gets expanded self.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.expandLookup)