Implement logic which temporarily enables/disables meta groups for search
This commit is contained in:
@@ -142,14 +142,14 @@ class ItemView(Display):
|
||||
# Enable leftmost available
|
||||
if setting == 1:
|
||||
for btn in self.marketBrowser.metaButtons:
|
||||
if btn.IsEnabled() and not btn.GetValue():
|
||||
if btn.IsEnabled() and not btn.userSelected:
|
||||
btn.setUserSelection(True)
|
||||
break
|
||||
filteredItems = self.filterItems()
|
||||
# Enable all
|
||||
elif setting == 2:
|
||||
for btn in self.marketBrowser.metaButtons:
|
||||
if btn.IsEnabled() and not btn.GetValue():
|
||||
if btn.IsEnabled() and not btn.userSelected:
|
||||
btn.setUserSelection(True)
|
||||
filteredItems = self.filterItems()
|
||||
self.filteredStore = filteredItems
|
||||
@@ -159,7 +159,7 @@ class ItemView(Display):
|
||||
sMkt = self.sMkt
|
||||
selectedMetas = set()
|
||||
for btn in self.marketBrowser.metaButtons:
|
||||
if btn.GetValue():
|
||||
if btn.userSelected:
|
||||
selectedMetas.update(sMkt.META_MAP[btn.metaName])
|
||||
filteredItems = sMkt.filterItemsByMeta(self.unfilteredStore, selectedMetas)
|
||||
return filteredItems
|
||||
|
||||
@@ -79,7 +79,7 @@ class PFMarketPref(PreferenceView):
|
||||
self.intDelay.SetValue(self.sFit.serviceFittingOptions["marketSearchDelay"])
|
||||
self.intDelay.Bind(wx.lib.intctrl.EVT_INT, self.onMarketDelayChange)
|
||||
|
||||
self.rbMarketSearch = wx.RadioBox(panel, -1, "Market Search", wx.DefaultPosition, wx.DefaultSize, ["No changes to meta buttons", "Temporarily enable all meta buttons"], 1, wx.RA_SPECIFY_COLS)
|
||||
self.rbMarketSearch = wx.RadioBox(panel, -1, "Market Search & Recent Items", wx.DefaultPosition, wx.DefaultSize, ["No changes to meta buttons", "Enable all meta buttons for a duration of search / recents", "Enable all meta buttons"], 1, wx.RA_SPECIFY_COLS)
|
||||
self.rbMarketSearch.SetSelection(self.priceSettings.get('marketMGSearchMode'))
|
||||
mainSizer.Add(self.rbMarketSearch, 0, wx.RIGHT | wx.TOP | wx.EXPAND, 10)
|
||||
self.rbMarketSearch.Bind(wx.EVT_RADIOBOX, self.OnMarketSearchChange)
|
||||
|
||||
@@ -52,8 +52,8 @@ class MarketBrowser(wx.Panel):
|
||||
# Grab service stuff and create child objects
|
||||
self.sMkt = Market.getInstance()
|
||||
self.settings = MarketPriceSettings.getInstance()
|
||||
# Here we accept 3 modes: normal, search and recent
|
||||
self.mode = 'normal'
|
||||
self.__mode = 'normal'
|
||||
self.__normalBtnMap = {}
|
||||
self.marketView = MarketTree(self.splitter, self)
|
||||
self.itemView = ItemView(self.splitter, self)
|
||||
|
||||
@@ -128,3 +128,32 @@ class MarketBrowser(wx.Panel):
|
||||
btn.setUserSelection(True)
|
||||
self.itemView.selectionMade()
|
||||
|
||||
@property
|
||||
def mode(self):
|
||||
return self.__mode
|
||||
|
||||
@mode.setter
|
||||
def mode(self, newMode):
|
||||
oldMode = self.__mode
|
||||
if newMode == oldMode:
|
||||
return
|
||||
# Store meta button states when switching from normal
|
||||
if oldMode == 'normal':
|
||||
self.__normalBtnMap.clear()
|
||||
for btn in self.metaButtons:
|
||||
self.__normalBtnMap[btn] = btn.userSelected
|
||||
setting = self.settings.get('marketMGSearchMode')
|
||||
# We turn on all meta buttons for the duration of search/recents
|
||||
if setting == 1:
|
||||
if newMode in ('search', 'recent'):
|
||||
for btn in self.metaButtons:
|
||||
btn.setUserSelection(True)
|
||||
if newMode == 'normal':
|
||||
for btn, state in self.__normalBtnMap.items():
|
||||
btn.setUserSelection(state)
|
||||
# We turn on all meta buttons permanently
|
||||
if setting == 2:
|
||||
for btn in self.metaButtons:
|
||||
btn.setUserSelection(True)
|
||||
self.__mode = newMode
|
||||
|
||||
|
||||
Reference in New Issue
Block a user