Implemented recently used modules category in market browser

This commit is contained in:
HomeWorld
2011-12-09 19:36:19 +02:00
parent ee7ad74432
commit 6aeb47f131

View File

@@ -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