Implement logic which temporarily enables/disables meta groups for search

This commit is contained in:
DarkPhoenix
2019-04-03 18:16:10 +03:00
parent 5dae614fa1
commit f45ad5ceab
3 changed files with 35 additions and 6 deletions

View File

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

View File

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

View File

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