1 from Screens.Screen import Screen
2 from Screens.HelpMenu import HelpableScreen
3 from Components.Label import Label
4 from Components.FileList import FileList
5 from Components.MediaPlayer import PlayList
6 from Components.config import config, getConfigListEntry, ConfigSubsection, configfile, ConfigText, ConfigYesNo, ConfigDirectory
7 from Components.ConfigList import ConfigListScreen
8 from Components.ActionMap import ActionMap
10 config.mediaplayer = ConfigSubsection()
11 config.mediaplayer.repeat = ConfigYesNo(default=False)
12 config.mediaplayer.savePlaylistOnExit = ConfigYesNo(default=True)
13 config.mediaplayer.saveDirOnExit = ConfigYesNo(default=False)
14 config.mediaplayer.defaultDir = ConfigDirectory()
16 class DirectoryBrowser(Screen, HelpableScreen):
18 <screen name="DirectoryBrowser" position="160,62" size="450,376" title="Directory browser" >
19 <ePixmap pixmap="skin_default/buttons/red.png" position="10,0" size="140,40" alphatest="on" />
20 <ePixmap pixmap="skin_default/buttons/green.png" position="300,0" size="140,40" alphatest="on" />
21 <widget source="key_red" render="Label" position="10,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
22 <widget source="key_green" render="Label" position="300,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
23 <widget name="filelist" position="0,44" size="440,322" scrollbarMode="showOnDemand" />
25 def __init__(self, session, currDir):
26 from Components.Sources.StaticText import StaticText
27 Screen.__init__(self, session)
28 HelpableScreen.__init__(self)
30 self["key_red"] = StaticText(_("Cancel"))
31 self["key_green"] = StaticText(_("Use"))
33 self.filelist = FileList(currDir, matchingPattern="")
34 self["filelist"] = self.filelist
36 self["FilelistActions"] = ActionMap(["SetupActions", "ColorActions"],
45 if self.filelist.canDescent():
46 self.filelist.descent()
49 if self.filelist.canDescent() and self["filelist"].getFilename() and len(self["filelist"].getFilename()) > len(self["filelist"].getCurrentDirectory()):
50 self.filelist.descent()
51 self.close(self["filelist"].getCurrentDirectory())
56 class MediaPlayerSettings(Screen,ConfigListScreen):
58 <screen name="MediaPlayerSettings" position="160,150" size="450,200" title="Edit settings">
59 <ePixmap pixmap="skin_default/buttons/red.png" position="10,0" size="140,40" alphatest="on" />
60 <ePixmap pixmap="skin_default/buttons/green.png" position="300,0" size="140,40" alphatest="on" />
61 <widget source="key_red" render="Label" position="10,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
62 <widget source="key_green" render="Label" position="300,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
63 <widget name="config" position="10,44" size="430,146" />
66 def __init__(self, session, parent):
67 from Components.Sources.StaticText import StaticText
68 Screen.__init__(self, session)
69 self["key_red"] = StaticText(_("Cancel"))
70 self["key_green"] = StaticText(_("Save"))
72 ConfigListScreen.__init__(self, [])
75 config.mediaplayer.saveDirOnExit.addNotifier(self.initConfigList)
77 self["setupActions"] = ActionMap(["SetupActions", "ColorActions"],
81 "cancel": self.cancel,
85 def initConfigList(self, element=None):
86 print "[initConfigList]", element
89 self.list.append(getConfigListEntry(_("repeat playlist"), config.mediaplayer.repeat))
90 self.list.append(getConfigListEntry(_("save playlist on exit"), config.mediaplayer.savePlaylistOnExit))
91 self.list.append(getConfigListEntry(_("save last directory on exit"), config.mediaplayer.saveDirOnExit))
92 if not config.mediaplayer.saveDirOnExit.getValue():
93 self.list.append(getConfigListEntry(_("start directory"), config.mediaplayer.defaultDir))
94 self["config"].setList(self.list)
98 def changedConfigList(self):
102 if self["config"].getCurrent()[1] == config.mediaplayer.defaultDir:
103 self.session.openWithCallback(self.DirectoryBrowserClosed, DirectoryBrowser, self.parent.filelist.getCurrentDirectory())
105 def DirectoryBrowserClosed(self, path):
106 print "PathBrowserClosed:" + str(path)
108 config.mediaplayer.defaultDir.setValue(path)
111 for x in self["config"].list: