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

chat_settings.py (3602B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\chat\client\chat_settings.py
      2 import itertools
      3 from carbonui.fontconst import EVE_MEDIUM_FONTSIZE
      4 from clientsettings.setting import _BaseSettingBool, _BaseSettingEnum, UserSettingBool, UserSettingEnum, UserSettingNumeric
      5 from carbonui.text.settings import get_font_size_for_preset
      6 from .const import AVAILABLE_FONT_SIZES, ChatMessageMode
      7 OPEN_CHANNELS_SETTING_KEY = 'chatchannels'
      8 elevated_chat_highlighting_setting = UserSettingBool(settings_key='chatHightlighting', default_value=False)
      9 global_font_size_setting = UserSettingEnum(settings_key='chatWindowGlobalSize', default_value=None, options=itertools.chain([None], AVAILABLE_FONT_SIZES))
     10 show_message_timestamp_setting = UserSettingBool(settings_key='timestampchat', default_value=False)
     11 highlight_my_messages_setting = UserSettingBool(settings_key='myMsgHighlighted', default_value=False)
     12 default_light_background_setting = UserSettingBool(settings_key='chat_light_background_default', default_value=True)
     13 default_font_size_setting = UserSettingEnum(settings_key='chat_font_size_default', default_value=lambda : get_font_size_for_preset(EVE_MEDIUM_FONTSIZE), options=AVAILABLE_FONT_SIZES)
     14 default_show_member_list_setting = UserSettingBool(settings_key='chat_show_member_list_default', default_value=True)
     15 default_compact_member_entries_setting = UserSettingBool(settings_key='chat_compact_member_entries', default_value=False)
     16 default_message_mode_setting = UserSettingEnum(settings_key='chat_message_mode_default', default_value=ChatMessageMode.SMALL_PORTRAIT, options=(ChatMessageMode.TEXT_ONLY, ChatMessageMode.SMALL_PORTRAIT, ChatMessageMode.LARGE_PORTRAIT))
     17 auto_collapse_messages = UserSettingBool(settings_key='chat_auto_collapse_messages', default_value=False)
     18 auto_collapse_message_lines = UserSettingNumeric(settings_key='chat_auto_collapse_message_lines', default_value=5, min_value=2, max_value=10)
     19 
     20 class ApplyFontSizeGloballySetting(_BaseSettingBool):
     21 
     22     def __init__(self, font_size_setting):
     23         self._font_size_setting = font_size_setting
     24         super(ApplyFontSizeGloballySetting, self).__init__(settings_key=None, default_value=False)
     25 
     26     def get(self):
     27         return global_font_size_setting.get() is not None
     28 
     29     def _set(self, value):
     30         if value:
     31             global_font_size_setting.set(self._font_size_setting.get())
     32         else:
     33             global_font_size_setting.set(None)
     34 
     35 
     36 class EffectiveFontSizeSetting(_BaseSettingEnum):
     37 
     38     def __init__(self, font_size_setting):
     39         self._font_size_setting = font_size_setting
     40         super(EffectiveFontSizeSetting, self).__init__(settings_key=None, default_value=self._get_default_font_size, options=font_size_setting.options)
     41         font_size_setting.on_change.connect(self._on_font_size_changed)
     42         global_font_size_setting.on_change.connect(self._on_global_font_size_changed)
     43 
     44     def get(self):
     45         global_font_size = global_font_size_setting.get()
     46         if global_font_size is not None:
     47             return global_font_size
     48         else:
     49             return self._font_size_setting.get()
     50 
     51     def _set(self, value):
     52         if global_font_size_setting.get() is None:
     53             self._font_size_setting.set(value)
     54         else:
     55             global_font_size_setting.set(value)
     56 
     57     def _get_default_font_size(self):
     58         return self._font_size_setting.get_default()
     59 
     60     def _on_font_size_changed(self, value):
     61         self._trigger_on_change(self.get())
     62 
     63     def _on_global_font_size_changed(self, value):
     64         self._trigger_on_change(self.get())