Implement market jump meta category logic

This commit is contained in:
DarkPhoenix
2019-04-03 15:34:26 +03:00
parent 0a705d1d7f
commit 292d95f6f8
7 changed files with 39 additions and 12 deletions

View File

@@ -96,4 +96,3 @@ class MarketTree(wx.TreeCtrl):
self.Expand(item)
self.SelectItem(item)
self.marketBrowser.itemView.selectionMade()

View File

@@ -7,7 +7,7 @@ from gui.bitmap_loader import BitmapLoader
import gui.mainFrame
import gui.globalEvents as GE
from service.settings import PriceMenuSettings
from service.settings import MarketPriceSettings
from service.fit import Fit
from service.price import Price
@@ -16,7 +16,7 @@ class PFMarketPref(PreferenceView):
title = "Market & Prices"
def __init__(self):
self.priceSettings = PriceMenuSettings.getInstance()
self.priceSettings = MarketPriceSettings.getInstance()
def populatePanel(self, panel):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()

View File

@@ -23,7 +23,7 @@ from gui.statsView import StatsView
from gui.bitmap_loader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
from service.price import Fit, Price
from service.settings import PriceMenuSettings
from service.settings import MarketPriceSettings
class PriceViewFull(StatsView):
@@ -32,7 +32,7 @@ class PriceViewFull(StatsView):
def __init__(self, parent):
StatsView.__init__(self)
self.parent = parent
self.settings = PriceMenuSettings.getInstance()
self.settings = MarketPriceSettings.getInstance()
def getHeaderText(self, fit):
return "Price"

View File

@@ -23,7 +23,7 @@ from gui.statsView import StatsView
from gui.bitmap_loader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
from service.price import Fit, Price
from service.settings import PriceMenuSettings
from service.settings import MarketPriceSettings
class PriceViewMinimal(StatsView):
@@ -32,7 +32,7 @@ class PriceViewMinimal(StatsView):
def __init__(self, parent):
StatsView.__init__(self)
self.parent = parent
self.settings = PriceMenuSettings.getInstance()
self.settings = MarketPriceSettings.getInstance()
def getHeaderText(self, fit):
return "Price"

View File

@@ -20,12 +20,12 @@
# noinspection PyPackageRequirements
import wx
from service.market import Market
from gui.builtinMarketBrowser.searchBox import SearchBox
from gui.builtinMarketBrowser.itemView import ItemView
from gui.builtinMarketBrowser.metaButton import MetaButton
from gui.builtinMarketBrowser.marketTree import MarketTree
from service.market import Market
from service.settings import MarketPriceSettings
from logbook import Logger
@@ -33,8 +33,10 @@ pyfalog = Logger(__name__)
class MarketBrowser(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
pyfalog.debug("Initialize marketBrowser")
vbox = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(vbox)
@@ -46,8 +48,9 @@ class MarketBrowser(wx.Panel):
self.splitter = wx.SplitterWindow(self, style=wx.SP_LIVE_UPDATE)
vbox.Add(self.splitter, 1, wx.EXPAND)
# Grab market service instance and create child objects
# Grab service stuff and create child objects
self.sMkt = Market.getInstance()
self.settings = MarketPriceSettings.getInstance()
self.searchMode = False
self.marketView = MarketTree(self.splitter, self)
self.itemView = ItemView(self.splitter, self)
@@ -98,3 +101,27 @@ class MarketBrowser(wx.Panel):
def jump(self, item):
self.marketView.jump(item)
setting = self.settings.get('marketMGJumpMode')
itemMetaCat = self.sMkt.META_MAP_REVERSE[self.sMkt.getMetaGroupIdByItem(item)]
# Enable item meta category
if setting == 1:
btn = getattr(self, itemMetaCat)
if not btn.GetValue():
btn.setUserSelection(True)
# Enable item meta category, disable others
elif setting == 2:
tgtBtn = getattr(self, itemMetaCat)
if not tgtBtn.GetValue():
tgtBtn.setUserSelection(True)
for btn in self.metaButtons:
if btn is tgtBtn:
continue
if btn.GetValue:
btn.setUserSelection(False)
# Enable all meta categories
elif setting == 3:
for btn in self.metaButtons:
if not btn.GetValue():
btn.setUserSelection(True)
self.itemView.selectionMade()

View File

@@ -316,6 +316,7 @@ class Market(object):
("faction", frozenset((4, 3))),
("complex", frozenset((6,))),
("officer", frozenset((5,)))])
self.META_MAP_REVERSE = {sv: k for k, v in self.META_MAP.items() for sv in v}
self.SEARCH_CATEGORIES = (
"Drone",
"Module",

View File

@@ -447,13 +447,13 @@ class StatViewSettings(object):
self.serviceStatViewDefaultSettings[type] = value
class PriceMenuSettings(object):
class MarketPriceSettings(object):
_instance = None
@classmethod
def getInstance(cls):
if cls._instance is None:
cls._instance = PriceMenuSettings()
cls._instance = MarketPriceSettings()
return cls._instance