def init(self): from messenger.proto import ServerSettings self.server = ServerSettings() doc_loaders.load(self) self.lobby.onSettingsLoaded(self) from account_helpers.settings_core.SettingsCore import g_settingsCore g_settingsCore.onSettingsChanged += self.__accs_onSettingsChanged
def init(self): self.__colorsSchemes.update({ 'groups': _ColorScheme(['default']), 'rosters': _ColorScheme(['online', 'offline']), 'contacts': _ColorScheme(['online', 'offline']), 'battle/player': _ColorScheme(['default', 'colorBlind']), 'battle/message': _ColorScheme(['default', 'colorBlind']), 'battle/receiver': _ColorScheme(['default', 'colorBlind']) }) from messenger.proto import ServerSettings self.server = ServerSettings() doc_loaders.load(self) self.lobby.onSettingsLoaded(self) self.settingsCore.onSettingsChanged += self.__accs_onSettingsChanged
class MessengerSettings(object): __slots__ = ('__colorsSchemes', '__messageFormatters', '__eManager', '__isUserPrefsInited', 'lobby', 'battle', 'userPrefs', 'htmlTemplates', 'msgTemplates', 'server', 'onUserPreferencesUpdated', 'onColorsSchemesUpdated') def __init__(self): self.__colorsSchemes = {'groups': _ColorScheme(['default']), 'rosters': _ColorScheme(['online', 'offline']), 'contacts': _ColorScheme(['online', 'offline']), 'battle/player': _ColorScheme(['default', 'colorBlind']), 'battle/message': _ColorScheme(['default', 'colorBlind']), 'battle/receiver': _ColorScheme(['default', 'colorBlind'])} self.lobby = _LobbySettings() self.battle = _BattleSettings() self.userPrefs = _makeDefUserPrefs() self.__isUserPrefsInited = False self.htmlTemplates = XMLCollection('', '') self.msgTemplates = MessageTemplates('', '') self.__messageFormatters = {} self.server = None self.__eManager = Event.EventManager() self.onUserPreferencesUpdated = Event.Event(self.__eManager) self.onColorsSchemesUpdated = Event.Event(self.__eManager) return def init(self): from messenger.proto import ServerSettings self.server = ServerSettings() doc_loaders.load(self) self.lobby.onSettingsLoaded(self) from account_helpers.settings_core.SettingsCore import g_settingsCore g_settingsCore.onSettingsChanged += self.__accs_onSettingsChanged def fini(self): from account_helpers.settings_core.SettingsCore import g_settingsCore g_settingsCore.onSettingsChanged -= self.__accs_onSettingsChanged self.__eManager.clear() self.__colorsSchemes.clear() self.__messageFormatters.clear() def update(self): repository = _getAccountRepository() if repository: settings = repository.serverSettings else: settings = {} self.server.update(settings) from account_helpers.settings_core.SettingsCore import g_settingsCore if g_settingsCore.getSetting('isColorBlind'): csName = 'colorBlind' else: csName = 'default' for colorScheme in self.__colorsSchemes.itervalues(): colorScheme.setCurrent(csName) def getColorScheme(self, key): try: return self.__colorsSchemes[key] except KeyError: LOG_ERROR('Color scheme not found', key) return None return None def resetUserPreferences(self): self.userPrefs = _makeDefUserPrefs() self.__isUserPrefsInited = False def saveUserPreferences(self, data): if doc_loaders.user_prefs.flush(self, data) or not self.__isUserPrefsInited: self.__isUserPrefsInited = True self.onUserPreferencesUpdated() def resetBattleReceiverIfNeed(self): if not self.userPrefs.storeReceiverInBattle: self.battle.lastReceiver = BATTLE_CHANNEL.TEAM.name def __accs_onSettingsChanged(self, diff): if 'isColorBlind' in diff: result = False for colorScheme in self.__colorsSchemes.itervalues(): csName = 'colorBlind' if diff['isColorBlind'] else 'default' if colorScheme.setCurrent(csName): result = True if result: self.onColorsSchemesUpdated()
class MessengerSettings(object): __slots__ = ('__colorsSchemes', '__messageFormatters', '__eManager', '__isUserPrefsInited', '__defaultUserPrefsSnapshot', 'lobby', 'battle', 'userPrefs', 'htmlTemplates', 'msgTemplates', 'server', 'onUserPreferencesUpdated', 'onColorsSchemesUpdated') settingsCore = dependency.descriptor(ISettingsCore) def __init__(self): self.__colorsSchemes = {} self.lobby = _LobbySettings() self.battle = _BattleSettings() self.userPrefs = _makeDefUserPrefs() self.__isUserPrefsInited = False self.__defaultUserPrefsSnapshot = () self.htmlTemplates = XMLCollection('', '') self.msgTemplates = MessageTemplates('', '') self.__messageFormatters = {} self.server = None self.__eManager = Event.EventManager() self.onUserPreferencesUpdated = Event.Event(self.__eManager) self.onColorsSchemesUpdated = Event.Event(self.__eManager) return def init(self): self.__colorsSchemes.update({ 'groups': _ColorScheme(['default']), 'rosters': _ColorScheme(['online', 'offline']), 'contacts': _ColorScheme(['online', 'offline']), 'battle/player': _ColorScheme(['default', 'colorBlind']), 'battle/message': _ColorScheme(['default', 'colorBlind']), 'battle/receiver': _ColorScheme(['default', 'colorBlind']) }) from messenger.proto import ServerSettings self.server = ServerSettings() doc_loaders.load(self) self.__defaultUserPrefsSnapshot = self.userPrefs[:] self.lobby.onSettingsLoaded(self) self.settingsCore.onSettingsChanged += self.__accs_onSettingsChanged def fini(self): self.settingsCore.onSettingsChanged -= self.__accs_onSettingsChanged self.__eManager.clear() self.__colorsSchemes.clear() self.__messageFormatters.clear() def update(self): repository = _getAccountRepository() if repository: settings = repository.serverSettings else: settings = {} self.server.update(settings) if self.settingsCore.getSetting('isColorBlind'): csName = 'colorBlind' else: csName = 'default' for colorScheme in self.__colorsSchemes.itervalues(): colorScheme.setCurrent(csName) def getColorScheme(self, key): try: return self.__colorsSchemes[key] except KeyError: LOG_ERROR('Color scheme not found', key) return None return None def resetUserPreferences(self): if self.__defaultUserPrefsSnapshot: self.userPrefs = _UserPrefs(*self.__defaultUserPrefsSnapshot) else: self.userPrefs = _makeDefUserPrefs() self.__isUserPrefsInited = False def saveUserPreferences(self, data): if doc_loaders.user_prefs.flush(self, data) or not self.__isUserPrefsInited: self.__isUserPrefsInited = True self.onUserPreferencesUpdated() def resetBattleReceiverIfNeed(self): if not self.userPrefs.storeReceiverInBattle: self.battle.lastReceiver = BATTLE_CHANNEL.TEAM.name def __accs_onSettingsChanged(self, diff): if 'isColorBlind' in diff: result = False for colorScheme in self.__colorsSchemes.itervalues(): csName = 'colorBlind' if diff['isColorBlind'] else 'default' if colorScheme.setCurrent(csName): result = True if result: self.onColorsSchemesUpdated()