NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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