overviewSettingsWnd.py (6635B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\overviewSettings\overviewSettingsWnd.py 2 import localization 3 import overviewPresets.overviewSettingsConst as oConst 4 from carbonui import uiconst 5 from carbonui.control.window import Window 6 from carbonui.primitives.container import Container 7 from carbonui.util.various_unsorted import SortListOfTuples 8 from eve.client.script.ui.control.draggableShareContainer import DraggableShareContainer 9 from carbonui.control.tabGroup import TabGroup 10 from eve.client.script.ui.inflight.overviewSettings.appearancePanel import AppearancePanel 11 from eve.client.script.ui.inflight.overviewSettings.columnsPanel import ColumnsPanel 12 from eve.client.script.ui.inflight.overviewSettings.historyPanel import HistoryPanel 13 from eve.client.script.ui.inflight.overviewSettings.miscPanel import MiscPanel 14 from eve.client.script.ui.inflight.overviewSettings.shipsPanel import ShipsPanel 15 from eve.client.script.ui.inflight.overviewSettings.tabPresetsPanel import TabPresetPanel 16 from eve.client.script.ui.inflight.overviewSettings.tabsPanel import TabsPanel 17 from localization import GetByLabel 18 from menu import MenuLabel 19 20 class OverviewSettingsWnd(Window): 21 __guid__ = 'form.OverviewSettings' 22 __notifyevents__ = ['OnOverviewPresetLoaded', 'OnOverviewTabsReconstructed', 'OnReloadingOverviewProfile'] 23 default_windowID = 'overviewsettings' 24 default_captionLabelPath = 'UI/Overview/OverviewSettings' 25 default_height = 600 26 default_width = 520 27 default_minSize = (520, 500) 28 default_scope = uiconst.SCOPE_INFLIGHT 29 30 def ApplyAttributes(self, attributes): 31 super(OverviewSettingsWnd, self).ApplyAttributes(attributes) 32 self.overviewPresetSvc = sm.GetService('overviewPresetSvc') 33 presetName = attributes.get('presetName', None) 34 self.topParent = Container(name='topParent', parent=self.sr.maincontainer, align=uiconst.TOTOP, height=52, clipChildren=True, idx=self.sr.main.GetOrder()) 35 self.AddDraggableCont() 36 self.settingCheckboxes = [] 37 self.tabsPanel = TabsPanel(parent=self.sr.main) 38 self.appearancePanel = AppearancePanel(parent=self.sr.main) 39 self.shipsPanel = ShipsPanel(parent=self.sr.main) 40 self.miscPanel = MiscPanel(parent=self.sr.main) 41 self.tabPresetPanel = TabPresetPanel(parent=self.sr.main) 42 self.columnsPanel = ColumnsPanel(parent=self.sr.main) 43 self.historyPanel = HistoryPanel(parent=self.sr.main) 44 self.Maximize() 45 self.state = uiconst.UI_NORMAL 46 settingsTabs = [[GetByLabel('UI/Overview/Tabs'), 47 self.tabsPanel, 48 self, 49 oConst.TAB_TABS, 50 None], 51 [GetByLabel('UI/Overview/Filters'), 52 self.tabPresetPanel, 53 self, 54 oConst.TAB_FILTERS, 55 None], 56 [GetByLabel('UI/Generic/Appearance'), 57 self.appearancePanel, 58 self, 59 oConst.TAB_APPEARANCE, 60 None], 61 [GetByLabel('UI/Common/ItemTypes/Ships'), 62 self.shipsPanel, 63 self, 64 oConst.TAB_SHIPS, 65 None], 66 [GetByLabel('UI/Generic/Misc'), 67 self.miscPanel, 68 self, 69 oConst.TAB_MISC, 70 None], 71 [GetByLabel('UI/Overview/ProfileHistory'), 72 self.historyPanel, 73 self, 74 oConst.TAB_HISTORY, 75 None]] 76 self.tabGroup = TabGroup(name='overviewsettingsTab', height=18, align=uiconst.TOTOP, parent=self.sr.main, idx=0, tabs=settingsTabs, groupID='overviewsettingsTab', UIIDPrefix='overviewSettingsTab', autoSelect=False) 77 if presetName: 78 self.EditPreset(presetName) 79 else: 80 self.tabGroup.AutoSelect() 81 82 def EditPreset(self, presetName): 83 self.tabGroup.SelectByID(oConst.TAB_FILTERS) 84 self.tabPresetPanel.LoadPreset(presetName) 85 86 def AddDraggableCont(self): 87 currentText = self.overviewPresetSvc.GetOverviewName() 88 defaultText = localization.GetByLabel('UI/Overview/DefaultOverviewName', charID=session.charid) 89 configName = 'overviewProfileName' 90 shareContainer = DraggableShareContainer(parent=self.topParent, currentText=currentText, defaultText=defaultText, configName=configName, getDragDataFunc=self.overviewPresetSvc.GetShareData, hintText=localization.GetByLabel('UI/Overview/SharableOverviewIconHint')) 91 self.overviewNameEdit = shareContainer.sharedNameLabel 92 self.topParent.height = self.overviewNameEdit.height + 10 93 94 def RefreshOverviewName(self): 95 currentText = self.overviewPresetSvc.GetOverviewName() 96 self.overviewNameEdit.SetValue(currentText) 97 self.overviewNameEdit.OnEditFieldChanged() 98 99 def OnOverviewPresetLoaded(self, label, preset): 100 self.tabsPanel.RefreshOverviewTab() 101 102 def ExportSettings(self, *args): 103 pass 104 105 def GetMenuMoreOptions(self): 106 menuData = super(OverviewSettingsWnd, self).GetMenuMoreOptions() 107 menuData += self.GetPresetsMenu() 108 return menuData 109 110 def GetPresetsMenu(self): 111 p = self.overviewPresetSvc.GetAllPresets().keys() 112 p.sort() 113 for name in self.overviewPresetSvc.GetDefaultOverviewPresetNames(): 114 if name in p: 115 p.remove(name) 116 117 m = [] 118 m += [None, (MenuLabel('UI/Commands/ExportOverviewSettings'), sm.GetService('tactical').ExportOverviewSettings), (MenuLabel('UI/Overview/ImportOverviewSettings'), sm.GetService('tactical').ImportOverviewSettings)] 119 dm = [] 120 for label in p: 121 if self.overviewPresetSvc.IsUnsavedPreset(label): 122 continue 123 dm.append((label.lower(), (label, self.overviewPresetSvc.DeletePreset, (label,)))) 124 125 if dm: 126 m.append(None) 127 dm = SortListOfTuples(dm) 128 m.append((MenuLabel('UI/Common/Delete'), dm)) 129 return m 130 131 def Load(self, key): 132 if key == oConst.TAB_COLUMNS: 133 self.columnsPanel.LoadColumns() 134 elif key == oConst.TAB_APPEARANCE: 135 self.appearancePanel.AutoSelectTab() 136 elif key == oConst.TAB_SHIPS: 137 self.shipsPanel.LoadShips() 138 elif key in (oConst.TAB_MISC, oConst.TAB_TABS): 139 pass 140 elif key == oConst.TAB_HISTORY: 141 self.historyPanel.LoadHistory() 142 143 def OnOverviewTabsReconstructed(self): 144 sm.GetService('bracket').UpdateLabels() 145 self.tabsPanel.RefreshOverviewTab() 146 147 def OnReloadingOverviewProfile(self): 148 self.RefreshOverviewName() 149 self.historyPanel.LoadHistory() 150 self.tabGroup.AutoSelect()