46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
# noinspection PyPackageRequirements
|
|
|
|
import wx
|
|
|
|
import gui.mainFrame
|
|
from graphs.wrapper import BaseWrapper
|
|
from gui.builtinShipBrowser.events import FitSelected
|
|
from gui.contextMenu import ContextMenuSingle
|
|
|
|
_t = wx.GetTranslation
|
|
|
|
|
|
class OpenFitInNewTab(ContextMenuSingle):
|
|
|
|
def __init__(self):
|
|
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
|
|
|
def display(self, callingWindow, srcContext, mainItem):
|
|
if srcContext not in ("projectedFit", "commandFit", "graphFitListMisc", "graphTgtListMisc"):
|
|
return False
|
|
|
|
if mainItem is None:
|
|
return False
|
|
|
|
if isinstance(mainItem, BaseWrapper):
|
|
if not mainItem.isFit:
|
|
return False
|
|
mainItem = mainItem.item
|
|
|
|
currentFitID = self.mainFrame.getActiveFit()
|
|
selectedFitID = mainItem.ID
|
|
if currentFitID == selectedFitID:
|
|
return False
|
|
return True
|
|
|
|
def getText(self, callingWindow, itmContext, mainItem):
|
|
return _t("Open Fit in New Tab")
|
|
|
|
def activate(self, callingWindow, fullContext, mainItem, i):
|
|
if isinstance(mainItem, BaseWrapper):
|
|
mainItem = mainItem.item
|
|
wx.PostEvent(self.mainFrame, FitSelected(fitID=mainItem.ID, startup=2))
|
|
|
|
|
|
OpenFitInNewTab.register()
|