diff options
| author | acid-burn <acidburn@opendreambox.org> | 2009-10-13 07:56:33 +0200 |
|---|---|---|
| committer | acid-burn <acidburn@opendreambox.org> | 2009-10-13 07:56:33 +0200 |
| commit | 94c1b09ff6293557b0bceda29ff9116ba2a434ae (patch) | |
| tree | c2db5ce12682c8b85d8a0633b3e58fcbbb6e44cf /lib/python/Plugins/Extensions | |
| parent | 8e60500bc801b141d213c78c03b1f45a56946ad7 (diff) | |
| download | enigma2-94c1b09ff6293557b0bceda29ff9116ba2a434ae.tar.gz enigma2-94c1b09ff6293557b0bceda29ff9116ba2a434ae.zip | |
MediaPlayer/settings.py: - use "Setup" Skin for MediaPlayerSettings but still allow individual skinning over own Skin entry "MediaPlayerSettings"
- use "FileBrowser" Skin for DirectoryBrowser but still allow individual skinning over own Skin entry "MediaPlayerDirectoryBrowser"
- add SetupSummary
- fix crash when selecting a mountpoint as start directory inside DirectoryBrowser
Diffstat (limited to 'lib/python/Plugins/Extensions')
| -rwxr-xr-x | lib/python/Plugins/Extensions/MediaPlayer/settings.py | 63 |
1 files changed, 39 insertions, 24 deletions
diff --git a/lib/python/Plugins/Extensions/MediaPlayer/settings.py b/lib/python/Plugins/Extensions/MediaPlayer/settings.py index 5f9ce7cd..0b95812f 100755 --- a/lib/python/Plugins/Extensions/MediaPlayer/settings.py +++ b/lib/python/Plugins/Extensions/MediaPlayer/settings.py @@ -1,7 +1,7 @@ from Screens.Screen import Screen from Screens.HelpMenu import HelpableScreen -from Components.Label import Label from Components.FileList import FileList +from Components.Sources.StaticText import StaticText from Components.MediaPlayer import PlayList from Components.config import config, getConfigListEntry, ConfigSubsection, configfile, ConfigText, ConfigYesNo, ConfigDirectory from Components.ConfigList import ConfigListScreen @@ -14,19 +14,14 @@ config.mediaplayer.saveDirOnExit = ConfigYesNo(default=False) config.mediaplayer.defaultDir = ConfigDirectory() class DirectoryBrowser(Screen, HelpableScreen): - skin = """ - <screen name="DirectoryBrowser" position="center,center" size="560,400" title="Directory browser" > - <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" /> - <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" /> - <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" /> - <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" /> - <widget name="filelist" position="5,50" size="550,350" scrollbarMode="showOnDemand" /> - </screen>""" + def __init__(self, session, currDir): - from Components.Sources.StaticText import StaticText Screen.__init__(self, session) + # for the skin: first try MediaPlayerDirectoryBrowser, then FileBrowser, this allows individual skinning + self.skinName = ["MediaPlayerDirectoryBrowser", "FileBrowser" ] + HelpableScreen.__init__(self) - + self["key_red"] = StaticText(_("Cancel")) self["key_green"] = StaticText(_("Use")) @@ -40,36 +35,39 @@ class DirectoryBrowser(Screen, HelpableScreen): "ok": self.ok, "cancel": self.exit }) + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("Directory browser")) def ok(self): if self.filelist.canDescent(): self.filelist.descent() def use(self): - if self.filelist.canDescent() and self["filelist"].getFilename() and len(self["filelist"].getFilename()) > len(self["filelist"].getCurrentDirectory()): - self.filelist.descent() - self.close(self["filelist"].getCurrentDirectory()) + if self["filelist"].getCurrentDirectory() is not None: + if self.filelist.canDescent() and self["filelist"].getFilename() and len(self["filelist"].getFilename()) > len(self["filelist"].getCurrentDirectory()): + self.filelist.descent() + self.close(self["filelist"].getCurrentDirectory()) + else: + self.close(self["filelist"].getFilename()) def exit(self): self.close(False) class MediaPlayerSettings(Screen,ConfigListScreen): - skin = """ - <screen name="MediaPlayerSettings" position="center,center" size="560,300" title="Edit settings"> - <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" /> - <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" /> - <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" /> - <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" /> - <widget name="config" position="5,50" size="550,250" /> - </screen>""" def __init__(self, session, parent): - from Components.Sources.StaticText import StaticText Screen.__init__(self, session) + # for the skin: first try MediaPlayerSettings, then Setup, this allows individual skinning + self.skinName = ["MediaPlayerSettings", "Setup" ] + self.setup_title = _("Edit settings") + self.onChangedEntry = [ ] + self["key_red"] = StaticText(_("Cancel")) self["key_green"] = StaticText(_("Save")) - ConfigListScreen.__init__(self, []) + ConfigListScreen.__init__(self, [], session = session, on_change = self.changedEntry) self.parent = parent self.initConfigList() config.mediaplayer.saveDirOnExit.addNotifier(self.initConfigList) @@ -82,6 +80,9 @@ class MediaPlayerSettings(Screen,ConfigListScreen): "ok": self.ok, }, -2) + def layoutFinished(self): + self.setTitle(self.setup_title) + def initConfigList(self, element=None): print "[initConfigList]", element try: @@ -115,3 +116,17 @@ class MediaPlayerSettings(Screen,ConfigListScreen): def cancel(self): self.close() + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].getText()) + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary |
