2 from Screens.Screen import Screen
3 from Components.ConfigList import ConfigListScreen
6 from Screens.Setup import SetupSummary
9 from Components.ActionMap import ActionMap
10 from Components.SelectionList import SelectionList, SelectionEntryComponent
11 from Components.Sources.StaticText import StaticText
14 from Components.config import config
16 from Components.PluginComponent import plugins
17 from Plugins.Plugin import PluginDescriptor
21 class PluginHiderSetup(Screen):
22 skin = """<screen name="PluginHiderSetup" title="PluginHider Setup" position="center,center" size="565,290">
23 <ePixmap position="0,0" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
24 <ePixmap position="140,0" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
25 <ePixmap position="280,0" size="140,40" pixmap="skin_default/buttons/yellow.png" transparent="1" alphatest="on" />
26 <ePixmap position="420,0" size="140,40" pixmap="skin_default/buttons/blue.png" transparent="1" alphatest="on" />
27 <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
28 <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
29 <widget source="key_yellow" render="Label" position="280,0" zPosition="1" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
30 <widget source="key_blue" render="Label" position="420,0" zPosition="1" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
31 <widget name="list" position="5,45" size="555,240" scrollbarMode="showOnDemand" />
34 def __init__(self, session):
35 Screen.__init__(self, session)
38 self["key_green"] = StaticText(_("OK"))
39 self["key_red"] = StaticText(_("Cancel"))
40 self["key_yellow"] = StaticText(_("Plugins"))
41 self["key_blue"] = StaticText(_("Extensions"))
43 self["list"] = SelectionList([])
44 self.selectedList = LIST_PLUGINS
47 self["ColorActions"] = ActionMap(["OkCancelActions", "ColorActions"],
49 "ok": self["list"].toggleSelection,
50 "cancel": self.cancel,
53 "yellow": self.plugins,
54 "blue": self.extensions,
58 self.onLayoutFinish.append(self.setCustomTitle)
61 config.plugins.pluginhider.hideplugins.cancel()
62 config.plugins.pluginhider.hideextensions.cancel()
67 config.plugins.pluginhider.save()
72 self.selectedList = LIST_PLUGINS
77 self.selectedList = LIST_EXTENSIONS
80 def setCustomTitle(self):
81 self.setTitle(_("PluginHider Setup"))
84 if hasattr(plugins, 'pluginHider_baseGetPlugins'):
85 fnc = plugins.pluginHider_baseGetPlugins
87 fnc = plugins.getPlugins
89 if self.selectedList == LIST_PLUGINS:
90 list = fnc([PluginDescriptor.WHERE_PLUGINMENU])
91 selected = config.plugins.pluginhider.hideplugins.value
93 list = fnc([PluginDescriptor.WHERE_EXTENSIONSMENU])
94 selected = config.plugins.pluginhider.hideextensions.value
99 if plugin.description:
100 name = "%s (%s)" % (plugin.name, plugin.description)
104 res.append(SelectionEntryComponent(
108 plugin.name in selected,
111 self["list"].setList(res)
113 self["list"].moveToIndex(0)
115 def keepCurrent(self):
116 selected = self["list"].getSelectionsList()
117 if self.selectedList == LIST_PLUGINS:
118 config.plugins.pluginhider.hideplugins.value = [x[1] for x in selected]
120 config.plugins.pluginhider.hideextensions.value = [x[1] for x in selected]