1 from Components.ActionMap import ActionMap
2 from Components.Ipkg import IpkgComponent
3 from Components.Label import Label
4 from Components.SelectionList import SelectionList
5 from Plugins.Plugin import PluginDescriptor
6 from Screens.Ipkg import Ipkg
7 from Screens.Screen import Screen
9 class IpkgInstaller(Screen):
11 <screen position="100,100" size="550,400" title="..." >
12 <widget name="red" halign="center" valign="center" position="0,0" size="140,60" backgroundColor="red" font="Regular;21" />
13 <widget name="green" halign="center" valign="center" position="140,0" text="Install selected" size="140,60" backgroundColor="green" font="Regular;21" />
14 <widget name="yellow" halign="center" valign="center" position="280,0" size="140,60" backgroundColor="yellow" font="Regular;21" />
15 <widget name="blue" halign="center" valign="center" position="420,0" size="140,60" backgroundColor="blue" font="Regular;21" />
16 <widget name="list" position="0,60" size="550,360" />
20 def __init__(self, session, list):
21 self.skin = IpkgInstaller.skin
22 Screen.__init__(self, session)
24 self.list = SelectionList()
25 self["list"] = self.list
26 for listindex in range(len(list)):
27 self.list.addSelection(list[listindex], list[listindex], listindex, True)
30 self["green"] = Label()
31 self["yellow"] = Label()
32 self["blue"] = Label()
34 self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
36 "ok": self.list.toggleSelection,
42 list = self.list.getSelectionsList()
45 cmdList.append((IpkgComponent.CMD_INSTALL, { "package": item[1] }))
47 self.session.open(Ipkg, cmdList = cmdList)
49 def filescan_open(list, session, **kwargs):
50 filelist = [x.path for x in list]
51 session.open(IpkgInstaller, filelist) # list
53 def filescan(**kwargs):
54 from Components.Scanner import Scanner, ScanPath
56 Scanner(mimetypes = ["application/x-debian-package"],
59 ScanPath(path = "ipk", with_subdirs = True),
60 ScanPath(path = "", with_subdirs = False),
63 description = "Install software updates...",
64 openfnc = filescan_open, )
66 def Plugins(**kwargs):
67 return [ PluginDescriptor(name="Ipkg", where = PluginDescriptor.WHERE_FILESCAN, fnc = filescan) ]