From 7cd404df03f85b78738c2650b45479e74e093d0b Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Fri, 14 Nov 2008 16:26:07 +0100 Subject: MediaPlayer: fix imports, introduce config and settings screen for repeat playlist, save playlist on exit and default start directory, implement file delete. this update comprises enhancements by courtesy of ralfk. fixes #46 --- .../Plugins/Extensions/MediaPlayer/settings.py | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 lib/python/Plugins/Extensions/MediaPlayer/settings.py (limited to 'lib/python/Plugins/Extensions/MediaPlayer/settings.py') diff --git a/lib/python/Plugins/Extensions/MediaPlayer/settings.py b/lib/python/Plugins/Extensions/MediaPlayer/settings.py new file mode 100644 index 00000000..594b4534 --- /dev/null +++ b/lib/python/Plugins/Extensions/MediaPlayer/settings.py @@ -0,0 +1,136 @@ +from Screens.Screen import Screen +from Screens.HelpMenu import HelpableScreen +from Components.Label import Label +from Components.FileList import FileList +from Components.MediaPlayer import PlayList +from Components.config import config, getConfigListEntry, ConfigSubsection, configfile, ConfigText, ConfigYesNo +from Components.ConfigList import ConfigListScreen +from Components.ActionMap import ActionMap + +class ConfigDirectory(ConfigText): + def __init__(self, default="", visible_width=60): + ConfigText.__init__(self, default, fixed_size = True, visible_width = visible_width) + def handleKey(self, key): + pass + def getValue(self): + if self.text == "": + return None + else: + return ConfigText.getValue(self) + def setValue(self, val): + if val == None: + val = "" + ConfigText.setValue(self, val) + def getMulti(self, selected): + if self.text == "": + return ("mtext"[1-selected:], _("List of Storage Devices"), range(0)) + else: + return ConfigText.getMulti(self, selected) + +config.mediaplayer = ConfigSubsection() +config.mediaplayer.repeat = ConfigYesNo(default=False) +config.mediaplayer.savePlaylistOnExit = ConfigYesNo(default=True) +config.mediaplayer.saveDirOnExit = ConfigYesNo(default=False) +config.mediaplayer.defaultDir = ConfigDirectory() + +class DirectoryBrowser(Screen, HelpableScreen): + skin = """ + + + + + + """ + def __init__(self, session, currDir): + from Components.Sources.StaticText import StaticText + Screen.__init__(self, session) + HelpableScreen.__init__(self) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Apply")) + + self.filelist = FileList(currDir, matchingPattern="") + self["filelist"] = self.filelist + + self["FilelistActions"] = ActionMap(["SetupActions", "ColorActions"], + { + "green": self.apply, + "red": self.exit, + "ok": self.ok, + "cancel": self.exit + }) + + def ok(self): + if self.filelist.canDescent(): + self.filelist.descent() + + def apply(self): + if self.filelist.canDescent() and len(self["filelist"].getFilename()) > len(self["filelist"].getCurrentDirectory()): + self.filelist.descent() + self.close(self["filelist"].getCurrentDirectory()) + + def exit(self): + self.close(False) + +class MediaPlayerSettings(Screen,ConfigListScreen): + skin = """ + + + + + + + """ + + def __init__(self, session, parent): + from Components.Sources.StaticText import StaticText + Screen.__init__(self, session) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + + ConfigListScreen.__init__(self, []) + self.parent = parent + self.initConfigList() + config.mediaplayer.saveDirOnExit.addNotifier(self.initConfigList) + + self["setupActions"] = ActionMap(["SetupActions", "ColorActions"], + { + "green": self.save, + "red": self.cancel, + "cancel": self.cancel, + "ok": self.ok, + }, -2) + + def initConfigList(self, element=None): + print "[initConfigList]", element + try: + self.list = [] + self.list.append(getConfigListEntry(_("repeat playlist"), config.mediaplayer.repeat)) + self.list.append(getConfigListEntry(_("save playlist on exit"), config.mediaplayer.savePlaylistOnExit)) + self.list.append(getConfigListEntry(_("save last directory on exit"), config.mediaplayer.saveDirOnExit)) + if not config.mediaplayer.saveDirOnExit.getValue(): + self.list.append(getConfigListEntry(_("start directory"), config.mediaplayer.defaultDir)) + self["config"].setList(self.list) + except KeyError: + print "keyError" + + def changedConfigList(self): + self.initConfigList() + + def ok(self): + if self["config"].getCurrent()[1] == config.mediaplayer.defaultDir: + self.session.openWithCallback(self.DirectoryBrowserClosed, DirectoryBrowser, self.parent.filelist.getCurrentDirectory()) + + def DirectoryBrowserClosed(self, path): + print "PathBrowserClosed:" + str(path) + if path != False: + config.mediaplayer.defaultDir.setValue(path) + + def save(self): + for x in self["config"].list: + x[1].save() + self.close() + + def cancel(self): + self.close() + -- cgit v1.2.3 From 369086956b791ab97d2e60e2c820f7045650c236 Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Sat, 15 Nov 2008 00:12:52 +0100 Subject: MediaPlayer german locale update --- .../Plugins/Extensions/MediaPlayer/plugin.py | 3 +- .../Plugins/Extensions/MediaPlayer/settings.py | 23 +++++++------- po/de.po | 37 +++++++++++++++------- 3 files changed, 40 insertions(+), 23 deletions(-) (limited to 'lib/python/Plugins/Extensions/MediaPlayer/settings.py') diff --git a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py index 876e2a48..0d5305d7 100644 --- a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py +++ b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py @@ -618,7 +618,8 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB try: os_remove(self.delname) except OSError,e: - self.session.open(MessageBox, _("Delete failed!, %s") %e, MessageBox.TYPE_ERROR) + print "delete failed:", e + self.session.open(MessageBox, _("Delete failed!"), MessageBox.TYPE_ERROR) def clear_playlist(self): self.isAudioCD = False diff --git a/lib/python/Plugins/Extensions/MediaPlayer/settings.py b/lib/python/Plugins/Extensions/MediaPlayer/settings.py index 594b4534..c6d274bd 100644 --- a/lib/python/Plugins/Extensions/MediaPlayer/settings.py +++ b/lib/python/Plugins/Extensions/MediaPlayer/settings.py @@ -35,11 +35,12 @@ config.mediaplayer.defaultDir = ConfigDirectory() class DirectoryBrowser(Screen, HelpableScreen): skin = """ - + - - - + + + + """ def __init__(self, session, currDir): from Components.Sources.StaticText import StaticText @@ -47,14 +48,14 @@ class DirectoryBrowser(Screen, HelpableScreen): HelpableScreen.__init__(self) self["key_red"] = StaticText(_("Cancel")) - self["key_green"] = StaticText(_("Apply")) + self["key_green"] = StaticText(_("Use")) self.filelist = FileList(currDir, matchingPattern="") self["filelist"] = self.filelist self["FilelistActions"] = ActionMap(["SetupActions", "ColorActions"], { - "green": self.apply, + "green": self.use, "red": self.exit, "ok": self.ok, "cancel": self.exit @@ -64,7 +65,7 @@ class DirectoryBrowser(Screen, HelpableScreen): if self.filelist.canDescent(): self.filelist.descent() - def apply(self): + def use(self): if self.filelist.canDescent() and len(self["filelist"].getFilename()) > len(self["filelist"].getCurrentDirectory()): self.filelist.descent() self.close(self["filelist"].getCurrentDirectory()) @@ -74,12 +75,12 @@ class DirectoryBrowser(Screen, HelpableScreen): class MediaPlayerSettings(Screen,ConfigListScreen): skin = """ - + - + - - + + """ def __init__(self, session, parent): diff --git a/po/de.po b/po/de.po index a0198dd5..75186438 100755 --- a/po/de.po +++ b/po/de.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: tuxbox-enigma 0.0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-11-14 07:24+0100\n" -"PO-Revision-Date: 2008-11-13 14:12+0100\n" +"POT-Creation-Date: 2008-11-14 23:57+0100\n" +"PO-Revision-Date: 2008-11-14 23:41+0100\n" "Last-Translator: Andreas Frisch \n" "Language-Team: none\n" "MIME-Version: 1.0\n" @@ -89,7 +89,7 @@ msgid "(empty)" msgstr "(leer)" msgid "(show optional DVD audio menu)" -msgstr "" +msgstr "(DVD-Audiomenü zeigen falls vorh.)" msgid "* Only available if more than one interface is active." msgstr "* Nur verfügbar wenn mehr als ein Netzwerkadapter aktiv ist." @@ -948,9 +948,6 @@ msgid "" "the plugin \"%s\"?" msgstr "" -msgid "Do you really want to exit?" -msgstr "Wollen Sie wirklich beenden?" - msgid "" "Do you really want to initialize the harddisk?\n" "All data on the disk will be lost!" @@ -1606,7 +1603,7 @@ msgid "Load" msgstr "Laden" msgid "Load Length of Movies in Movielist" -msgstr "" +msgstr "Anzeigen der Spielzeit in der Filmliste" msgid "Local Network" msgstr "Int. Netzwerk" @@ -2020,7 +2017,7 @@ msgid "Pan&Scan" msgstr "" msgid "Parent Directory" -msgstr "" +msgstr "übergeordnetes Verzeichnis" msgid "Parental control" msgstr "Jugendschutz" @@ -3397,6 +3394,9 @@ msgstr "Upgrade" msgid "Upgrading Dreambox... Please wait" msgstr "Dreambox wird aktualisiert... Bitte warten" +msgid "Use" +msgstr "Benutzen" + msgid "Use DHCP" msgstr "Adresse automatisch beziehen (DHCP)" @@ -3978,12 +3978,12 @@ msgstr "täglich" msgid "day" msgstr "Tag" -msgid "delete" -msgstr "Löschen" - msgid "delete cut" msgstr "Schnitt löschen" +msgid "delete file" +msgstr "Datei löschen" + msgid "delete playlist entry" msgstr "Wiedergabelisteneintrag löschen" @@ -4397,9 +4397,15 @@ msgstr "Zum vorherigen Kapitel zurück" msgid "right" msgstr "rechts" +msgid "save last directory on exit" +msgstr "Anfangsverzeichnis beim Beenden merken" + msgid "save playlist" msgstr "Wiedergabeliste speichern" +msgid "save playlist on exit" +msgstr "Wiedergabeliste beim Beenden speicher" + msgid "scan done!" msgstr "Suche beendet!" @@ -4518,6 +4524,9 @@ msgstr "Standby" msgid "start cut here" msgstr "Schnitt hier starten" +msgid "start directory" +msgstr "Anfangsverzeichnis" + msgid "start timeshift" msgstr "Timeshift starten" @@ -4679,6 +4688,9 @@ msgstr "umgeschaltet" #~ "Wollen Sie das Plugin mit\n" #~ "dem Namen \" wirklich herunterladen?" +#~ msgid "Do you really want to exit?" +#~ msgstr "Wollen Sie wirklich beenden?" + #~ msgid "Enable WLAN Support" #~ msgstr "Aktiviere WLAN Unterstützung" @@ -4783,6 +4795,9 @@ msgstr "umgeschaltet" #~ msgid "You have to wait for" #~ msgstr "Sie müssen warten" +#~ msgid "delete" +#~ msgstr "Löschen" + #~ msgid "equal to Socket A" #~ msgstr "Wie Tuner A" -- cgit v1.2.3