Skip to content

Commit

Permalink
Implement logic which temporarily enables/disables meta groups for se…
Browse files Browse the repository at this point in the history
…arch
  • Loading branch information
DarkFenX committed Apr 3, 2019
1 parent 5dae614 commit f45ad5c
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 6 deletions.
6 changes: 3 additions & 3 deletions gui/builtinMarketBrowser/itemView.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,14 +142,14 @@ def filterItemStore(self):
# 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
Expand All @@ -159,7 +159,7 @@ def filterItems(self):
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
Expand Down
2 changes: 1 addition & 1 deletion gui/builtinPreferenceViews/pyfaMarketPreferences.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def populatePanel(self, panel):
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)
Expand Down
33 changes: 31 additions & 2 deletions gui/marketBrowser.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ def __init__(self, parent):
# 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)

Expand Down Expand Up @@ -128,3 +128,32 @@ def jump(self, item):
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

0 comments on commit f45ad5c

Please sign in to comment.