appearancePanel.py (9870B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\overviewSettings\appearancePanel.py 2 from carbonui.primitives.container import Container 3 from carbonui import uiconst 4 from eve.client.script.parklife import stateSetting 5 from carbonui.button.group import ButtonGroup 6 from carbonui.control.checkbox import Checkbox 7 import overviewPresets.overviewSettingsConst as osConst 8 from eve.client.script.ui.control.entries.util import GetFromClass 9 from eve.client.script.ui.control.eveLabel import EveLabelMedium 10 from eve.client.script.ui.control.eveScroll import Scroll 11 from carbonui.control.tabGroup import TabGroup 12 from eve.client.script.ui.inflight.overviewSettings.overviewSettingEntries import GetLastEntryToAdd, FlagEntry 13 from eve.client.script.ui.inflight.overviewSettings.panelUtils import OnContentDragEnter, OnContentDragExit, ResetCbOnReloadingOverviewProfile 14 from globalConfig import IsPlayerBountyHidden 15 from localization import GetByLabel 16 from utillib import KeyVal 17 from eve.client.script.parklife import states as stateFlagcConst 18 19 class AppearancePanel(Container): 20 default_name = 'appearancePanel' 21 __notifyevents__ = ['OnReloadingOverviewProfile'] 22 default_state = uiconst.UI_HIDDEN 23 24 def ApplyAttributes(self, attributes): 25 Container.ApplyAttributes(self, attributes) 26 self.cachedScrollPos = 0.0 27 self.overviewPresetSvc = sm.GetService('overviewPresetSvc') 28 self.ConstructCheckboxes() 29 statebtns = ButtonGroup(parent=self, idx=0) 30 statebtns.AddButton(GetByLabel('UI/Commands/ResetAll'), self.ResetStateSettings) 31 self.statetabs = TabGroup(name='overviewstatesTab', align=uiconst.TOTOP, parent=self, groupID='overviewstatesTab', autoselecttab=0, padTop=8) 32 self.statetabs.AddTab(GetByLabel('UI/Overview/Colortag'), code=self, tabID='flag', hint=GetByLabel('UI/Overview/HintToggleDisplayState')) 33 self.statetabs.AddTab(GetByLabel('UI/Overview/Background'), code=self, tabID='background', hint=GetByLabel('UI/Overview/HintToggleDisplayState')) 34 self.scroll = Scroll(name='appearanceScroll', parent=self) 35 self.scroll.multiSelect = 0 36 self.scroll.sr.content.OnDropData = self.MoveStuff 37 self.scroll.sr.content.OnDragEnter = lambda *args: OnContentDragEnter(self.scroll, *args) 38 self.scroll.sr.content.OnDragExit = lambda *args: OnContentDragExit(self.scroll, *args) 39 sm.RegisterNotify(self) 40 41 def ConstructCheckboxes(self): 42 self.settingCheckboxes = [] 43 cb = Checkbox(text=GetByLabel('UI/Overview/UseSmallColortags'), parent=self, settingsKey=osConst.SETTING_NAME_SMALL_TAGS, checked=self.overviewPresetSvc.GetSettingValueOrDefaultFromName(osConst.SETTING_NAME_SMALL_TAGS, False), callback=self.CheckBoxChange, settingsPath=('user', 'overview'), align=uiconst.TOTOP) 44 self.settingCheckboxes.append(cb) 45 self.useSmallColorTags = cb 46 self.useSmallText = Checkbox(text=GetByLabel('UI/Overview/UseSmallFont'), parent=self, settingsKey=osConst.SETTING_NAME_SMALL_TEXT, checked=self.overviewPresetSvc.GetSettingValueOrDefaultFromName(osConst.SETTING_NAME_SMALL_TEXT, False), callback=self.CheckBoxChange, settingsPath=('user', 'overview'), align=uiconst.TOTOP) 47 self.settingCheckboxes.append(self.useSmallText) 48 EveLabelMedium(text=GetByLabel('UI/Overview/ApplyToShipsAndDronesByDefault'), parent=self, align=uiconst.TOTOP, padding=(0, 16, 0, 0), state=uiconst.UI_NORMAL) 49 applyToStructures = self.overviewPresetSvc.GetSettingValueOrDefaultFromName(osConst.SETTING_NAME_APPLY_STRUCTURE, True) 50 cb = Checkbox(text=GetByLabel('UI/Overview/ApplyToStructures'), parent=self, settingsKey=osConst.SETTING_NAME_APPLY_STRUCTURE, checked=applyToStructures, callback=self.CheckBoxChange, settingsPath=('user', 'overview'), align=uiconst.TOTOP, padTop=4) 51 self.settingCheckboxes.append(cb) 52 self.applyToStructures = cb 53 applyToOtherObjects = self.overviewPresetSvc.GetSettingValueOrDefaultFromName(osConst.SETTING_NAME_APPLY_OTHER_OBJ, False) 54 cb = Checkbox(text=GetByLabel('UI/Overview/ApplyToOtherObjects'), parent=self, settingsKey=osConst.SETTING_NAME_APPLY_OTHER_OBJ, checked=applyToOtherObjects, callback=self.CheckBoxChange, settingsPath=('user', 'overview'), align=uiconst.TOTOP) 55 self.settingCheckboxes.append(cb) 56 self.applyToOtherObjects = cb 57 58 def ResetStateSettings(self, *args): 59 settings.user.overview.Set(stateSetting.SETTING_FLAG_ORDER_CONFIG_NAME, None) 60 settings.user.overview.Set(osConst.SETTING_ICON_ORDER, None) 61 settings.user.overview.Set(stateSetting.SETTING_BACKGROUND_ORDER_CONFIG_NAME, None) 62 settings.user.overview.Set(stateSetting.SETTING_FLAG_STATES_CONFIG_NAME, None) 63 settings.user.overview.Set(osConst.SETTING_ICON_STATES, None) 64 settings.user.overview.Set(stateSetting.SETTING_BACKGROUND_STATES_CONFIG_NAME, None) 65 settings.user.overview.Set(osConst.SETTING_STATE_COLORS, {}) 66 sm.GetService('stateSvc').InitColors(1) 67 settings.user.overview.Set(osConst.SETTING_STATE_BLINKS, {}) 68 defaultUseSmallColorTags = self.overviewPresetSvc.GetDefaultSettingValueFromName(osConst.SETTING_NAME_SMALL_TAGS, False) 69 settings.user.overview.Set(osConst.SETTING_NAME_SMALL_TAGS, defaultUseSmallColorTags) 70 self.useSmallColorTags.SetChecked(defaultUseSmallColorTags, 0) 71 defaultApplyToStructures = self.overviewPresetSvc.GetDefaultSettingValueFromName(osConst.SETTING_NAME_APPLY_STRUCTURE, True) 72 settings.user.overview.Set(osConst.SETTING_NAME_APPLY_STRUCTURE, defaultApplyToStructures) 73 self.applyToStructures.SetChecked(defaultApplyToStructures, 0) 74 defaultApplyToOtherObjects = self.overviewPresetSvc.GetDefaultSettingValueFromName(osConst.SETTING_NAME_APPLY_OTHER_OBJ, False) 75 settings.user.overview.Set(osConst.SETTING_NAME_APPLY_OTHER_OBJ, defaultApplyToOtherObjects) 76 self.applyToOtherObjects.SetChecked(defaultApplyToOtherObjects, 0) 77 self.LoadFlags() 78 sm.GetService('stateSvc').NotifyOnStateSetupChange('reset') 79 80 def AutoSelectTab(self): 81 self.statetabs.AutoSelect() 82 83 def GetSelectedTab(self): 84 return self.statetabs.GetSelectedArgs() 85 86 def Load(self, key): 87 self.LoadFlags() 88 89 def LoadFlags(self, selected = None): 90 where = self.GetSelectedTab() 91 flagOrder = sm.GetService('stateSvc').GetStateOrder(where) 92 scrolllist = [] 93 i = 0 94 playerBountyHidden = IsPlayerBountyHidden(sm.GetService('machoNet')) 95 for flag in flagOrder: 96 if flag == stateFlagcConst.flagIsWanted and playerBountyHidden: 97 continue 98 props = sm.GetService('stateSvc').GetStateProps(flag) 99 data = KeyVal() 100 data.label = props.text 101 data.props = props 102 data.checked = sm.GetService('stateSvc').GetStateState(where, flag) 103 data.cfgname = where 104 data.retval = flag 105 data.flag = flag 106 data.canDrag = True 107 data.hint = props.hint 108 data.OnChange = self.CheckBoxChange 109 data.isSelected = selected == i 110 scrolllist.append(GetFromClass(FlagEntry, data=data)) 111 i += 1 112 113 scrolllist += GetLastEntryToAdd(scrolllist) 114 self.scroll.Load(contentList=scrolllist, scrollTo=self.cachedScrollPos) 115 116 def CheckBoxChange(self, checkbox, node = None): 117 settingsKey = checkbox.GetSettingsKey() 118 if settingsKey: 119 if settingsKey == osConst.SETTING_NAME_SMALL_TAGS: 120 sm.GetService('stateSvc').NotifyOnStateSetupChange('filter') 121 elif settingsKey == osConst.SETTING_NAME_SMALL_TEXT: 122 if checkbox.checked: 123 settings.user.overview.Set(osConst.SETTING_NAME_SMALL_TEXT, 1) 124 else: 125 settings.user.overview.Set(osConst.SETTING_NAME_SMALL_TEXT, 0) 126 self.DoFullOverviewReload() 127 elif settingsKey in (osConst.SETTING_NAME_APPLY_STRUCTURE, osConst.SETTING_NAME_APPLY_OTHER_OBJ): 128 sm.GetService('overviewPresetSvc').SetNPCGroups() 129 sm.GetService('stateSvc').InitFilter() 130 sm.GetService('stateSvc').NotifyOnStateSetupChange('filter') 131 self.DoFullOverviewReload() 132 sm.GetService('bracket').Reload() 133 key = checkbox.GetSettingsKey() 134 if key: 135 selectedTabConfigName = self.GetSelectedTab() 136 if key == selectedTabConfigName: 137 if node: 138 flag = node.flag 139 else: 140 raise ValueError('No flag value passed in') 141 sm.GetService('stateSvc').ChangeStateState(selectedTabConfigName, flag, checkbox.checked) 142 143 def DoFullOverviewReload(self): 144 sm.ScatterEvent('OnFullOverviewReload') 145 146 def MoveStuff(self, dragObj, entries, idx = -1, *args): 147 self.Move(idx) 148 149 def Move(self, idx = None, *args): 150 self.cachedScrollPos = self.scroll.GetScrollProportion() 151 selected = self.scroll.GetSelected() 152 if selected: 153 selected = selected[0] 154 if idx is not None: 155 if idx != selected.idx: 156 if selected.idx < idx: 157 newIdx = idx - 1 158 else: 159 newIdx = idx 160 else: 161 return 162 else: 163 newIdx = max(0, selected.idx - 1) 164 where = self.GetSelectedTab() 165 sm.GetService('stateSvc').ChangeStateOrder(where, selected.flag, newIdx) 166 self.LoadFlags(newIdx) 167 168 def OnReloadingOverviewProfile(self): 169 ResetCbOnReloadingOverviewProfile(self.overviewPresetSvc, self.settingCheckboxes)