X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/e06c6d202696d83a3017861fc690ee3d75750f13..d4fb39b22f791a7b30e3b3e2077d7410495bb9bb:/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py diff --git a/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py b/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py index 0dd77c2c..7407263d 100644 --- a/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py +++ b/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py @@ -9,26 +9,10 @@ from Components.Sources.StaticText import StaticText from Components.Sources.Progress import Progress from Components.FileList import FileList from enigma import eListboxPythonMultiContent, gFont, RT_HALIGN_LEFT -from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_FONTS +from Tools.Directories import fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_FONTS, SCOPE_HDD from Components.config import config, getConfigListEntry from Components.ConfigList import ConfigListScreen -class WaitBox(MessageBox): - def __init__(self, session, callback): - MessageBox.__init__(self, session, text=_("please wait, loading picture..."), type = MessageBox.TYPE_INFO) - self.skinName = "MessageBox" - self.CB = callback - self.onShown.append(self.runCB) - - def ok(self): - pass - - def runCB(self): - from enigma import eTimer - self.delayTimer = eTimer() - self.delayTimer.callback.append(self.CB) - self.delayTimer.start(10,1) - class FileBrowser(Screen, HelpableScreen): skin = """ @@ -42,7 +26,10 @@ class FileBrowser(Screen, HelpableScreen): currDir = "/" if self.scope == "project": currDir = self.getDir() - pattern = "(?i)^.*\.(ddvdp\.xml)" + pattern = "(?i)^.*\.(ddvdp\.xml)" + elif self.scope == "menutemplate": + currDir = self.getDir() + pattern = "(?i)^.*\.(ddvdm\.xml)" if self.scope == "menubg": currDir = self.getDir(settings.menubg) pattern = "(?i)^.*\.(jpeg|jpg|jpe|png|bmp)" @@ -55,6 +42,11 @@ class FileBrowser(Screen, HelpableScreen): elif self.scope == "font_face": currDir = self.getDir(settings.font_face, resolveFilename(SCOPE_FONTS)) pattern = "(?i)^.*\.(ttf)" + elif self.scope == "isopath": + currDir = settings.isopath.getValue() + elif self.scope == "image": + currDir = resolveFilename(SCOPE_HDD) + pattern = "(?i)^.*\.(iso)" self.filelist = FileList(currDir, matchingPattern=pattern) self["filelist"] = self.filelist @@ -75,11 +67,17 @@ class FileBrowser(Screen, HelpableScreen): def ok(self): if self.filelist.canDescent(): self.filelist.descent() + if self.scope == "image": + path = self["filelist"].getCurrentDirectory() or "" + if fileExists(path+"VIDEO_TS"): + self.close(path,self.scope) else: ret = self["filelist"].getCurrentDirectory() + '/' + self["filelist"].getFilename() self.close(ret,self.scope) def exit(self): + if self.scope == "isopath": + self.close(self["filelist"].getCurrentDirectory(),self.scope) self.close(None,False) class ProjectSettings(Screen,ConfigListScreen): @@ -106,12 +104,12 @@ class ProjectSettings(Screen,ConfigListScreen): self["key_yellow"] = StaticText(_("Load")) self["key_blue"] = StaticText(_("Save")) - infotext = _("Available format variables") + ":\n$i=" + _("Track") + ", $t=" + _("Title") + ", $d=" + _("Description") + ", $l=" + _("length") + ", $c=" + _("chapters") + ",\n" + _("Record") + " $T=" + _("Begin time") + ", $Y=" + _("year") + ", $M=" + _("month") + ", $D=" + _("day") + ",\n$A=" + _("audio tracks") + ", $C=" + _("Channel") + ", $f=" + _("filename") + infotext = _("Available format variables") + ":\n$i=" + _("Track") + ", $t=" + _("Title") + ", $d=" + _("Description") + ", $l=" + _("length") + ", $c=" + _("chapters") + ",\n" + _("Record") + " $T=" + _("Begin time") + ", $Y=" + _("Year") + ", $M=" + _("month") + ", $D=" + _("day") + ",\n$A=" + _("audio tracks") + ", $C=" + _("Channel") + ", $f=" + _("filename") self["info"] = StaticText(infotext) self.settings = project.settings ConfigListScreen.__init__(self, []) - self.initConfigList(self.settings.authormode.getValue()) + self.initConfigList() self.keydict = {} for key, val in self.settings.dict().iteritems(): @@ -128,39 +126,51 @@ class ProjectSettings(Screen,ConfigListScreen): }, -2) def changedConfigList(self): - if self.keydict[self["config"].getCurrent()[1]] == "authormode": - self.initConfigList(self.settings.authormode.getValue()) - - def initConfigList(self, authormode=""): - print "initConfigList(%s)" % authormode + key = self.keydict[self["config"].getCurrent()[1]] + if key == "authormode" or key == "output": + self.initConfigList() + + def initConfigList(self): + authormode = self.settings.authormode.getValue() + output = self.settings.output.getValue() self.list = [] self.list.append(getConfigListEntry(_("Collection name"), self.settings.name)) self.list.append(getConfigListEntry(_("Authoring mode"), self.settings.authormode)) + self.list.append(getConfigListEntry(("Output"), self.settings.output)) + if output == "iso": + self.list.append(getConfigListEntry(_("ISO path"), self.settings.isopath)) if authormode.startswith("menu"): - self.list.append(getConfigListEntry(_("Menu")+' '+_("background image"), self.settings.menubg)) - self.list.append(getConfigListEntry(_("Menu")+' '+_("Title"), self.settings.titleformat)) - self.list.append(getConfigListEntry(_("Menu")+' '+_("Subtitles"), self.settings.subtitleformat)) - self.list.append(getConfigListEntry(_("Menu")+' '+_("headline")+' '+_("color"), self.settings.color_headline)) - self.list.append(getConfigListEntry(_("Menu")+' '+_("text")+' '+_("color"), self.settings.color_button)) - self.list.append(getConfigListEntry(_("Menu")+' '+_("highlighted button")+' '+_("color"), self.settings.color_highlight)) - self.list.append(getConfigListEntry(_("Menu")+' '+_("font face"), self.settings.font_face)) - self.list.append(getConfigListEntry(_("Font size")+' ('+_("headline")+', '+_("Title")+', '+_("Subtitles")+')', self.settings.font_size)) - self.list.append(getConfigListEntry(_("Menu")+' '+_("spaces (top, between rows, left)"), self.settings.space)) - self.list.append(getConfigListEntry(_("Menu")+' '+_("Audio"), self.settings.menuaudio)) + self.list.append(getConfigListEntry(_("Menu")+' '+_("template file"), self.settings.menutemplate)) + self.list.append(getConfigListEntry(_("Menu")+' '+_("Title"), self.project.menutemplate.settings.titleformat)) + self.list.append(getConfigListEntry(_("Menu")+' '+_("Subtitles"), self.project.menutemplate.settings.subtitleformat)) + self.list.append(getConfigListEntry(_("Menu")+' '+_("background image"), self.project.menutemplate.settings.menubg)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("headline")+' '+_("color"), self.settings.color_headline)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("text")+' '+_("color"), self.settings.color_button)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("highlighted button")+' '+_("color"), self.settings.color_highlight)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("font face"), self.settings.font_face)) + #self.list.append(getConfigListEntry(_("Font size")+' ('+_("headline")+', '+_("Title")+', '+_("Subtitles")+')', self.settings.font_size)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("spaces (top, between rows, left)"), self.settings.space)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("Audio"), self.settings.menuaudio)) if authormode != "data_ts": - self.list.append(getConfigListEntry(_("VMGM (intro trailer)"), self.settings.vmgm)) - self.list.append(getConfigListEntry(_("Auto chapter split every ? minutes (0=never)"), self.settings.autochapter)) + self.list.append(getConfigListEntry(_("Titleset mode"), self.settings.titlesetmode)) + if self.settings.titlesetmode.getValue() == "single" or authormode == "just_linked": + self.list.append(getConfigListEntry(_("VMGM (intro trailer)"), self.settings.vmgm)) + else: + self.list.append(getConfigListEntry(("DVD data format"), self.settings.dataformat)) + self["config"].setList(self.list) def keyLeft(self): ConfigListScreen.keyLeft(self) - if self.keydict[self["config"].getCurrent()[1]] == "authormode": - self.initConfigList(self.settings.authormode.getValue()) + key = self.keydict[self["config"].getCurrent()[1]] + if key == "authormode" or key == "output" or key=="titlesetmode": + self.initConfigList() def keyRight(self): ConfigListScreen.keyRight(self) - if self.keydict[self["config"].getCurrent()[1]] == "authormode": - self.initConfigList(self.settings.authormode.getValue()) + key = self.keydict[self["config"].getCurrent()[1]] + if key == "authormode" or key == "output" or key=="titlesetmode": + self.initConfigList() def exit(self): self.applySettings() @@ -192,8 +202,16 @@ class ProjectSettings(Screen,ConfigListScreen): self.session.open(MessageBox,text,type = MessageBox.TYPE_ERROR) def FileBrowserClosed(self, path, scope): + if scope == "menutemplate": + if not self.project.menutemplate.loadTemplate(path): + self.session.open(MessageBox,self.project.error,MessageBox.TYPE_ERROR) + else: + print "[ProjectSettings] menu template loaded" + if scope in self.project.filekeys: self.settings.dict()[scope].setValue(path) elif scope == "project": if not self.project.loadProject(path): self.session.open(MessageBox,self.project.error,MessageBox.TYPE_ERROR) + else: + self.initConfigList()