infoPanelSettingsController.py (2650B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\infoPanels\infoPanelSettingsController.py 2 from eve.client.script.ui.shared.infoPanels.const import infoPanelConst 3 4 def get_info_panel_settings_id(settings_id): 5 return 'InfoPanelModes_%s' % settings_id 6 7 8 def get_all_info_panel_settings(settings_id): 9 panel_settings = settings.char.ui.Get(get_info_panel_settings_id(settings_id), []) 10 if panel_settings: 11 panel_settings = __remove_deleted_panel_entries(panel_settings) 12 return panel_settings 13 14 15 def save_info_panel_setting(settings_id, panel_settings): 16 settings.char.ui.Set(get_info_panel_settings_id(settings_id), panel_settings) 17 18 19 def __remove_deleted_panel_entries(panels): 20 return [ panel for panel in panels if panel[0] in infoPanelConst.PANELTYPES ] 21 22 23 def save_mode_for_panel_in_setting(settings_id, panel_type_id, new_panel_mode): 24 panel_settings = get_all_info_panel_settings(settings_id) 25 if is_panel_type_in_panel_settings(panel_settings, panel_type_id): 26 panel_settings = __modify_panel_mode_in_setting(panel_settings, panel_type_id, new_panel_mode) 27 else: 28 panel_settings.append([panel_type_id, new_panel_mode]) 29 settings.char.ui.Set(get_info_panel_settings_id(settings_id), panel_settings) 30 sm.ScatterEvent('OnInfoPanelSettingChanged', panel_type_id, new_panel_mode) 31 32 33 def is_panel_type_in_panel_settings(panel_settings, panel_type_id): 34 for panel_type, panel_mode in panel_settings: 35 if panel_type == panel_type_id: 36 return True 37 38 return False 39 40 41 def __modify_panel_mode_in_setting(panel_settings, panel_type_id, new_panel_mode): 42 for settingsEntry in panel_settings: 43 if settingsEntry[0] == panel_type_id: 44 settingsEntry[1] = new_panel_mode 45 46 return panel_settings 47 48 49 def get_panel_mode(settings_id, panel_type_id): 50 panel_settings = get_all_info_panel_settings(settings_id) 51 settings_entry = get_panel_settings_entry_by_type(panel_settings, panel_type_id) 52 if not settings_entry: 53 default_mode = get_panel_default_mode(settings_id, panel_type_id) 54 save_mode_for_panel_in_setting(settings_id, panel_type_id, default_mode) 55 return default_mode 56 return settings_entry[1] 57 58 59 def get_panel_default_mode(settings_id, panel_type_id): 60 return infoPanelConst.PANEL_DEFAULT_MODE_BY_SETTINGSID.get(settings_id, {}).get(panel_type_id, infoPanelConst.MODE_NORMAL) 61 62 63 def get_panel_settings_entry_by_type(panel_settings, panel_type_id): 64 for settings_entry in panel_settings: 65 if settings_entry[0] == panel_type_id: 66 return settings_entry