columnsPanel.py (4810B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\overviewSettings\columnsPanel.py 2 from carbonui.primitives.container import Container 3 from carbonui import uiconst 4 from carbonui.button.group import ButtonGroup 5 import overviewPresets.overviewSettingsConst as osConst 6 from eve.client.script.ui.control.entries.util import GetFromClass 7 from eve.client.script.ui.control.eveLabel import EveLabelMedium, EveLabelLarge 8 from eve.client.script.ui.control.eveScroll import Scroll 9 from eve.client.script.ui.inflight.overview import overviewConst, overviewColumns 10 from eve.client.script.ui.inflight.overviewSettings.overviewSettingEntries import GetLastEntryToAdd, ColumnEntry 11 from eve.client.script.ui.inflight.overviewSettings.panelUtils import OnContentDragEnter, OnContentDragExit 12 from eve.common.lib import appConst as const 13 from localization import GetByLabel 14 from utillib import KeyVal 15 16 class ColumnsPanel(Container): 17 default_name = 'columnsPanel' 18 default_state = uiconst.UI_HIDDEN 19 20 def ApplyAttributes(self, attributes): 21 Container.ApplyAttributes(self, attributes) 22 self.tabID = attributes.get('tabID', None) 23 self.cachedScrollPos = 0.0 24 self.presetSvc = sm.GetService('overviewPresetSvc') 25 EveLabelLarge(text=GetByLabel('UI/Overview/HintToggleDisplayStateAndOrder'), parent=self, align=uiconst.TOTOP, state=uiconst.UI_DISABLED, padding=(8, 4, 0, 8)) 26 colbtns = ButtonGroup(parent=self, idx=0) 27 colbtns.AddButton(GetByLabel('UI/Overview/ResetColumns'), self.ResetColumns) 28 self.scroll = Scroll(name='columnsScroll', parent=self, padding=const.defaultPadding) 29 self.scroll.multiSelect = 0 30 self.scroll.sr.content.OnDropData = self.MoveStuff 31 self.scroll.sr.content.OnDragEnter = lambda *args: OnContentDragEnter(self.scroll, *args) 32 self.scroll.sr.content.OnDragExit = lambda *args: OnContentDragExit(self.scroll, *args) 33 34 def ResetColumns(self, *args): 35 self.presetSvc.ResetTabVisibleColumnIDs(self.tabID) 36 self.presetSvc.ResetTabColumnOrder(self.tabID) 37 self.LoadColumns() 38 sm.GetService('stateSvc').NotifyOnStateSetupChange('column reset') 39 40 def LoadColumns(self, selected = None, loadFromTop = False): 41 userSet = overviewColumns.GetColumns(self.tabID) 42 userSetOrder = overviewColumns.GetColumnOrder(self.tabID) 43 missingColumns = [ col for col in overviewConst.ALL_COLUMNS if col not in userSetOrder ] 44 userSetOrder += missingColumns 45 i = 0 46 scrolllist = [] 47 for columnID in userSetOrder: 48 data = KeyVal() 49 data.label = overviewColumns.GetColumnLabel(columnID) 50 data.checked = columnID in userSet 51 data.cfgname = osConst.CONFIG_COLUMNS 52 data.retval = columnID 53 data.canDrag = True 54 data.isSelected = selected == i 55 data.OnChange = self.CheckBoxChange 56 scrolllist.append(GetFromClass(ColumnEntry, data=data)) 57 i += 1 58 59 scrolllist += GetLastEntryToAdd(scrolllist) 60 scrollTo = 0.0 if loadFromTop else self.cachedScrollPos 61 self.scroll.Load(contentList=scrolllist, scrollTo=scrollTo) 62 63 def CheckBoxChange(self, checkbox, node): 64 checked = checkbox.checked 65 columnID = node.retval 66 current = overviewColumns.GetColumns(self.tabID)[:] 67 while columnID in current: 68 current.remove(columnID) 69 70 if checked: 71 current.append(columnID) 72 self.presetSvc.SetTabVisibleColumnIDs(self.tabID, current) 73 self.DoFullOverviewReload() 74 75 def DoFullOverviewReload(self): 76 sm.ScatterEvent('OnFullOverviewReload') 77 78 def MoveStuff(self, dragObj, entries, idx = -1, *args): 79 self.MoveColumn(idx) 80 81 def MoveColumn(self, idx = None, *args): 82 self.cachedScrollPos = self.scroll.GetScrollProportion() 83 selected = self.scroll.GetSelected() 84 if selected: 85 selected = selected[0] 86 if idx is not None: 87 if idx != selected.idx: 88 if selected.idx < idx: 89 newIdx = idx - 1 90 else: 91 newIdx = idx 92 else: 93 return 94 else: 95 newIdx = max(0, selected.idx - 1) 96 column = selected.retval 97 current = overviewColumns.GetColumnOrder(self.tabID)[:] 98 while column in current: 99 current.remove(column) 100 101 if newIdx == -1: 102 newIdx = len(current) 103 current.insert(newIdx, column) 104 self.presetSvc.SetTabColumnOrder(self.tabID, current) 105 self.LoadColumns(newIdx) 106 self.DoFullOverviewReload()