def wizard_set_language(self): global lang_str global lang_new try: oe.dbg_log('oeWindows::wizard_set_language', 'enter_function', oe.LOGDEBUG) langCodes = {"Bulgarian":"resource.language.bg_bg","Czech":"resource.language.cs_cz","German":"resource.language.de_de","English":"resource.language.en_gb","Spanish":"resource.language.es_es","Basque":"resource.language.eu_es","Finnish":"resource.language.fi_fi","French":"resource.language.fr_fr","Hebrew":"resource.language.he_il","Hungarian":"resource.language.hu_hu","Italian":"resource.language.it_it","Lithuanian":"resource.language.lt_lt","Latvian":"resource.language.lv_lv","Norwegian":"resource.language.nb_no","Dutch":"resource.language.nl_nl","Polish":"resource.language.pl_pl","Portuguese (Brazil)":"resource.language.pt_br","Portuguese":"resource.language.pt_pt","Romanian":"resource.language.ro_ro","Russian":"resource.language.ru_ru","Slovak":"resource.language.sk_sk","Swedish":"resource.language.sv_se","Turkish":"resource.language.tr_tr","Ukrainian":"resource.language.uk_ua"} languagesList = sorted(list(langCodes.keys())) cur_lang = xbmc.getLanguage() for index, lang in enumerate(languagesList): if cur_lang in lang: langIndex = index break else: pass selLanguage = xbmcDialog.select(oe._(32310), languagesList, preselect=langIndex) if selLanguage >= 0: langKey = languagesList[selLanguage] lang_new = langCodes[langKey] if lang_new == "resource.language.en_gb": oe.write_setting("system", "language", "") else: oe.write_setting("system", "language", str(lang_new)) lang_str = 'SetGUILanguage(' + str(lang_new) + ')' self.getControl(self.wizWinTitle).setLabel(oe._(32300)) self.set_wizard_title(oe._(32301)) self.set_wizard_text(oe._(32302)) oe.winOeMain.set_wizard_button_title(oe._(32310)) oe.winOeMain.set_wizard_button_1(langKey, self, 'wizard_set_language') self.showButton(1, 32303) self.setFocusId(self.buttons[1]['id']) oe.dbg_log('oeWindows::wizard_set_language', 'exit_function', oe.LOGDEBUG) except Exception as e: oe.dbg_log('oeWindows::wizard_set_language', f'ERROR: ({repr(e)})')
def disable_device_standby(self, listItem=None): devices = oe.read_setting('bluetooth', 'standby') if devices is not None: devices = devices.split(',') else: devices = [] if listItem.getProperty('entry') in devices: devices.remove(listItem.getProperty('entry')) oe.write_setting('bluetooth', 'standby', ','.join(devices))
def enable_device_standby(self, listItem=None): devices = oe.read_setting('bluetooth', 'standby') if not devices == None: devices = devices.split(',') else: devices = [] if not listItem.getProperty('entry') in devices: devices.append(listItem.getProperty('entry')) oe.write_setting('bluetooth', 'standby', ','.join(devices))
def wizard_set_hostname(self): currentHostname = self.struct['ident']['settings']['hostname']['value'] xbmcKeyboard = xbmc.Keyboard(currentHostname) result_is_valid = False while not result_is_valid: xbmcKeyboard.doModal() if xbmcKeyboard.isConfirmed(): result_is_valid = True validate_string = self.struct['ident']['settings']['hostname'][ 'validate'] if validate_string != '': if not re.search(validate_string, xbmcKeyboard.getText()): result_is_valid = False else: result_is_valid = True if xbmcKeyboard.isConfirmed(): self.struct['ident']['settings']['hostname'][ 'value'] = xbmcKeyboard.getText() self.set_hostname() oe.winOeMain.getControl(1401).setLabel( self.struct['ident']['settings']['hostname']['value']) oe.write_setting( 'system', 'hostname', self.struct['ident']['settings']['hostname']['value'])
def onClick(self, controlID): global strModule global prevModule try: oe.dbg_log(f'wizard::onClick({str(controlID)})', 'enter_function', oe.LOGDEBUG) for btn in self.buttons: if controlID == self.buttons[btn]['id'] and self.buttons[btn]['id'] > 2: if hasattr(self.buttons[btn]['modul'], self.buttons[btn]['action']): getattr(self.buttons[btn]['modul'], self.buttons[btn]['action'])() for btn in self.radiobuttons: if controlID == self.radiobuttons[btn]['id'] and self.radiobuttons[btn]['id'] > 1: if hasattr(self.radiobuttons[btn]['modul'], self.radiobuttons[btn]['action']): getattr(self.radiobuttons[btn]['modul'], self.radiobuttons[btn]['action'])() if controlID == self.guiNetList: selectedItem = self.getControl(controlID).getSelectedItem() if selectedItem.getProperty('action') != '': if hasattr(oe.dictModules[self.last_wizard], selectedItem.getProperty('action')): getattr(oe.dictModules[self.last_wizard], selectedItem.getProperty('action'))(selectedItem) return if controlID == 1501: self.wizards.remove(strModule) oe.remove_node(strModule) if strModule == "system": self.onInit() else: self.wizards.remove(prevModule) oe.remove_node(prevModule) self.onClick(1500) oe.dbg_log(f'wizard::onClick({str(controlID)})', 'exit_function', oe.LOGDEBUG) if controlID == 1500: self.getControl(1390).setLabel('1') oe.xbmcm.waitForAbort(0.5) self.is_last_wizard = True self.getControl(1391).setLabel('') self.getControl(self.buttons[3]['id']).setVisible(False) self.getControl(self.buttons[4]['id']).setVisible(False) self.getControl(self.radiobuttons[1]['id']).setVisible(False) self.getControl(self.radiobuttons[2]['id']).setVisible(False) self.showButton(2, 32307) self.set_wizard_title('') self.set_wizard_text('') self.set_wizard_list_title('') self.set_wizard_button_title('') for module in sorted(oe.dictModules, key=lambda x: list(oe.dictModules[x].menu.keys())): strModule = module if hasattr(oe.dictModules[strModule], 'do_wizard') and oe.dictModules[strModule].ENABLED: if strModule == self.last_wizard: if hasattr(oe.dictModules[strModule], 'exit'): oe.dictModules[strModule].exit() if hasattr(oe.dictModules[strModule], 'is_wizard'): del oe.dictModules[strModule].is_wizard setting = oe.read_setting(strModule, 'wizard_completed') if self.wizards != []: prevModule = self.wizards[-1] if oe.read_setting(strModule, 'wizard_completed') == None and strModule not in self.wizards: self.last_wizard = strModule if hasattr(oe.dictModules[strModule], 'do_init'): oe.dictModules[strModule].do_init() self.getControl(1390).setLabel('') oe.dictModules[strModule].do_wizard() self.wizards.append(strModule) oe.write_setting(strModule, 'wizard_completed', 'True') self.is_last_wizard = False break if self.is_last_wizard == True: xbmc.executebuiltin('UpdateAddonRepos') langAddon = f"InstallAddon({lang_new})" xbmc.executebuiltin(langAddon) oe.xbmcm.waitForAbort(0.5) xbmc.executebuiltin('SendClick(10100,11)') oe.write_setting('libreelec', 'wizard_completed', 'True') self.visible = False self.close() xbmc.executebuiltin(lang_str) oe.dbg_log(f'wizard::onClick({str(controlID)})', 'exit_function', oe.LOGDEBUG) except Exception as e: oe.dbg_log('oeWindows.wizard::onClick()', f'ERROR: ({repr(e)})')
def idle_timeout(self, **kwargs): if 'listItem' in kwargs: self.set_value(kwargs['listItem']) oe.write_setting('bluetooth', 'idle_timeout', self.struct['bluez']['settings']['idle_timeout']['value'])
def set_value(self, listItem): self.struct[listItem.getProperty('category')]['settings'][ listItem.getProperty('entry')]['value'] = listItem.getProperty( 'value') oe.write_setting('updates', listItem.getProperty('entry'), str(listItem.getProperty('value')))