X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/eb047f3299d45a434c6537ab01dfb3656f686f11..2977b2dfa5d96055c5abc10ec31adb4dbf8f9e2a:/lib/python/Plugins/Extensions/DVDBurn/TitleList.py diff --git a/lib/python/Plugins/Extensions/DVDBurn/TitleList.py b/lib/python/Plugins/Extensions/DVDBurn/TitleList.py index 197ab5bf..19380af4 100644 --- a/lib/python/Plugins/Extensions/DVDBurn/TitleList.py +++ b/lib/python/Plugins/Extensions/DVDBurn/TitleList.py @@ -1,19 +1,20 @@ -import DVDProject, TitleList, TitleCutter, ProjectSettings +import DVDProject, TitleList, TitleCutter, ProjectSettings, DVDToolbox, Process from Screens.Screen import Screen from Screens.ChoiceBox import ChoiceBox from Screens.InputBox import InputBox from Screens.MessageBox import MessageBox from Screens.HelpMenu import HelpableScreen +from Screens.TaskView import JobView +from Components.Task import job_manager from Components.ActionMap import HelpableActionMap, ActionMap from Components.Sources.List import List from Components.Sources.StaticText import StaticText from Components.Sources.Progress import Progress -from Components.FileList import FileList from Components.Label import Label from enigma import eListboxPythonMultiContent, gFont, RT_HALIGN_LEFT from Tools.Directories import resolveFilename, SCOPE_PLUGINS -class TitleList(Screen): +class TitleList(Screen, HelpableScreen): skin = """ @@ -35,6 +36,7 @@ class TitleList(Screen): def __init__(self, session, project = None): Screen.__init__(self, session) + HelpableScreen.__init__(self) self["titleactions"] = HelpableActionMap(self, "DVDTitleList", { @@ -75,12 +77,17 @@ class TitleList(Screen): def showMenu(self): menu = [] - menu.append((_("Burn DVD"), "burn")); + if self.project.settings.output.getValue() == "dvd": + menu.append((_("Burn DVD"), "burn")); + elif self.project.settings.output.getValue() == "iso": + menu.append((_("Create DVD-ISO"), "burn")); menu.append((_("Preview menu"), "previewMenu")); + menu.append((_("DVD media toolbox"), "toolbox")); menu.append((_("Collection settings"), "settings")); menu.append((_("Add a new title"), "addtitle")); menu.append((_("Remove title"), "removetitle")); menu.append((_("Edit chapters of current title"), "edittitle")); + menu.append((_("Burn existing image to DVD"), "burniso")); menu.append((_("Exit"), "exit")); self.session.openWithCallback(self.menuCallback, ChoiceBox, title="", list=menu) @@ -93,12 +100,16 @@ class TitleList(Screen): self.addTitle() elif choice[1] == "edittitle": self.editTitle() + elif choice[1] == "toolbox": + self.toolbox() elif choice[1] == "settings": self.settings() elif choice[1] == "previewMenu": self.previewMenu() elif choice[1] == "burn": self.burnProject() + elif choice[1] == "burniso": + self.session.openWithCallback(self.burnISO, ProjectSettings.FileBrowser, "image", self.project.settings) elif choice[1] == "exit": self.leave() @@ -158,6 +169,9 @@ class TitleList(Screen): self.project.titles.remove(title) self.updateTitleList() + def toolbox(self): + self.session.open(DVDToolbox.DVDToolbox) + def settings(self): self.session.openWithCallback(self.settingsCB, ProjectSettings.ProjectSettings, self.project) @@ -178,24 +192,35 @@ class TitleList(Screen): def burnProject(self): if self.project.settings.authormode.getValue() == "data_ts": - import Process - job = Process.BurnDataTS(self.session, self.project) - from Screens.TaskView import JobView - self.session.open(JobView, job) + job = Process.DVDdataJob(self.project) + job_manager.AddJob(job) + job_manager.in_background = False + self.session.openWithCallback(self.JobViewCB, JobView, job) else: autochapter = self.project.settings.autochapter.getValue() if autochapter > 0: for title in self.project.titles: title.produceAutoChapter(autochapter) - import Process - job = Process.Burn(self.session, self.project) - from Screens.TaskView import JobView - self.session.open(JobView, job) + job = Process.DVDJob(self.project) + job_manager.AddJob(job) + job_manager.in_background = False + self.session.openWithCallback(self.JobViewCB, JobView, job) - def previewMenu(self): - import Process - job = Process.PreviewMenu(self.session, self.project) + def burnISO(self, path, scope): + if path: + job = Process.DVDisoJob(self.project, path) + job_manager.AddJob(job) + job_manager.in_background = False + self.session.openWithCallback(self.JobViewCB, JobView, job) + + def JobViewCB(self, in_background): + job_manager.in_background = in_background + def previewMenu(self): + job = Process.DVDJob(self.project, menupreview=True) + job_manager.in_background = False + job_manager.AddJob(job) + def updateTitleList(self): res = [ ] totalsize = 0