X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FPlugins%2FExtensions%2FDVDBurn%2FTitleList.py;h=83bafd747efdf00721eae344383f8ae6ed722c4c;hp=dfb037cc9c2c4e14e31345f4cfee0cea377468a7;hb=ed817937df0a68c0b222a4e48fdf24984d87c2fb;hpb=c69c3febf1582fb1bd170bc4b04132354f574cfc diff --git a/lib/python/Plugins/Extensions/DVDBurn/TitleList.py b/lib/python/Plugins/Extensions/DVDBurn/TitleList.py index dfb037c..83bafd7 100644 --- a/lib/python/Plugins/Extensions/DVDBurn/TitleList.py +++ b/lib/python/Plugins/Extensions/DVDBurn/TitleList.py @@ -44,7 +44,7 @@ class TitleList(Screen, HelpableScreen): "titleProperties": (self.titleProperties, _("Properties of current title"), _("Title properties")), "removeCurrentTitle": (self.removeCurrentTitle, _("Remove currently selected title"), _("Remove title")), "settings": (self.settings, _("Collection settings"), _("Settings")), - "burnProject": (self.burnProject, _("Burn DVD"), _("Burn DVD")), + "burnProject": (self.askBurnProject, _("Burn DVD"), _("Burn DVD")), }) self["MovieSelectionActions"] = HelpableActionMap(self, "MovieSelectionActions", @@ -57,9 +57,9 @@ class TitleList(Screen, HelpableScreen): "cancel": self.leave }) - self["key_red"] = StaticText(_("Remove title")) + self["key_red"] = StaticText() self["key_green"] = StaticText(_("Add title")) - self["key_yellow"] = StaticText(_("Title properties")) + self["key_yellow"] = StaticText() self["key_blue"] = StaticText(_("Settings")) self["title_label"] = StaticText() @@ -74,6 +74,7 @@ class TitleList(Screen, HelpableScreen): self["titles"] = List(list = [ ], enableWrapAround = True, item_height=30, fonts = [gFont("Regular", 20)]) self.updateTitleList() + self.previous_size = 0 def checkBackgroundJobs(self): for job in job_manager.getPendingJobs(): @@ -90,19 +91,16 @@ class TitleList(Screen, HelpableScreen): if self.backgroundJob: j = self.backgroundJob menu.append(("%s: %s (%d%%)" % (j.getStatustext(), j.name, int(100*j.progress/float(j.end))), self.showBackgroundJob)) + menu.append((_("DVD media toolbox"), self.toolbox)) + menu.append((_("Preview menu"), self.previewMenu)) if self.project.settings.output.getValue() == "dvd": - menu.append((_("Burn DVD"), self.burnProject)) + if len(self["titles"].list): + menu.append((_("Burn DVD"), self.burnProject)) elif self.project.settings.output.getValue() == "iso": menu.append((_("Create DVD-ISO"), self.burnProject)) menu.append((_("Burn existing image to DVD"), self.selectImage)) - menu.append((_("DVD media toolbox"), self.toolbox)) - menu.append((_("Preview menu"), self.previewMenu)) - menu.append((_("Collection settings"), self.settings)) - menu.append((_("Reset and renumerate title names"), self.resetTitles)) menu.append((_("Edit chapters of current title"), self.editTitle)) - menu.append((_("Properties of current title"), self.titleProperties)) - menu.append((_("Add a new title"), self.addTitle)) - menu.append((_("Remove title"), self.removeCurrentTitle)) + menu.append((_("Reset and renumerate title names"), self.resetTitles)) menu.append((_("Exit"), self.leave)) self.session.openWithCallback(self.menuCallback, ChoiceBox, title="", list=menu) @@ -199,7 +197,13 @@ class TitleList(Screen, HelpableScreen): self["error_label"].show() return False - def burnProject(self): + def askBurnProject(self): + if len(self["titles"].list): + self.session.openWithCallback(self.burnProject,MessageBox,text = _("Do you want to burn this collection to DVD medium?"), type = MessageBox.TYPE_YESNO) + + def burnProject(self, answer=True): + if not answer: + return if self.project.settings.authormode.getValue() == "data_ts": job = Process.DVDdataJob(self.project) job_manager.AddJob(job) @@ -211,7 +215,7 @@ class TitleList(Screen, HelpableScreen): job_manager.in_background = False self.session.openWithCallback(self.JobViewCB, JobView, job) - def burnISO(self, path, scope): + def burnISO(self, path, scope, configRef): if path: job = Process.DVDisoJob(self.project, path) job_manager.AddJob(job) @@ -228,30 +232,40 @@ class TitleList(Screen, HelpableScreen): def updateTitleList(self): res = [ ] - totalsize = 0 for title in self.project.titles: - a = [ title, (eListboxPythonMultiContent.TYPE_TEXT, 0, 10, 500, 50, 0, RT_HALIGN_LEFT, title.properties.menutitle.getValue()) ] + a = [ title, (eListboxPythonMultiContent.TYPE_TEXT, 0, 5, 500, 25, 0, RT_HALIGN_LEFT, title.properties.menutitle.getValue()) ] res.append(a) - totalsize += title.estimatedDiskspace self["titles"].list = res - self.updateSize(totalsize) - - def updateSize(self, totalsize): - size = int((totalsize/1024)/1024) - max_SL = 4370 - max_DL = 7950 - if size > max_DL: - percent = 100 * size / float(max_DL) + self.updateSize() + if len(res): + self["key_red"].text = _("Remove title") + self["key_yellow"].text = _("Title properties") + else: + self["key_red"].text = "" + self["key_yellow"].text = "" + + def updateSize(self): + size = self.project.size/(1024*1024) + MAX_DL = self.project.MAX_DL-100 + MAX_SL = self.project.MAX_SL-100 + print "updateSize:", size, "MAX_DL:", MAX_DL, "MAX_SL:", MAX_SL + if size > MAX_DL: + percent = 100 * size / float(MAX_DL) self["space_label"].text = "%d MB - " % size + _("exceeds dual layer medium!") + " (%.2f%% " % (100-percent) + _("free") + ")" self["space_bar"].value = int(percent) - elif size > max_SL: - percent = 100 * size / float(max_DL) + if self.previous_size < MAX_DL: + self.session.open(MessageBox,text = _("exceeds dual layer medium!"), type = MessageBox.TYPE_ERROR) + elif size > MAX_SL: + percent = 100 * size / float(MAX_DL) self["space_label"].text = "%d MB " % size + _("of a DUAL layer medium used.") + " (%.2f%% " % (100-percent) + _("free") + ")" self["space_bar"].value = int(percent) - elif size < max_SL: - percent = 100 * size / float(max_SL) + if self.previous_size < MAX_SL: + self.session.open(MessageBox,text = _("Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!"), type = MessageBox.TYPE_INFO) + elif size < MAX_SL: + percent = 100 * size / float(MAX_SL) self["space_label"].text = "%d MB " % size + _("of a SINGLE layer medium used.") + " (%.2f%% " % (100-percent) + _("free") + ")" self["space_bar"].value = int(percent) + self.previous_size = size def getCurrentTitle(self): t = self["titles"].getCurrent()