diff --git a/gui/builtinContextMenus/__init__.py b/gui/builtinContextMenus/__init__.py index d0bbe4881..c2b1386a3 100644 --- a/gui/builtinContextMenus/__init__.py +++ b/gui/builtinContextMenus/__init__.py @@ -1 +1 @@ -__all__ = ["moduleAmmoPicker", "itemStats", "damagePattern"] +__all__ = ["moduleAmmoPicker", "itemStats", "damagePattern", "marketJump"] diff --git a/gui/builtinContextMenus/marketJump.py b/gui/builtinContextMenus/marketJump.py new file mode 100644 index 000000000..889107475 --- /dev/null +++ b/gui/builtinContextMenus/marketJump.py @@ -0,0 +1,19 @@ +from gui.contextMenu import ContextMenu +from gui.itemStats import ItemStatsDialog +import gui.mainFrame +import service + +class MarketJump(ContextMenu): + def __init__(self): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + + def display(self, context, selection): + return context in ("module", "ammo", "itemSearch") + + def getText(self, context, selection): + return "Jump to %s Market Group" % (context.capitalize() if context != "itemSearch" else "Item") + + def activate(self, context, selection, i): + self.mainFrame.marketBrowser.jump(selection[0]) + +MarketJump.register() diff --git a/gui/marketBrowser.py b/gui/marketBrowser.py index 1cf31b04a..3f77d8d80 100644 --- a/gui/marketBrowser.py +++ b/gui/marketBrowser.py @@ -129,6 +129,25 @@ class MarketBrowser(wx.Panel): self.mainFrame = gui.mainFrame.MainFrame.getInstance() + def jump(self, item): + mg = item.marketGroup + jumpList = [] + while mg is not None: + jumpList.append(mg.ID) + mg = mg.parent + + item = self.marketRoot + for i in range(len(jumpList) -1, -1, -1): + target = jumpList[i] + child, cookie = self.marketView.GetFirstChild(item) + while self.marketView.GetItemPyData(child) != target: + child, cookie = self.marketView.GetNextChild(child, cookie) + + item = child + self.marketView.Expand(item) + + self.marketView.SelectItem(item) + def addMarketViewImage(self, iconFile): if iconFile is None: return -1