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_PLAYLIST, SCOPE_SKIN, SCOPE_FONTS
+from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_FONTS
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 = """
<screen name="FileBrowser" position="100,100" size="520,376" title="DVD File Browser" >
pattern = ""
currDir = "/"
if self.scope == "project":
- currDir = resolveFilename(SCOPE_PLAYLIST)
+ currDir = self.getDir()
pattern = "(?i)^.*\.(ddvdp\.xml)"
if self.scope == "menubg":
- currDir = self.getDir(settings.menubg, resolveFilename(SCOPE_SKIN))
+ currDir = self.getDir(settings.menubg)
pattern = "(?i)^.*\.(jpeg|jpg|jpe|png|bmp)"
elif self.scope == "menuaudio":
- currDir = self.getDir(settings.menuaudio, resolveFilename(SCOPE_SKIN))
+ currDir = self.getDir(settings.menuaudio)
pattern = "(?i)^.*\.(mp2|m2a|ac3)"
elif self.scope == "vmgm":
- currDir = self.getDir(settings.vmgm, resolveFilename(SCOPE_SKIN))
+ currDir = self.getDir(settings.vmgm)
pattern = "(?i)^.*\.(mpg|mpeg)"
elif self.scope == "font_face":
currDir = self.getDir(settings.font_face, resolveFilename(SCOPE_FONTS))
"cancel": self.exit
})
- def getDir(self, key, defaultDir):
- settingDir = key.getValue()
- if len(settingDir) > 1:
- return (settingDir.rstrip("/").rsplit("/",1))[0]
- else:
- return defaultDir
+ def getDir(self, key=None, defaultDir=None):
+ if key:
+ settingDir = key.getValue()
+ if len(settingDir) > 1:
+ return (settingDir.rstrip("/").rsplit("/",1))[0]
+ return defaultDir or (resolveFilename(SCOPE_PLUGINS)+"Extensions/DVDBurn/")
def ok(self):
if self.filelist.canDescent():
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%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
- self.list = []
- self.list.append(getConfigListEntry(_("Collection name"), self.settings.name))
- self.list.append(getConfigListEntry(_("Authoring mode"), self.settings.authormode))
- 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(_("VMGM (intro trailer)"), self.settings.vmgm))
- ConfigListScreen.__init__(self, self.list)
-
+ ConfigListScreen.__init__(self, [])
+ self.initConfigList(self.settings.authormode.getValue())
+
self.keydict = {}
for key, val in self.settings.dict().iteritems():
self.keydict[val] = key
"cancel": self.cancel,
"ok": self.ok,
}, -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
+ self.list = []
+ self.list.append(getConfigListEntry(_("Collection name"), self.settings.name))
+ self.list.append(getConfigListEntry(_("Authoring mode"), self.settings.authormode))
+ 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))
+ 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["config"].setList(self.list)
+
+ def keyLeft(self):
+ ConfigListScreen.keyLeft(self)
+ if self.keydict[self["config"].getCurrent()[1]] == "authormode":
+ self.initConfigList(self.settings.authormode.getValue())
+
+ def keyRight(self):
+ ConfigListScreen.keyRight(self)
+ if self.keydict[self["config"].getCurrent()[1]] == "authormode":
+ self.initConfigList(self.settings.authormode.getValue())
+
def exit(self):
self.applySettings()
self.close(True)
def ok(self):
key = self.keydict[self["config"].getCurrent()[1]]
- browseKeys = ["menubg", "menuaudio", "vmgm", "font_face"]
- if key in browseKeys:
+ if key in self.project.filekeys:
self.session.openWithCallback(self.FileBrowserClosed, FileBrowser, key, self.settings)
def cancel(self):
def saveProject(self):
self.applySettings()
- ret = self.project.saveProject(resolveFilename(SCOPE_PLAYLIST))
+ ret = self.project.saveProject(resolveFilename(SCOPE_PLUGINS)+"Extensions/DVDBurn/")
if ret.startswith:
text = _("Save")+' '+_('OK')+':\n'+ret
self.session.open(MessageBox,text,type = MessageBox.TYPE_INFO)
self.session.open(MessageBox,text,type = MessageBox.TYPE_ERROR)
def FileBrowserClosed(self, path, scope):
- if scope == "project":
+ 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)
- elif scope:
- self.settings.dict()[scope].setValue(path)