Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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"))
Beispiel #6
0
    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)
Beispiel #7
0
    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)
Beispiel #8
0
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
Beispiel #9
0
	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)
Beispiel #10
0
    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)
Beispiel #11
0
 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)
Beispiel #13
0
	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)
Beispiel #14
0
    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
Beispiel #15
0
    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)
Beispiel #16
0
    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)
Beispiel #17
0
			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)
Beispiel #18
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)
Beispiel #19
0
    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