overviewMenuUtil.py (5114B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\overview\overviewMenuUtil.py 2 import evetypes 3 from carbonui.control.contextMenu.menuData import MenuData 4 from carbonui.control.contextMenu.menuEntryData import MenuEntryData, MenuEntryDataRadioButton 5 from clientsettings.setting import SessionSettingBool 6 from carbonui.uicore import uicore 7 from eve.client.script.parklife import bracketConst 8 from eve.client.script.parklife.bracketSettings import bracket_display_override_setting 9 from eve.client.script.ui.inflight.overview import overviewConst 10 from eve.client.script.ui.inflight.overviewSettings.columnConfigurationWnd import ColumnConfigurationWindow 11 from localization import GetByLabel 12 from menu import MenuLabel 13 from overviewPresets import overviewSettingsConst 14 15 def GetToggleEntry(groupID): 16 presetSvc = sm.GetService('overviewPresetSvc') 17 tabIDs = _GetActiveOverviewTabIDs() 18 if len(tabIDs) <= 1: 19 if presetSvc.IsGroupIDShown(groupID): 20 return GetRemoveGroupFromOverviewEntry(groupID) 21 else: 22 return GetAddGroupToOverviewEntry(groupID) 23 else: 24 subMenuData = [ _GetToggleSubEntry(tabID, groupID) for tabID in tabIDs ] 25 return MenuEntryData(MenuLabel('UI/Overview/ToggleOverviewVisibilty', {'groupName': evetypes.GetGroupNameByGroup(groupID)}), subMenuData=subMenuData) 26 27 28 def _GetToggleSubEntry(tabID, groupID): 29 presetSvc = sm.GetService('overviewPresetSvc') 30 presetName = presetSvc.GetTabSettings(tabID)[overviewSettingsConst.SETTING_OVERVIEW_PRESET_NAME] 31 tabName = presetSvc.GetTabName(tabID) 32 if presetSvc.IsGroupIDShown(groupID, presetName): 33 label = MenuLabel('UI/Overview/RemoveGroupToTab', {'tabName': tabName}) 34 return MenuEntryData(label, lambda : sm.GetService('overviewPresetSvc').RemoveGroupIDFromPreset(groupID, presetName)) 35 else: 36 label = MenuLabel('UI/Overview/AddGroupToTab', {'tabName': tabName}) 37 return MenuEntryData(label, lambda : sm.GetService('overviewPresetSvc').AddGroupIDToPreset(groupID, presetName)) 38 39 40 def GetAddGroupToOverviewEntry(groupID): 41 label = MenuLabel('UI/Overview/AddGroupToOverview', {'groupName': evetypes.GetGroupNameByGroup(groupID)}) 42 return MenuEntryData(label, lambda : sm.GetService('overviewPresetSvc').AddGroupIDToPreset(groupID)) 43 44 45 def GetRemoveGroupFromOverviewEntry(groupID): 46 label = MenuLabel('UI/Overview/RemoveGroupFromOverview', {'groupName': evetypes.GetGroupNameByGroup(groupID)}) 47 return MenuEntryData(label, lambda : sm.GetService('overviewPresetSvc').RemoveGroupIDFromPreset(groupID)) 48 49 50 def _GetEntry(groupID, label, func): 51 presetSvc = sm.GetService('overviewPresetSvc') 52 tabIDs = _GetActiveOverviewTabIDs() 53 if len(tabIDs) > 1: 54 subMenuData = MenuData() 55 for tabID in tabIDs: 56 presetName = presetSvc.GetTabSettings(tabID)[overviewSettingsConst.SETTING_OVERVIEW_PRESET_NAME] 57 subMenuData.AddEntry(presetSvc.GetTabName(tabID), lambda : func(groupID, presetName)) 58 59 return MenuEntryData(label, subMenuData=subMenuData) 60 return MenuEntryData(label, lambda : func(groupID)) 61 62 63 def _GetActiveOverviewTabIDs(): 64 from eve.client.script.ui.inflight.overview.overviewWindow import OverviewWindow 65 windows = uicore.registry.GetWindowsByClass(OverviewWindow) 66 return [ window.GetSelectedTabID() for window in windows if window.GetSelectedTabID() is not None ] 67 68 69 def GetBracketVisibilitySubMenu(): 70 return [MenuEntryDataRadioButton(MenuLabel('UI/Overview/UseSelectedTabBracketPreset'), bracketConst.SHOW_DEFAULT, bracket_display_override_setting), MenuEntryDataRadioButton(MenuLabel('UI/Overview/ShowAll'), bracketConst.SHOW_ALL, bracket_display_override_setting), MenuEntryDataRadioButton(MenuLabel('UI/Overview/HideAll'), bracketConst.SHOW_NONE, bracket_display_override_setting)] 71 72 73 def GetColumnVisibilitySubMenu(tabID): 74 menuData = MenuData() 75 presetSvc = sm.GetService('overviewPresetSvc') 76 visibleColumnIDs = presetSvc.GetTabVisibleColumnIDs(tabID) 77 for columnID, label in overviewConst.NAME_BY_COLUMN.iteritems(): 78 columnSetting = ColumnSetting(columnID in visibleColumnIDs, tabID, columnID) 79 columnSetting.on_change.connect(_OnColumnCheckbox) 80 hint = overviewConst.COLUMN_DESCRIPTIONS.get(columnID, None) 81 if hint: 82 hint = GetByLabel(hint) 83 menuData.AddCheckbox(GetByLabel(label), columnSetting, hint=hint) 84 85 menuData.AddSeparator() 86 menuData.AddEntry(GetByLabel('UI/Overview/ChangeOrder'), lambda : ColumnConfigurationWindow.Open(tabID=tabID)) 87 return menuData 88 89 90 def _OnColumnCheckbox(value, tabID, columnID): 91 presetSvc = sm.GetService('overviewPresetSvc') 92 return presetSvc.ToggleTabColumnVisibility(tabID, columnID) 93 94 95 class ColumnSetting(SessionSettingBool): 96 97 def __init__(self, default_value, tabID, columnID): 98 super(ColumnSetting, self).__init__(default_value) 99 self.tabID = tabID 100 self.columnID = columnID 101 102 def _trigger_on_change(self, value): 103 self.on_change(value, self.tabID, self.columnID)