From 6aeb47f1312ad0a0d03acbea66e488e0a4b98e4e Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 9 Dec 2011 19:36:19 +0200 Subject: [PATCH] Implemented recently used modules category in market browser --- gui/marketBrowser.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/gui/marketBrowser.py b/gui/marketBrowser.py index 73b948689..85946c8f9 100644 --- a/gui/marketBrowser.py +++ b/gui/marketBrowser.py @@ -28,6 +28,8 @@ from gui import bitmapLoader ItemSelected, ITEM_SELECTED = wx.lib.newevent.NewEvent() +RECENTLY_USED_MODULES = -2 + class MarketBrowser(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent) @@ -128,15 +130,19 @@ class MarketTree(wx.TreeCtrl): # All market groups which were never expanded are dummies, here we assume # that all root market groups are expandable self.AppendItem(childId, "dummy") - self.SortChildren(self.root) + + # Add recently used modules node + rumIconId = self.addImage("market_small", "icons") + self.AppendItem(self.root, "Recently Used Modules", rumIconId, data = wx.TreeItemData(RECENTLY_USED_MODULES)) + # Bind our lookup method to when the tree gets expanded self.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.expandLookup) - def addImage(self, iconFile): + def addImage(self, iconFile, location = "pack"): if iconFile is None: return -1 - return self.imageList.GetImageIndex(iconFile, "pack") + return self.imageList.GetImageIndex(iconFile, location) def expandLookup(self, event): """Process market tree expands""" @@ -201,6 +207,7 @@ class ItemView(d.Display): self.unfilteredStore = set() self.filteredStore = set() + self.recentlyUsedModules = set() self.sMarket = marketBrowser.sMarket self.searchMode = marketBrowser.searchMode @@ -225,6 +232,9 @@ class ItemView(d.Display): sel = self.GetFirstSelected() if sel == -1: return + + if self.mainFrame.getActiveFit(): + self.recentlyUsedModules.add(self.sMarket.getItem(self.active[sel].ID)) wx.PostEvent(self.mainFrame, ItemSelected(itemID=self.active[sel].ID)) def selectionMade(self, event=None, forcedMetaSelect=None): @@ -234,7 +244,7 @@ class ItemView(d.Display): if sel.IsOk(): # Get data field of the selected item (which is a marketGroup ID if anything was selected) seldata = self.marketView.GetPyData(sel) - if seldata is not None: + if seldata is not None and seldata != RECENTLY_USED_MODULES: # 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: @@ -246,8 +256,11 @@ class ItemView(d.Display): else: items = set() else: - # If method was called but selection wasn't actually made - items = set() + # 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 + else: + items = set() # Fill store self.updateItemStore(items) # Set toggle buttons @@ -324,6 +337,7 @@ class ItemView(d.Display): self.filterItemStore() def populateSearch(self, items): + print items # If we're no longer searching, dump the results if self.marketBrowser.searchMode is False: return