def __init__(self, session): self.session = session Screen.__init__(self, session) self["actions"] = ActionMap(["ColorActions", "WizardActions"], { "back": self.cancel, "ok": self.ok, "up": self.pageUp, "down": self.pageDown, "left": self.left, "right": self.right, "red": self.red, "green": self.green, "yellow": self.chooseDevice, "blue": self.blue, }, -1) self["key_red"] = Label(_("HDD INFO")) self["key_green"] = Label(_("SHOW ATTR")) self["key_yellow"] = Label(_("CHOOSE DEVICE")) # self["key_blue"] = Label(_("blue")) self["output"] = ScrollLabel() self.getDevices() self.chooseMenuList = ChoiceList(self.devicesMenu) self["chooseDevice"] = self.chooseMenuList self.chooseMenuList.hide() self.dict = {} self.hasPotentialFailure = False self.showAttr = True self.console = Console() self.selectedDevice = None if len(self.devices) > 1: self.chooseDevice() elif len(self.devices) == 1: self["key_yellow"].hide() self.selectedDevice = self.devices[0] if self.selectedDevice: self.getSmartCtlInformation(self.selectedDevice)
def __init__(self, session, title="", list=None, keys=None, selection=0, skin_name=None, text=""): self.setTitle(_("Choice Box")) if not list: list = [] if not skin_name: skin_name = [] Screen.__init__(self, session) if isinstance(skin_name, str): skin_name = [skin_name] self.skinName = skin_name + ["ChoiceBox"] self["text"] = Label() if title: title = _(title) if len(title) < 55 and title.find('\n') == -1: Screen.setTitle(self, title) elif title.find('\n') != -1: temptext = title.split('\n') if len(temptext[0]) < 55: Screen.setTitle(self, temptext[0]) count = 2 labeltext = "" while len(temptext) >= count: if labeltext: labeltext += '\n' labeltext = labeltext + temptext[count - 1] count += 1 print 'count', count self["text"].setText(labeltext) else: self["text"] = Label(title) else: self["text"] = Label(title) elif text: self["text"] = Label(_(text)) self.list = [] self.summarylist = [] if keys is None: self.__keys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue" ] + (len(list) - 10) * ["dummy"] else: self.__keys = keys + (len(list) - len(keys)) * ["dummy"] self.keymap = {} pos = 0 for x in list: strpos = str(self.__keys[pos]) self.list.append(ChoiceEntryComponent(key=strpos, text=x)) if self.__keys[pos] != "": self.keymap[self.__keys[pos]] = list[pos] self.summarylist.append((self.__keys[pos], x[0])) pos += 1 self["list"] = ChoiceList(list=self.list, selection=selection) self["summary_list"] = StaticText() self["summary_selection"] = StaticText() self.updateSummary(selection) self["actions"] = NumberActionMap( ["WizardActions", "InputActions", "ColorActions"], { "ok": self.go, "1": self.keyNumberGlobal, "2": self.keyNumberGlobal, "3": self.keyNumberGlobal, "4": self.keyNumberGlobal, "5": self.keyNumberGlobal, "6": self.keyNumberGlobal, "7": self.keyNumberGlobal, "8": self.keyNumberGlobal, "9": self.keyNumberGlobal, "0": self.keyNumberGlobal, "red": self.keyRed, "green": self.keyGreen, "yellow": self.keyYellow, "blue": self.keyBlue, "up": self.up, "down": self.down, "left": self.left, "right": self.right }, -1) self["cancelaction"] = NumberActionMap( ["WizardActions", "InputActions", "ColorActions"], { "back": self.cancel, }, -1)
def __init__(self, session, title="", list=None, keys=None, selection=0, skin_name=None, text="", reorderConfig="", windowTitle=None, var=""): if not list: list = [] if not skin_name: skin_name = [] Screen.__init__(self, session) if isinstance(skin_name, str): skin_name = [skin_name] self.skinName = skin_name + ["ChoiceBox"] self.reorderConfig = reorderConfig self["text"] = Label() self.var = "" if title: title = _(title) if len(title) < 55 and title.find('\n') == -1: self.setTitle(title) elif title.find('\n') != -1: temptext = title.split('\n') if len(temptext[0]) < 55: self.setTitle(temptext[0]) count = 2 labeltext = "" while len(temptext) >= count: if labeltext: labeltext += '\n' labeltext = labeltext + temptext[count - 1] count += 1 self["text"].setText(labeltext) else: self["text"].setText(title) else: self["text"].setText(title) elif text: self["text"].setText(_(text)) self["description"] = Label() self.list = [] self.summarylist = [] if keys is None: self.__keys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue" ] + (len(list) - 14) * [""] else: self.__keys = keys + (len(list) - len(keys)) * [""] self.keymap = {} pos = 0 if self.reorderConfig: self.config_type = eval("config.misc.pluginlist." + self.reorderConfig) if self.config_type.value: prev_list = zip(list, self.__keys) new_list = [] for x in self.config_type.value.split(","): for entry in prev_list: if entry[0][0] == x: new_list.append(entry) prev_list.remove(entry) list = zip(*(new_list + prev_list)) list, self.__keys = list[0], list[1] number = 1 new_keys = [] for x in self.__keys: if (not x or x.isdigit()) and number <= 10: new_keys.append(str(number % 10)) number += 1 else: new_keys.append(not x.isdigit() and x or "") self.__keys = new_keys for x in list: if x: strpos = str(self.__keys[pos]) self.list.append(ChoiceEntryComponent(key=strpos, text=x)) if self.__keys[pos] != "": self.keymap[self.__keys[pos]] = list[pos] self.summarylist.append((self.__keys[pos], x[0])) pos += 1 self["list"] = ChoiceList(list=self.list, selection=selection) self["summary_list"] = StaticText() self["summary_selection"] = StaticText() self.updateSummary(selection) self["actions"] = NumberActionMap( [ "WizardActions", "InputActions", "ColorActions", "DirectionActions", "MenuActions" ], { "ok": self.go, "1": self.keyNumberGlobal, "2": self.keyNumberGlobal, "3": self.keyNumberGlobal, "4": self.keyNumberGlobal, "5": self.keyNumberGlobal, "6": self.keyNumberGlobal, "7": self.keyNumberGlobal, "8": self.keyNumberGlobal, "9": self.keyNumberGlobal, "0": self.keyNumberGlobal, "red": self.keyRed, "green": self.keyGreen, "yellow": self.keyYellow, "blue": self.keyBlue, "up": self.up, "down": self.down, "left": self.left, "right": self.right, "shiftUp": self.additionalMoveUp, "shiftDown": self.additionalMoveDown, "menu": self.setDefaultChoiceList, "back": self.cancel }, prio=-2)
def __init__(self, session, title="", list=[], keys=None, selection=0, skin_name=[], windowTitle=None, allow_cancel=True, titlebartext=_("Input")): if not windowTitle: #for compatibility windowTitle = titlebartext Screen.__init__(self, session, windowTitle=windowTitle) self.allow_cancel = allow_cancel if isinstance(skin_name, str): skin_name = [skin_name] self.skinName = skin_name + ["ChoiceBox"] self["text"] = Label(title) self.list = [] self.summarylist = [] if keys is None: self.__keys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue", "text" ] + (len(list) - 10) * [""] else: self.__keys = keys + (len(list) - len(keys)) * [""] self.keymap = {} pos = 0 for x in list: strpos = str(self.__keys[pos]) self.list.append(ChoiceEntryComponent(key=strpos, text=x)) if self.__keys[pos] != "": self.keymap[self.__keys[pos]] = list[pos] self.summarylist.append((self.__keys[pos], x[0])) pos += 1 self["list"] = ChoiceList(list=self.list, selection=selection) self["summary_list"] = StaticText() self.updateSummary() self["actions"] = NumberActionMap( [ "WizardActions", "InputActions", "ColorActions", "DirectionActions" ], { "ok": self.go, "back": self.cancel, "1": self.keyNumberGlobal, "2": self.keyNumberGlobal, "3": self.keyNumberGlobal, "4": self.keyNumberGlobal, "5": self.keyNumberGlobal, "6": self.keyNumberGlobal, "7": self.keyNumberGlobal, "8": self.keyNumberGlobal, "9": self.keyNumberGlobal, "0": self.keyNumberGlobal, "red": self.keyRed, "green": self.keyGreen, "yellow": self.keyYellow, "blue": self.keyBlue, "text": self.keyText, "up": self.up, "down": self.down }, -1)
def __init__(self, session, title="", list=[], keys=None, selection=0, skin_name=[], reorderConfig="", windowTitle=None): Screen.__init__(self, session) if isinstance(skin_name, str): skin_name = [skin_name] self.skinName = skin_name + ["ChoiceBox"] self.reorderConfig = reorderConfig self["autoresize"] = Label("") # do not remove, used for autoResize() self["description"] = Label() self["text"] = Label(title) self.list = [] self.summarylist = [] if keys is None: self.__keys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue" ] + (len(list) - 14) * ["dummy"] else: self.__keys = keys + (len(list) - len(keys)) * ["dummy"] self.keymap = {} pos = 0 if self.reorderConfig: self.config_type = eval("config.misc.pluginlist." + self.reorderConfig) if self.config_type.value: prev_list = zip(list, self.__keys) new_list = [] for x in self.config_type.value.split(","): for entry in prev_list: if entry[0][0] == x: new_list.append(entry) prev_list.remove(entry) list = zip(*(new_list + prev_list)) list, self.__keys = list[0], list[1] number = 1 new_keys = [] for x in self.__keys: if (not x or x.isdigit()) and number <= 10: new_keys.append(str(number % 10)) number += 1 else: new_keys.append(not x.isdigit() and x or "") self.__keys = new_keys for x in list: if x: strpos = str(self.__keys[pos]) self.list.append(ChoiceEntryComponent(key=strpos, text=x)) if self.__keys[pos] != "": self.keymap[self.__keys[pos]] = list[pos] self.summarylist.append((self.__keys[pos], x[0])) pos += 1 self["list"] = ChoiceList(list=self.list, selection=selection) self["summary_list"] = StaticText() self["summary_selection"] = StaticText() self.updateSummary(selection) self["actions"] = NumberActionMap( [ "WizardActions", "InputActions", "ColorActions", "DirectionActions", "MenuActions" ], { "ok": self.go, "back": self.cancel, "1": self.keyNumberGlobal, "2": self.keyNumberGlobal, "3": self.keyNumberGlobal, "4": self.keyNumberGlobal, "5": self.keyNumberGlobal, "6": self.keyNumberGlobal, "7": self.keyNumberGlobal, "8": self.keyNumberGlobal, "9": self.keyNumberGlobal, "0": self.keyNumberGlobal, "red": self.keyRed, "green": self.keyGreen, "yellow": self.keyYellow, "blue": self.keyBlue, "up": self.up, "down": self.down, "moveUp": self.additionalMoveUp, "moveDown": self.additionalMoveDown, "menu": self.setDefaultChoiceList, "rightUp": self.rightUp, "leftUp": self.leftUp }, -1) self.setTitle(windowTitle or _("Select"))
def __init__(self, session, title="", list=None, keys=None, selection=0, skin_name=None, text="", reorderConfig="", var="", windowTitle=None, allow_cancel=True, titlebartext=_("Choice Box")): if not windowTitle: #for compatibility windowTitle = titlebartext if not list: list = [] if not skin_name: skin_name = [] Screen.__init__(self, session) self.allow_cancel = allow_cancel if isinstance(skin_name, str): skin_name = [skin_name] self.skinName = skin_name + ["ChoiceBox"] self.reorderConfig = reorderConfig self["text"] = Label() self.var = "" if skin_name and 'SoftwareUpdateChoices' in skin_name and var and var in ( 'unstable', 'updating', 'stable', 'unknown'): self.var = var self['feedStatusMSG'] = Label() self['tl_off'] = Pixmap() self['tl_red'] = Pixmap() self['tl_yellow'] = Pixmap() self['tl_green'] = Pixmap() title_max = 55 if 'MetrixHD/' in config.skin.primary_skin.value: title_max += 10 if title: title = _(title) if len(title) < title_max and title.find('\n') == -1: Screen.setTitle(self, title) if text != "": self["text"] = Label(_(text)) elif title.find('\n') != -1: temptext = title.split('\n') if len(temptext[0]) < title_max: Screen.setTitle(self, temptext[0]) count = 2 labeltext = "" while len(temptext) >= count: if labeltext: labeltext += '\n' labeltext = labeltext + temptext[count - 1] count += 1 print('[Choicebox] count', count) self["text"].setText(labeltext) else: self["text"] = Label(title) else: self["text"] = Label(title) elif text: self["text"] = Label(_(text)) self.list = [] self.summarylist = [] if keys is None: self.__keys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue", "text" ] + (len(list) - 14) * [""] else: self.__keys = keys + (len(list) - len(keys)) * [""] self.keymap = {} pos = 0 if self.reorderConfig: self.config_type = eval("config.misc.pluginlist." + self.reorderConfig) if self.config_type.value: prev_list = zip(list, self.__keys) new_list = [] for x in self.config_type.value.split(","): for entry in prev_list: if entry[0][0] == x: new_list.append(entry) prev_list.remove(entry) list = zip(*(new_list + prev_list)) list, self.__keys = list[0], list[1] number = 1 new_keys = [] for x in self.__keys: if (not x or x.isdigit()) and number <= 10: new_keys.append(str(number % 10)) number += 1 else: new_keys.append(not x.isdigit() and x or "") self.__keys = new_keys for x in list: strpos = str(self.__keys[pos]) self.list.append(ChoiceEntryComponent(key=strpos, text=x)) if self.__keys[pos] != "": self.keymap[self.__keys[pos]] = list[pos] self.summarylist.append((self.__keys[pos], x[0])) pos += 1 self["windowtitle"] = Label(_(windowTitle)) self["list"] = ChoiceList(list=self.list, selection=selection) self["summary_list"] = StaticText() self["summary_selection"] = StaticText() self.updateSummary(selection) self["actions"] = NumberActionMap( [ "WizardActions", "InputActions", "ColorActions", "DirectionActions", "MenuActions" ], { "ok": self.go, "1": self.keyNumberGlobal, "2": self.keyNumberGlobal, "3": self.keyNumberGlobal, "4": self.keyNumberGlobal, "5": self.keyNumberGlobal, "6": self.keyNumberGlobal, "7": self.keyNumberGlobal, "8": self.keyNumberGlobal, "9": self.keyNumberGlobal, "0": self.keyNumberGlobal, "red": self.keyRed, "green": self.keyGreen, "yellow": self.keyYellow, "blue": self.keyBlue, "text": self.keyText, "up": self.up, "down": self.down, "left": self.left, "right": self.right, "shiftUp": self.additionalMoveUp, "shiftDown": self.additionalMoveDown, "menu": self.setDefaultChoiceList, "back": lambda: 0, # drop through to self["cancelaction"] }, prio=-2) self["cancelaction"] = ActionMap(["WizardActions"], { "back": self.cancel, }, prio=-1) self.onShown.append(self.onshow)
def __init__(self, session, key, args=None): Screen.__init__(self, session) self.skinName = 'ButtonSetupSelect' self['description'] = Label( _('Select the desired function and click on "OK" to assign it. Use "CH+/-" to toggle between the lists. Select an assigned function and click on "OK" to de-assign it. Use "Next/Previous" to change the order of the assigned functions.' )) self.session = session self.key = key self.setTitle(_('Quick button setup for') + ': ' + key[0][0]) self['key_red'] = Button(_('Cancel')) self['key_green'] = Button(_('Save')) self.mode = 'list' self.ButtonSetupFunctions = getButtonSetupFunctions() self.config = eval('config.misc.ButtonSetup.' + key[0][1]) self.expanded = [] self.selected = [] for x in self.config.value.split(','): if x.startswith('ZapPanic'): self.selected.append( ChoiceEntryComponent( '', (_('Panic to') + ' ' + ServiceReference( eServiceReference(x.split( '/', 1)[1]).toString()).getServiceName(), x))) elif x.startswith('Zap'): self.selected.append( ChoiceEntryComponent( '', (_('Zap to') + ' ' + ServiceReference( eServiceReference(x.split( '/', 1)[1]).toString()).getServiceName(), x))) else: function = list((function for function in self.ButtonSetupFunctions if function[1] == x)) if function: self.selected.append( ChoiceEntryComponent('', (function[0][0], function[0][1]))) self.prevselected = self.selected[:] self['choosen'] = ChoiceList(list=self.selected, selection=0) self['list'] = ChoiceList(list=self.getFunctionList(), selection=0) self['actions'] = ActionMap( [ 'OkCancelActions', 'ColorActions', 'DirectionActions', 'KeyboardInputActions' ], { 'ok': self.keyOk, 'cancel': self.cancel, 'red': self.cancel, 'green': self.save, 'up': self.keyUp, 'down': self.keyDown, 'left': self.keyLeft, 'right': self.keyRight, 'upRepeated': self.keyUp, 'downRepeated': self.keyDown, 'leftRepeated': self.keyLeft, 'rightRepeated': self.keyRight, 'pageUp': self.toggleMode, 'pageDown': self.toggleMode, 'moveUp': self.moveUp, 'moveDown': self.moveDown }, -1) self.onLayoutFinish.append(self.__layoutFinished)
class SmartCtl(Screen): version = "2017-03-24 0.2.1" skin = """ <screen name="SmartCtl" position="0,0" size="1920,1080" title="SmartCtl HDD Information" flags="wfNoBorder"> <widget name="output" position="20,20" size="1880,920" font="Console;20" zPosition="1" /> <widget name="chooseDevice" position="20,80" size="400,500" scrollbarMode="showOnDemand" zPosition="2" /> <widget name="key_red" position="20,1000" zPosition="1" size="400,50" font="Regular;20" halign="center" valign="center" backgroundColor="#f01010" foregroundColor="#ffffff" transparent="0" /> <widget name="key_green" position="500,1000" zPosition="1" size="400,50" font="Regular;20" halign="center" valign="center" backgroundColor="#10a010" foregroundColor="#ffffff" transparent="0" /> <widget name="key_yellow" position="980,1000" zPosition="1" size="400,50" font="Regular;20" halign="center" valign="center" backgroundColor="#f0f010" foregroundColor="#303030" transparent="0" /> <!-- widget source="key_blue" position="1460,1000" zPosition="1" size="400,50" font="Regular;20" halign="center" valign="center" backgroundColor="#0000e0" foregroundColor="#ffffff" transparent="0" / --> </screen> """ def __init__(self, session): self.session = session Screen.__init__(self, session) self["actions"] = ActionMap(["ColorActions", "WizardActions"], { "back": self.cancel, "ok": self.ok, "up": self.pageUp, "down": self.pageDown, "left": self.left, "right": self.right, "red": self.red, "green": self.green, "yellow": self.chooseDevice, "blue": self.blue, }, -1) self["key_red"] = Label(_("HDD INFO")) self["key_green"] = Label(_("SHOW ATTR")) self["key_yellow"] = Label(_("CHOOSE DEVICE")) # self["key_blue"] = Label(_("blue")) self["output"] = ScrollLabel() self.getDevices() self.chooseMenuList = ChoiceList(self.devicesMenu) self["chooseDevice"] = self.chooseMenuList self.chooseMenuList.hide() self.dict = {} self.hasPotentialFailure = False self.showAttr = True self.console = Console() self.selectedDevice = None if len(self.devices) > 1: self.chooseDevice() elif len(self.devices) == 1: self["key_yellow"].hide() self.selectedDevice = self.devices[0] if self.selectedDevice: self.getSmartCtlInformation(self.selectedDevice) def cancel(self): self.close() def ok(self): if self.selectedDevice is None: self.selectedDevice = self.chooseMenuList.l.getCurrentSelection()[0][0] self.chooseMenuList.hide() self.getSmartCtlInformation(self.selectedDevice) def chooseDevice(self): self["output"].setText("") self.dict = {} self.hasPotentialFailure = False self.showAttr = True self.selectedDevice = None self.chooseMenuList.show() def pageUp(self): if self.selectedDevice: self["output"].pageUp() else: self.chooseMenuList.pageUp() def pageDown(self): if self.selectedDevice: self["output"].pageDown() else: self.chooseMenuList.pageDown() def left(self): pass def right(self): pass def red(self): try: text = "\n".join(str(x) for x in self.dict["INFO"]) if self.dict["DATA"]: text += "\n\n" + "\n".join(str(x) for x in self.dict["DATA"]) self["output"].setText(text) self["key_green"].setText(_("SHOW ATTR")) self.showAttr = True except: pass def green(self): try: if self.showAttr: self["output"].setText("\n".join(str(x) for x in self.dict["ATTR"])) self["key_green"].setText(_("SHOW CRITICAL ATTR")) self.showAttr = False else: self["output"].setText("\n".join(str(x) for x in self.dict["FATTR"])) self["key_green"].setText(_("SHOW ATTR")) self.showAttr = True except: pass def yellow(self): pass def blue(self): pass def getDevices(self): self.devices = [] self.devicesMenu = [] mounted = open("/proc/mounts","r") for part in mounted: words = part.split() if words[0].startswith("/dev/sd"): device = words[0] device = device[0:8] if not device in self.devices: self.devices.append( device ) self.devicesMenu.append( ChoiceEntryComponent(key=device, text=[device]) ) def getSmartCtlInformation(self,device): cmd = '/usr/sbin/smartctl -x %s' % (device,) self.console.ePopen(cmd, self.cmdSmartctlFinished) def cmdSmartctlFinished(self, result, retval, extra=None): self.parseSmartInfo(result) self.red() def parseInfoSection(self,line): words = map(str.strip,line.split(":")) if len(words) == 2: self.dict["INFO"].append(words) def parseAttrSection(self,line): self.dict["ATTR"].append(line) try: id = int(line[0:3].strip()) if id in (5,10,183,184,187,188,196,197,198,201,230): raw_value = int(line[61:].strip()) if raw_value > 0: self.hasPotentialFailure = True self.dict["FATTR"].append(line) except: self.dict["FATTR"].append(line) def parseAttrSectionTest(self,line): try: id = line[0:3].strip() attribute = line[4:27].strip() flags = line[28:36].strip() value = line[37:42].strip() worst = line[43:48].strip() tresh = line[49:55].strip() fail = line[56:60].strip() raw_value = line[61:].strip() if int(id) > 0: self.dict["ATTR"].append([id,attribute,flags,value,worst,tresh,fail,raw_value]) except: pass def parseSmartInfo(self,smartInfo): section = False for line in smartInfo.split("\n"): if not line.strip(): section = False if section == "INFO": # self.parseInfoSection(line) self.dict["INFO"].append(line) elif section == "DATA": # self.parseInfoSection(line) self.dict["DATA"].append(line) elif section == "ATTR": self.parseAttrSection(line) if "START OF INFORMATION SECTION" in line: section = "INFO" self.dict["INFO"] = [] if "START OF READ SMART DATA SECTION" in line: section = "DATA" self.dict["DATA"] = [] if "Vendor Specific SMART Attributes" in line: section = "ATTR" self.dict["ATTR"] = [] self.dict["FATTR"] = [] try: if self.hasPotentialFailure: self.dict["FATTR"].append("\nHDD has potential indicators of imminent electromechanical failure") else: self.dict["FATTR"].append("\nHDD seems ok.") except: pass
def __init__(self, session,menu_path=""): Screen.__init__(self, session) self.skinName = "MultiBoot" screentitle = _("Multiboot image manager") self.menu_path = menu_path if config.usage.show_menupath.value == 'large': self.menu_path += screentitle title = self.menu_path self["menu_path_compressed"] = StaticText("") self.menu_path += ' / ' elif config.usage.show_menupath.value == 'small': title = screentitle condtext = "" if self.menu_path and not self.menu_path.endswith(' / '): condtext = self.menu_path + " >" elif self.menu_path: condtext = self.menu_path[:-3] + " >" self["menu_path_compressed"] = StaticText(condtext) self.menu_path += screentitle + ' / ' else: title = screentitle self["menu_path_compressed"] = StaticText("") Screen.setTitle(self, title) self.title = screentitle if SystemInfo["HasHiSi"] and not pathExists('/dev/sda4'): self["key_red"] = StaticText(_("Cancel")) self["labe14"] = StaticText(_("Press Init to format SDcard.")) self["labe15"] = StaticText("") self["key_yellow"] = StaticText(_("Init SDcard")) self["config"] = ChoiceList(list=[ChoiceEntryComponent('',((""), "Queued"))]) self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "DirectionActions", "KeyboardInputActions", "MenuActions"], { "red": boundFunction(self.close, None), "yellow": self.format, "ok": self.erase, "cancel": boundFunction(self.close, None), "up": self.keyUp, "down": self.keyDown, "left": self.keyLeft, "right": self.keyRight, "upRepeated": self.keyUp, "downRepeated": self.keyDown, "leftRepeated": self.keyLeft, "rightRepeated": self.keyRight, "menu": boundFunction(self.close, True), }, -1) else: self["key_red"] = StaticText(_("Cancel")) self["labe14"] = StaticText(_("Use the cursor keys to select an installed image and then Erase button.")) self["labe15"] = StaticText(_("Note: slot list does not show current image or empty slots.")) self["key_green"] = StaticText(_("Erase")) if SystemInfo["HasHiSi"]: self["key_yellow"] = StaticText(_("Init SDcard")) else: self["key_yellow"] = StaticText("") self["config"] = ChoiceList(list=[ChoiceEntryComponent('',((_("Retrieving image slots - Please wait...")), "Queued"))]) imagedict = [] self.getImageList = None self.startit() self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "DirectionActions", "KeyboardInputActions", "MenuActions"], { "red": boundFunction(self.close, None), "green": self.erase, "yellow": self.format, "ok": self.erase, "cancel": boundFunction(self.close, None), "up": self.keyUp, "down": self.keyDown, "left": self.keyLeft, "right": self.keyRight, "upRepeated": self.keyUp, "downRepeated": self.keyDown, "leftRepeated": self.keyLeft, "rightRepeated": self.keyRight, "menu": boundFunction(self.close, True), }, -1) self.onLayoutFinish.append(self.layoutFinished)
def __init__(self, session, title='', list=None, keys=None, selection=0, skin_name=None, text=''): self.setTitle(_('Choice Box')) if not list: list = [] if not skin_name: skin_name = [] Screen.__init__(self, session) if isinstance(skin_name, str): skin_name = [skin_name] self.skinName = skin_name + ['ChoiceBox'] self['text'] = Label() if title: title = _(title) if len(title) < 55 and title.find('\n') == -1: Screen.setTitle(self, title) elif title.find('\n') != -1: temptext = title.split('\n') if len(temptext[0]) < 55: Screen.setTitle(self, temptext[0]) count = 2 labeltext = '' while len(temptext) >= count: if labeltext: labeltext += '\n' labeltext = labeltext + temptext[count - 1] count += 1 print 'count', count self['text'].setText(labeltext) else: self['text'] = Label(title) else: self['text'] = Label(title) elif text: self['text'] = Label(_(text)) self.list = [] self.summarylist = [] if keys is None: self.__keys = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'red', 'green', 'yellow', 'blue' ] + (len(list) - 10) * [''] else: self.__keys = keys + (len(list) - len(keys)) * [''] self.keymap = {} pos = 0 for x in list: strpos = str(self.__keys[pos]) self.list.append(ChoiceEntryComponent(key=strpos, text=x)) if self.__keys[pos] != '': self.keymap[self.__keys[pos]] = list[pos] self.summarylist.append((self.__keys[pos], x[0])) pos += 1 self['list'] = ChoiceList(list=self.list, selection=selection) self['summary_list'] = StaticText() self['summary_selection'] = StaticText() self.updateSummary(selection) self['actions'] = NumberActionMap( ['WizardActions', 'InputActions', 'ColorActions'], { 'ok': self.go, '1': self.keyNumberGlobal, '2': self.keyNumberGlobal, '3': self.keyNumberGlobal, '4': self.keyNumberGlobal, '5': self.keyNumberGlobal, '6': self.keyNumberGlobal, '7': self.keyNumberGlobal, '8': self.keyNumberGlobal, '9': self.keyNumberGlobal, '0': self.keyNumberGlobal, 'red': self.keyRed, 'green': self.keyGreen, 'yellow': self.keyYellow, 'blue': self.keyBlue, 'up': self.up, 'down': self.down, 'left': self.left, 'right': self.right }, -1) self['cancelaction'] = NumberActionMap( ['WizardActions', 'InputActions', 'ColorActions'], {'back': self.cancel}, -1)
def __init__(self, session, *args): Screen.__init__(self, session) HelpableScreen.__init__(self) Screen.setTitle(self, _("MultiBoot Manager")) self["slotlist"] = ChoiceList([ ChoiceEntryComponent( "", (_("Loading slot information, please wait..."), "Loading")) ]) self["description"] = Label( _("Press the UP/DOWN buttons to select a slot and press OK or GREEN to 'Reboot' to that image. If available, YELLOW will either 'Delete' or 'Wipe' the image. A 'Deleted' image can be 'Restored' with the BLUE button. A 'Wiped' image is completely removed can NOT be restored!" )) self["key_red"] = StaticText(_("Cancel")) self["key_green"] = StaticText(_("Reboot")) self["key_yellow"] = StaticText() self["key_blue"] = StaticText() self["actions"] = HelpableActionMap( self, ["CancelActions", "NavigationActions"], { "cancel": (self.cancel, _("Cancel the slot selection and exit")), "close": (self.closeRecursive, _("Cancel the slot selection and exit all menus")), "top": (self.keyTop, _("Move to first line / screen")), # "pageUp": (self.keyTop, _("Move up a screen")), "up": (self.keyUp, _("Move up a line")), # "left": (self.keyUp, _("Move up a line")), # "right": (self.keyDown, _("Move down a line")), "down": (self.keyDown, _("Move down a line")), # "pageDown": (self.keyBottom, _("Move down a screen")), "bottom": (self.keyBottom, _("Move to last line / screen")) }, prio=0, description=_("MultiBoot Manager Actions")) self["restartActions"] = HelpableActionMap( self, ["OkSaveActions"], { "save": (self.reboot, _("Select the highlighted slot and reboot")), "ok": (self.reboot, _("Select the highlighted slot and reboot")), }, prio=0, description=_("MultiBoot Manager Actions")) self["restartActions"].setEnabled(False) self["deleteActions"] = HelpableActionMap( self, ["ColorActions"], { "yellow": (self.deleteImage, _("Delete or Wipe the highlighted slot")) }, prio=0, description=_("MultiBoot Manager Actions")) self["deleteActions"].setEnabled(False) self["restoreActions"] = HelpableActionMap( self, ["ColorActions"], {"blue": (self.restoreImage, _("Restore the highlighted slot"))}, prio=0, description=_("MultiBoot Manager Actions")) self["restoreActions"].setEnabled(False) self.onLayoutFinish.append(self.layoutFinished) self.initialize = True self.callLater(self.getImagesList)
def __init__(self, session, text=None, list=None, keys=None, selection=0, skinName=None, windowTitle=None, title=None, skin_name=None): Screen.__init__(self, session) HelpableScreen.__init__(self) if title is not None: # Process legacy title argument. text = title if text is None: text = "" self.text = text self["text"] = Label(text) if list is None: list = [] if keys is None: keys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue" ] self.inputKeys = keys + (len(list) - len(keys)) * ["dummy"] pos = 0 self.list = [] self.keyMap = {} for item in list: if item: self.list.append( ChoiceEntryComponent(key=str(self.inputKeys[pos]), text=item)) if self.inputKeys[pos] != "": self.keyMap[self.inputKeys[pos]] = list[pos] pos += 1 self["list"] = ChoiceList(list=self.list, selection=selection) if skin_name is not None: # Process legacy skin_name argument. skinName = skin_name self.skinName = ["ChoiceBox"] if skinName: if isinstance(skinName, str): self.skinName.insert(0, skinName) else: self.skinName = skinName + self.skinName self["actions"] = HelpableNumberActionMap( self, [ "ChoiceBoxActions", "NumberActions", "ColorActions", "NavigationActions" ], { "cancel": (self.keyCancel, _("Cancel the action selection and exit")), "select": (self.keySelect, _("Run the currently highlighted action")), "1": (self.keyNumberGlobal, _("Run the numbered action")), "2": (self.keyNumberGlobal, _("Run the numbered action")), "3": (self.keyNumberGlobal, _("Run the numbered action")), "4": (self.keyNumberGlobal, _("Run the numbered action")), "5": (self.keyNumberGlobal, _("Run the numbered action")), "6": (self.keyNumberGlobal, _("Run the numbered action")), "7": (self.keyNumberGlobal, _("Run the numbered action")), "8": (self.keyNumberGlobal, _("Run the numbered action")), "9": (self.keyNumberGlobal, _("Run the numbered action")), "0": (self.keyNumberGlobal, _("Run the numbered action")), "red": (self.keyRed, _("Run the RED action")), "green": (self.keyGreen, _("Run the GREEN action")), "yellow": (self.keyYellow, _("Run the YELLOW action")), "blue": (self.keyBlue, _("Run the BLUE action")), "top": (self.top, _("Move to first line")), "pageUp": (self.pageUp, _("Move up a page")), "up": (self.up, _("Move up a line")), # "first": (self.top, _("Move to first line")), # "left": (self.pageUp, _("Move up a page")), # "right": (self.pageDown, _("Move down a page")), # "last": (self.bottom, _("Move to last line")), "down": (self.down, _("Move down a line")), "pageDown": (self.pageDown, _("Move down a page")), "bottom": (self.bottom, _("Move to last line")) }, prio=-2, description=_("Choice Box Actions")) self.setTitle(windowTitle or _("Select")) self.onLayoutFinish.append(self.layoutFinished)
def __init__(self, session, title="", list=None, keys=None, selection=0, skin_name=None, text="", windowTitle = None, allow_cancel = True, titlebartext = _("Choice Box")): if not windowTitle: #for compatibility windowTitle = titlebartext if not list: list = [] if not skin_name: skin_name = [] Screen.__init__(self, session) self.allow_cancel = allow_cancel if isinstance(skin_name, str): skin_name = [skin_name] self.skinName = skin_name + ["ChoiceBox"] self["text"] = Label() self.var = "" if skin_name and 'SoftwareUpdateChoices' in skin_name and var and var in ('unstable', 'updating', 'stable', 'unknown'): self.var = var self['feedStatusMSG'] = Label() self['tl_off'] = Pixmap() self['tl_red'] = Pixmap() self['tl_yellow'] = Pixmap() self['tl_green'] = Pixmap() if title: title = _(title) if len(title) < 55 and title.find('\n') == -1: Screen.setTitle(self, title) elif title.find('\n') != -1: temptext = title.split('\n') if len(temptext[0]) < 55: Screen.setTitle(self, temptext[0]) count = 2 labeltext = "" while len(temptext) >= count: if labeltext: labeltext += '\n' labeltext = labeltext + temptext[count-1] count += 1 print 'count',count self["text"].setText(labeltext) else: self["text"] = Label(title) else: self["text"] = Label(title) elif text: self["text"] = Label(_(text)) self.list = [] self.summarylist = [] if keys is None: self.__keys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue", "text" ] + (len(list) - 10) * [""] else: self.__keys = keys + (len(list) - len(keys)) * [""] self.keymap = {} pos = 0 for x in list: strpos = str(self.__keys[pos]) self.list.append(ChoiceEntryComponent(key = strpos, text = x)) if self.__keys[pos] != "": self.keymap[self.__keys[pos]] = list[pos] self.summarylist.append((self.__keys[pos], x[0])) pos += 1 self["windowtitle"] = Label(_(windowTitle)) self["list"] = ChoiceList(list = self.list, selection = selection) self["summary_list"] = StaticText() self["summary_selection"] = StaticText() self.updateSummary(selection) self["actions"] = NumberActionMap(["WizardActions", "InputActions", "ColorActions"], { "ok": self.go, "1": self.keyNumberGlobal, "2": self.keyNumberGlobal, "3": self.keyNumberGlobal, "4": self.keyNumberGlobal, "5": self.keyNumberGlobal, "6": self.keyNumberGlobal, "7": self.keyNumberGlobal, "8": self.keyNumberGlobal, "9": self.keyNumberGlobal, "0": self.keyNumberGlobal, "red": self.keyRed, "green": self.keyGreen, "yellow": self.keyYellow, "blue": self.keyBlue, "text": self.keyText, "up": self.up, "down": self.down, "left": self.left, "right": self.right }, -1) self["cancelaction"] = NumberActionMap(["WizardActions", "InputActions", "ColorActions"], { "back": self.cancel, }, -1) self.onShown.append(self.onshow)
def __init__(self, session, title="", list=[], keys=None, selection=0, skin_name=[], extEntry=None): Screen.__init__(self, session) if isinstance(skin_name, str): skin_name = [skin_name] self.skinName = skin_name + ["ChoiceBox"] if title: title = _(title) # [iq try: if skin_name[0] == "ExtensionsList": from Components.Network import iNetwork from Components.config import ConfigIP, NoSave self.local_ip = NoSave( ConfigIP( default=iNetwork.getAdapterAttribute("eth0", "ip"))) if self.local_ip.getText() is not None: self["text"] = Label("IP: getting...\n" + "Local IP: " + self.local_ip.getText()) else: self["text"] = Label("IP: getting...\n" + "Local IP: getting...") else: if len(title) < 55: Screen.setTitle(self, title) self["text"] = Label("") else: self["text"] = Label(title) except: # iq] if len(title) < 55: Screen.setTitle(self, title) self["text"] = Label("") else: self["text"] = Label(title) self.list = [] self.extEntry = extEntry # [iq] self.summarylist = [] if keys is None: self.__keys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue" ] + (len(list) - 10) * [""] else: self.__keys = keys + (len(list) - len(keys)) * [""] self.keymap = {} pos = 0 for x in list: strpos = str(self.__keys[pos]) self.list.append(ChoiceEntryComponent(key=strpos, text=x)) if self.__keys[pos] != "": self.keymap[self.__keys[pos]] = list[pos] self.summarylist.append((self.__keys[pos], x[0])) pos += 1 self["list"] = ChoiceList(list=self.list, selection=selection) self["summary_list"] = StaticText() self["summary_selection"] = StaticText() self.updateSummary(selection) # self["actions"] = NumberActionMap(["WizardActions", "InputActions", "ColorActions", "DirectionActions"], self["actions"] = NumberActionMap( [ "WizardActions", "InputActions", "ColorActions", "DirectionActions", "InfobarChannelSelection" ], { "ok": self.go, "back": self.cancel, "1": self.keyNumberGlobal, "2": self.keyNumberGlobal, "3": self.keyNumberGlobal, "4": self.keyNumberGlobal, "5": self.keyNumberGlobal, "6": self.keyNumberGlobal, "7": self.keyNumberGlobal, "8": self.keyNumberGlobal, "9": self.keyNumberGlobal, "0": self.keyNumberGlobal, "red": self.keyRed, "green": self.keyGreen, "yellow": self.keyYellow, "blue": self.keyBlue, "up": self.up, "down": self.down, # [iq "openSatellites": self.extEntryReady, "menu": self.extEntryGo, # iq] }, -1) # [iq self.extEntryExecuted = -1 try: if skin_name[0] == "ExtensionsList": self.StaticIPTimer = enigma.eTimer() self.StaticIPTimer.callback.append(self.iptimeout) self.iptimeout() except: pass
def __init__(self, session, key, args=None): Screen.__init__(self, session) self.session = session self.key = key self.setTitle(_("Hotkey Setup") + " " + key[0][0]) self["key_red"] = StaticText(_("Cancel")) self["key_green"] = StaticText(_("Save")) self["key_yellow"] = StaticText("") self["h_prev"] = Pixmap() self["h_next"] = Pixmap() self.mode = "list" self.hotkeyFunctions = getHotkeyFunctions() self.config = eval("config.misc.hotkey." + key[0][1]) self.expanded = [] self.selected = [] for x in self.config.value.split(','): if x.startswith("ZapPanic"): self.selected.append( ChoiceEntryComponent( '', ((_("Panic to") + " " + ServiceReference( eServiceReference(x.split( "/", 1)[1]).toString()).getServiceName()), x))) elif x.startswith("Zap"): self.selected.append( ChoiceEntryComponent( '', ((_("Zap to") + " " + ServiceReference( eServiceReference(x.split( "/", 1)[1]).toString()).getServiceName()), x))) else: function = list(function for function in self.hotkeyFunctions if function[1] == x) if function: self.selected.append( ChoiceEntryComponent( '', ((function[0][0]), function[0][1]))) self.prevselected = self.selected[:] if self.prevselected: self["key_yellow"].setText(_("Edit selection")) self["choosen"] = ChoiceList(list=self.selected, selection=0) self["list"] = ChoiceList(list=self.getFunctionList(), selection=0) self["actions"] = ActionMap( [ "OkCancelActions", "ColorActions", "DirectionActions", "KeyboardInputActions", "MenuActions" ], { "ok": self.keyOk, "cancel": self.cancel, "red": self.cancel, "green": self.save, "yellow": self.toggleMode, "up": self.keyUp, "down": self.keyDown, "left": self.keyLeft, "right": self.keyRight, "upRepeated": self.keyUp, "downRepeated": self.keyDown, "leftRepeated": self.keyLeft, "rightRepeated": self.keyRight, "pageUp": self.toggleMode, "pageDown": self.toggleMode, "moveUp": self.moveUp, "moveDown": self.moveDown, "menu": boundFunction(self.close, True), }, -1) self.showPrevNext() self.onLayoutFinish.append(self.__layoutFinished)
def __init__(self, session, menu_path=""): Screen.__init__(self, session) Screen.setTitle(self, _("MultiBoot Image Manager")) if SystemInfo["HasSDmmc"] and not pathExists('/dev/sda4'): self["key_red"] = StaticText(_("Cancel")) self["description"] = StaticText(_("Press Init to format SDcard.")) self["options"] = StaticText("") self["key_yellow"] = StaticText(_("Init SDcard")) self["config"] = ChoiceList( list=[ChoiceEntryComponent('', ((""), "Queued"))]) self["actions"] = ActionMap( [ "OkCancelActions", "ColorActions", "DirectionActions", "KeyboardInputActions", "MenuActions" ], { "red": boundFunction(self.close, None), "yellow": self.format, "ok": self.erase, "cancel": boundFunction(self.close, None), "up": self.keyUp, "down": self.keyDown, "left": self.keyLeft, "right": self.keyRight, "upRepeated": self.keyUp, "downRepeated": self.keyDown, "leftRepeated": self.keyLeft, "rightRepeated": self.keyRight, "menu": boundFunction(self.close, True), }, -1) else: self["key_red"] = StaticText(_("Cancel")) self["description"] = StaticText( _("Use the cursor keys to select an installed image and then Erase button." )) self["options"] = StaticText( _("Note: slot list does not show current image or empty slots." )) self["key_green"] = StaticText(_("Erase")) if SystemInfo["HasSDmmc"]: self["key_yellow"] = StaticText(_("Init SDcard")) else: self["key_yellow"] = StaticText("") self["config"] = ChoiceList(list=[ ChoiceEntryComponent('', ( (_("Retrieving image slots - Please wait...")), "Queued")) ]) imagedict = [] self.getImageList = None self.startit() self["actions"] = ActionMap( [ "OkCancelActions", "ColorActions", "DirectionActions", "KeyboardInputActions", "MenuActions" ], { "red": boundFunction(self.close, None), "green": self.erase, "yellow": self.format, "ok": self.erase, "cancel": boundFunction(self.close, None), "up": self.keyUp, "down": self.keyDown, "left": self.keyLeft, "right": self.keyRight, "upRepeated": self.keyUp, "downRepeated": self.keyDown, "leftRepeated": self.keyLeft, "rightRepeated": self.keyRight, "menu": boundFunction(self.close, True), }, -1) self.onLayoutFinish.append(self.layoutFinished)
title = menu_path self["menu_path_compressed"] = StaticText("") elif config.usage.show_menupath.value == 'small': title = screentitle self["menu_path_compressed"] = StaticText(menu_path + " >" if not menu_path.endswith(' / ') else menu_path[:-3] + " >" or "") else: title = screentitle self["menu_path_compressed"] = StaticText("") Screen.setTitle(self, title) self['description'] = Label(_('On your remote, click on the button you want to change')) self.session = session self.list = [] self.ButtonSetupFunctions = getButtonSetupFunctions() for x in ButtonSetupKeys: self.list.append(ChoiceEntryComponent('',(_(x[0]), x[1]))) self["list"] = ChoiceList(list=self.list[:config.misc.ButtonSetup.additional_keys.value and len(ButtonSetupKeys) or 10], selection = 0) self["choosen"] = ChoiceList(list=[]) self.getFunctions() self["actions"] = ActionMap(["OkCancelActions"], { "cancel": self.close, }, -1) self["ButtonSetupButtonActions"] = ButtonSetupActionMap(["ButtonSetupActions"], dict((x[1], self.ButtonSetupGlobal) for x in ButtonSetupKeys)) self.longkeyPressed = False self.onLayoutFinish.append(self.__layoutFinished) self.onExecBegin.append(self.getFunctions) self.onShown.append(self.disableKeyMap) self.onClose.append(self.enableKeyMap) def __layoutFinished(self): self["choosen"].selectionEnabled(0)
def __init__(self, session, key, args=None): Screen.__init__(self, session) self['description'] = Label( _('Select the desired function and click on OK to assign it. Use CH+/- to toggle between the lists. Select an assigned function and click on OK to de-assign it.' )) self.skinName = "ButtonSetupSelect" self.session = session self.key = key self.setTitle(_("Hotkey Setup") + " " + key[0][0]) self["key_red"] = Button(_("Cancel")) self["key_green"] = Button(_("Save")) self.mode = "list" self.hotkeyFunctions = getHotkeyFunctions() self.config = eval("config.misc.hotkey." + key[0][1]) self.expanded = [] self.selected = [] for x in self.config.value.split(','): if x.startswith("ZapPanic"): self.selected.append( ChoiceEntryComponent( '', ((_("Panic to") + " " + ServiceReference( eServiceReference(x.split( "/", 1)[1]).toString()).getServiceName()), x))) elif x.startswith("Zap"): self.selected.append( ChoiceEntryComponent( '', ((_("Zap to") + " " + ServiceReference( eServiceReference(x.split( "/", 1)[1]).toString()).getServiceName()), x))) else: function = list(function for function in self.hotkeyFunctions if function[1] == x) if function: self.selected.append( ChoiceEntryComponent( '', ((function[0][0]), function[0][1]))) self.prevselected = self.selected[:] self["choosen"] = ChoiceList(list=self.selected, selection=0) self["list"] = ChoiceList(list=self.getFunctionList(), selection=0) self["actions"] = ActionMap( [ "OkCancelActions", "ColorActions", "DirectionActions", "KeyboardInputActions" ], { "ok": self.keyOk, "cancel": self.cancel, "red": self.cancel, "green": self.save, "up": self.keyUp, "down": self.keyDown, "left": self.keyLeft, "right": self.keyRight, "upRepeated": self.keyUp, "downRepeated": self.keyDown, "leftRepeated": self.keyLeft, "rightRepeated": self.keyRight, "pageUp": self.toggleMode, "pageDown": self.toggleMode, "moveUp": self.moveUp, "moveDown": self.moveDown }, -1) self.onLayoutFinish.append(self.__layoutFinished)
def __init__(self, session, title='', list=None, keys=None, selection=0, skin_name=None, text='', reorderConfig='', var=''): if not list: list = [] if not skin_name: skin_name = [] Screen.__init__(self, session) if isinstance(skin_name, str): skin_name = [skin_name] self.skinName = skin_name + ['ChoiceBox'] self.reorderConfig = reorderConfig self['text'] = Label() self.var = '' if skin_name and 'SoftwareUpdateChoices' in skin_name and var and var in ( 'unstable', 'updating', 'stable', 'unknown'): self.var = var self['feedStatusMSG'] = Label() self['tl_off'] = Pixmap() self['tl_red'] = Pixmap() self['tl_yellow'] = Pixmap() self['tl_green'] = Pixmap() if title: title = _(title) if len(title) < 55 and title.find('\n') == -1: Screen.setTitle(self, title) elif title.find('\n') != -1: temptext = title.split('\n') if len(temptext[0]) < 55: Screen.setTitle(self, temptext[0]) count = 2 labeltext = '' while len(temptext) >= count: if labeltext: labeltext += '\n' labeltext = labeltext + temptext[count - 1] count += 1 print 'count', count self['text'].setText(labeltext) else: self['text'] = Label(title) else: self['text'] = Label(title) elif text: self['text'] = Label(_(text)) self.list = [] self.summarylist = [] if keys is None: self.__keys = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'red', 'green', 'yellow', 'blue' ] + (len(list) - 14) * [''] else: self.__keys = keys + (len(list) - len(keys)) * [''] self.keymap = {} pos = 0 if self.reorderConfig: self.config_type = eval('config.misc.pluginlist.' + self.reorderConfig) if self.config_type.value: prev_list = zip(list, self.__keys) new_list = [] for x in self.config_type.value.split(','): for entry in prev_list: if entry[0][0] == x: new_list.append(entry) prev_list.remove(entry) list = zip(*(new_list + prev_list)) list, self.__keys = list[0], list[1] number = 1 new_keys = [] for x in self.__keys: if (not x or x.isdigit()) and number <= 10: new_keys.append(str(number % 10)) number += 1 else: new_keys.append(not x.isdigit() and x or '') self.__keys = new_keys for x in list: strpos = str(self.__keys[pos]) self.list.append(ChoiceEntryComponent(key=strpos, text=x)) if self.__keys[pos] != '': self.keymap[self.__keys[pos]] = list[pos] self.summarylist.append((self.__keys[pos], x[0])) pos += 1 self['list'] = ChoiceList(list=self.list, selection=selection) self['summary_list'] = StaticText() self['summary_selection'] = StaticText() self.updateSummary(selection) self['actions'] = NumberActionMap( [ 'WizardActions', 'InputActions', 'ColorActions', 'DirectionActions', 'MenuActions' ], { 'ok': self.go, '1': self.keyNumberGlobal, '2': self.keyNumberGlobal, '3': self.keyNumberGlobal, '4': self.keyNumberGlobal, '5': self.keyNumberGlobal, '6': self.keyNumberGlobal, '7': self.keyNumberGlobal, '8': self.keyNumberGlobal, '9': self.keyNumberGlobal, '0': self.keyNumberGlobal, 'red': self.keyRed, 'green': self.keyGreen, 'yellow': self.keyYellow, 'blue': self.keyBlue, 'up': self.up, 'down': self.down, 'left': self.left, 'right': self.right, 'shiftUp': self.additionalMoveUp, 'shiftDown': self.additionalMoveDown, 'menu': self.setDefaultChoiceList }, -1) self['cancelaction'] = NumberActionMap( ['WizardActions', 'InputActions', 'ColorActions'], {'back': self.cancel}, -1) self.onShown.append(self.onshow) return