def _handle_list_click(self, view_manager): item = self.get_list(view_manager).getSelectedItem() if item is not None: key = item.getLabel2() if key == 'settings': session = view_manager.get_var('session') settings_obj = SettingsManager() settings_obj.show_dialog(session) elif key == 'sign-off': self._do_logout(view_manager)
def _do_settings(self, view_manager): settings = SettingsManager() session = view_manager.get_var('session') #Store current values before they change before_cache_status = settings.get_cache_status() before_cache_management = settings.get_cache_management() before_cache_size = settings.get_cache_size() before_audio_normalize = settings.get_audio_normalize() before_audio_quality = settings.get_audio_quality() #Show the dialog settings.show_dialog() after_cache_status = settings.get_cache_status() after_cache_management = self.get_cache_management() after_cache_size = settings.get_cache_size() after_audio_normalize = settings.get_audio_normalize() after_audio_quality = settings.get_audio_quality() #Change these only if cache was and is enabled if before_cache_status and after_cache_status: #If cache management changed if before_cache_management != after_cache_management: if after_cache_management == CacheManagement.Automatic: session.set_cache_size(0) elif after_cache_management == CacheManagement.Manual: session.set_cache_size(after_cache_size * 1024) #If manual size changed if (after_cache_management == CacheManagement.Manual and before_cache_size != after_cache_size): session.set_cache_size(after_cache_size * 1024) #Change volume normalization if before_audio_normalize != after_audio_normalize: session.set_volume_normalization(after_audio_normalize) #Change stream quality #FIXME: Repeated code, should be moved to utils br_map = { StreamQuality.Low: Bitrate.Rate96k, StreamQuality.Medium: Bitrate.Rate160k, StreamQuality.High: Bitrate.Rate320k, } if before_audio_quality != after_audio_quality: session.preferred_bitrate(br_map[after_audio_quality])