diff --git a/gui/builtinMarketBrowser/itemView.py b/gui/builtinMarketBrowser/itemView.py index 0cb73683b..ff2e2dcf3 100644 --- a/gui/builtinMarketBrowser/itemView.py +++ b/gui/builtinMarketBrowser/itemView.py @@ -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 diff --git a/gui/builtinPreferenceViews/pyfaMarketPreferences.py b/gui/builtinPreferenceViews/pyfaMarketPreferences.py index b3714c8e6..069ecfd12 100644 --- a/gui/builtinPreferenceViews/pyfaMarketPreferences.py +++ b/gui/builtinPreferenceViews/pyfaMarketPreferences.py @@ -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) diff --git a/gui/marketBrowser.py b/gui/marketBrowser.py index 447234a93..1acb8a144 100644 --- a/gui/marketBrowser.py +++ b/gui/marketBrowser.py @@ -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 +