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())