diff --git a/gui/builtinMarketBrowser/itemView.py b/gui/builtinMarketBrowser/itemView.py index 984a746bf..b78094cfe 100644 --- a/gui/builtinMarketBrowser/itemView.py +++ b/gui/builtinMarketBrowser/itemView.py @@ -180,7 +180,7 @@ class ItemView(Display): return self.marketBrowser.mode = 'search' - self.sMkt.searchItems(search, self.populateSearch) + self.sMkt.searchItems(search, self.populateSearch, 'market') def clearSearch(self, event=None): # Wipe item store and update everything to accomodate with it diff --git a/gui/builtinViews/implantEditor.py b/gui/builtinViews/implantEditor.py index adb52869f..f1e11e6d5 100644 --- a/gui/builtinViews/implantEditor.py +++ b/gui/builtinViews/implantEditor.py @@ -309,7 +309,7 @@ class ItemView(d.Display): self.clearSearch() return - sMkt.searchItems(search, self.populateSearch, ["Implant"]) + sMkt.searchItems(search, self.populateSearch, 'implants') def populateSearch(self, items): if not self.IsShown(): diff --git a/gui/propertyEditor.py b/gui/propertyEditor.py index 2292c5ac5..7d24b9820 100644 --- a/gui/propertyEditor.py +++ b/gui/propertyEditor.py @@ -206,7 +206,7 @@ class ItemView(d.Display): self.clearSearch() return - sMkt.searchItems(search, self.populateSearch, False) + sMkt.searchItems(search, self.populateSearch, 'everything') def populateSearch(self, items): self.items = list(items) diff --git a/service/market.py b/service/market.py index 6a74869a4..e1d341b66 100644 --- a/service/market.py +++ b/service/market.py @@ -101,15 +101,23 @@ class SearchWorkerThread(threading.Thread): while self.searchRequest is None: cv.wait() - request, callback, filterOn = self.searchRequest + request, callback, filterName = self.searchRequest self.searchRequest = None cv.release() sMkt = Market.getInstance() - if filterOn is True: + if filterName == 'market': # Rely on category data provided by eos as we don't hardcode them much in service - filter_ = or_(types_Category.name.in_(sMkt.SEARCH_CATEGORIES), types_Group.name.in_(sMkt.SEARCH_GROUPS)) - elif filterOn: # filter by selected categories - filter_ = types_Category.name.in_(filterOn) + filter_ = or_( + types_Category.name.in_(sMkt.SEARCH_CATEGORIES), + types_Group.name.in_(sMkt.SEARCH_GROUPS)) + # Used in implant editor + elif filterName == 'implants': + filter_ = types_Category.name == 'Implant' + # Actually not everything, just market search + ships + elif filterName == 'everything': + filter_ = or_( + types_Category.name.in_(sMkt.SEARCH_CATEGORIES + ('Ship',)), + types_Group.name.in_(sMkt.SEARCH_GROUPS)) else: filter_ = None @@ -134,9 +142,9 @@ class SearchWorkerThread(threading.Thread): items.add(item) wx.CallAfter(callback, items) - def scheduleSearch(self, text, callback, filterOn=True): + def scheduleSearch(self, text, callback, filterName=None): self.cv.acquire() - self.searchRequest = (text, callback, filterOn) + self.searchRequest = (text, callback, filterName) self.cv.notify() self.cv.release() @@ -748,9 +756,9 @@ class Market: ships.add(item) return ships - def searchItems(self, name, callback, filterOn=True): + def searchItems(self, name, callback, filterName=None): """Find items according to given text pattern""" - self.searchWorkerThread.scheduleSearch(name, callback, filterOn) + self.searchWorkerThread.scheduleSearch(name, callback, filterName) @staticmethod def getItemsWithOverrides():