def cancel_clicked(self, widget, temp=False): newtree = devede_other.create_tree(self, "wcancel_job_dialog", self.gladefile, False) window = newtree.get_object("wcancel_job_dialog") window.show() value = window.run() window.hide() window.destroy() if value != -5: # no return True self.runner.cancel() self.runner.wait_end() gobject.source_remove(self.timer) self.window.hide() self.window.destroy() newtree = devede_other.create_tree(self, "waborted_dialog", self.gladefile, False) window = newtree.get_object("waborted_dialog") window.show() window.run() window.hide() window.destroy() window = None gc.collect() (self.main_window_callback)() # show the main window return True
def cancel_clicked(self,widget,temp=False): newtree=devede_other.create_tree(self,"wcancel_job_dialog",self.gladefile,False) window=newtree.get_object("wcancel_job_dialog") window.show() value=window.run() window.hide() window.destroy() if value!=-5: # no return True self.runner.cancel() self.runner.wait_end() gobject.source_remove(self.timer) self.window.hide() self.window.destroy() newtree=devede_other.create_tree(self,"waborted_dialog",self.gladefile,False) window=newtree.get_object("waborted_dialog") window.show() window.run() window.hide() window.destroy() window=None gc.collect() (self.main_window_callback)() # show the main window return True
def __init__(self,gladefile,structure,global_vars): """ Shows a window with a preview of the disc menu """ self.menu_preview=None if global_vars["PAL"]: newtree=devede_other.create_tree(self,"wmenu_preview_pal",gladefile) window=newtree.get_object("wmenu_preview_pal") self.menu_preview=newtree.get_object("preview_draw_pal") else: newtree=devede_other.create_tree(self,"wmenu_preview_ntsc",gladefile) window=newtree.get_object("wmenu_preview_ntsc") self.menu_preview=newtree.get_object("preview_draw_ntsc") print self.menu_preview if global_vars.has_key("install_path")==False: global_vars["install_path"]=None if global_vars.has_key("path")==False: global_vars["path"]="" if global_vars.has_key("menu_sound")==False: global_vars["menu_sound"]="" if global_vars.has_key("menu_sound_duration")==False: global_vars["menu_sound_duration"]=1 clase=devede_xml_menu.xml_files(None,None,None,structure,global_vars,"","") self.sf=clase.create_menu_bg(0,0,0,True) if self.sf==None: devede_dialogs.show_error(gladefile,_("Can't find the menu background.\nCheck the menu options.")) else: window.show() window.run() window.hide() window.destroy() window=None
def show_final_time(self): if (self.erase_temp): self.eraser.delete_xml() self.window.hide() self.window.destroy() newtree=devede_other.create_tree(self,"wend_dialog",self.gladefile,False) label=newtree.get_object("elapsed") tiempo2=devede_other.return_time(time.time()-self.tiempo,True) label.set_text(tiempo2) window=newtree.get_object("wend_dialog") burn = newtree.get_object("button11") # only enable button if k3b is available # TODO: support other burners if 127==devede_other.check_program("k3b -v"): burn.set_sensitive(False) burn.connect('clicked', self.burn) window.show() window.run() window.hide() window.destroy() window = None newtree = None gc.collect() (self.main_window_callback)()
def __init__(self,gladefile,structure,global_vars,callback): self.gladefile=gladefile self.structure=structure self.global_vars=global_vars self.tree=devede_other.create_tree(self,"wprogress",self.gladefile) self.window=self.tree.get_object("wprogress") self.partial=self.tree.get_object("progresspartial") self.erase_temp=global_vars["erase_temporary_files"] self.iso_creator=global_vars["iso_creator"] self.queue=[] self.current_action=0 self.actions=global_vars["number_actions"] self.total=self.tree.get_object("progress_total") self.label=self.tree.get_object("lcreating") self.total.set_fraction(0) self.partial.set_fraction(0) self.partial.set_text("0%") self.label.set_text("") self.start_time=time.time() self.disk_type=global_vars["disctocreate"] self.main_window_callback=callback self.tiempo=time.time()
def on_sub_remove_clicked(self,widget): w=self.tree.get_object("sub_treeview") try: ctree,iter=w.get_selection().get_selected() subtitle=ctree.get_value(iter,0) except: subtitle=-1 if subtitle==-1: return newtree=devede_other.create_tree(self,"wdel_subtitle",self.gladefile,False) window=newtree.get_object("wdel_subtitle") window.show() ret=window.run() window.hide() window.destroy() window=None newtree=None if ret==-5: del (self.file_properties["sub_list"])[subtitle] self.refresh_subtitles() self.set_global_values()
def show_final_time(self): if (self.erase_temp): self.eraser.delete_xml() self.window.hide() self.window.destroy() newtree = devede_other.create_tree(self, "wend_dialog", self.gladefile, False) label = newtree.get_object("elapsed") tiempo2 = devede_other.return_time(time.time() - self.tiempo, True) label.set_text(tiempo2) window = newtree.get_object("wend_dialog") burn = newtree.get_object("button11") # only enable button if k3b is available # TODO: support other burners if 127 == devede_other.check_program("k3b -v"): burn.set_sensitive(False) burn.connect('clicked', self.burn) window.show() window.run() window.hide() window.destroy() window = None newtree = None gc.collect() (self.main_window_callback)()
def __init__(self, gladefile, structure, global_vars, callback): self.gladefile = gladefile self.structure = structure self.global_vars = global_vars self.tree = devede_other.create_tree(self, "wprogress", self.gladefile) self.window = self.tree.get_object("wprogress") self.partial = self.tree.get_object("progresspartial") self.erase_temp = global_vars["erase_temporary_files"] self.iso_creator = global_vars["iso_creator"] self.queue = [] self.current_action = 0 self.actions = global_vars["number_actions"] self.total = self.tree.get_object("progress_total") self.label = self.tree.get_object("lcreating") self.total.set_fraction(0) self.partial.set_fraction(0) self.partial.set_text("0%") self.label.set_text("") self.start_time = time.time() self.disk_type = global_vars["disctocreate"] self.main_window_callback = callback self.tiempo = time.time()
def show_final_time(self): if (self.erase_temp): self.eraser.delete_xml() self.window.hide() self.window.destroy() if (self.global_vars["shutdown_after_disc"]): print "\n\nApago el ordenador\n\n" failure = False # First, try with ConsoleKit try: bus = dbus.SystemBus() bus_object = bus.get_object( "org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager") bus_object.Stop( dbus_interface="org.freedesktop.ConsoleKit.Manager") except: failure = True if (failure): failure = False # If it fails, try with HAL try: bus = dbus.SystemBus() bus_object = bus.get_object( "org.freedesktop.Hal", "/org/freedesktop/Hal/devices/computer") bus_object.Shutdown( dbus_interface= "org.freedesktop.Hal.Device.SystemPowerManagement") except: failure = True if (failure == False): gtk.main_quit() newtree = devede_other.create_tree(self, "wend_dialog", self.gladefile, False) label = newtree.get_object("elapsed") tiempo2 = devede_other.return_time(time.time() - self.tiempo, True) label.set_text(tiempo2) window = newtree.get_object("wend_dialog") burn = newtree.get_object("burn_button") # only enable button if k3b is available # TODO: support other burners if (self.k3b_available == False) and (self.brasero_available == False): burn.set_sensitive(False) burn.connect('clicked', self.burn) window.show() window.run() window.hide() window.destroy() window = None newtree = None gc.collect() (self.main_window_callback)()
def __init__(self,gladefile,structure,title): self.structure=structure self.title=title self.tree=devede_other.create_tree(self,"wtitle_properties_dialog",gladefile,True) self.window=self.tree.get_object("wtitle_properties_dialog") w=self.tree.get_object("title_name") w.set_text(structure[title][0]["nombre"]) w.grab_focus() action=structure[title][0]["jumpto"] if action=="menu": w=self.tree.get_object("title_jmenu") elif action=="first": w=self.tree.get_object("title_jfirst") elif action=="prev": w=self.tree.get_object("title_jprev") elif action=="loop": w=self.tree.get_object("title_jthis") elif action=="next": w=self.tree.get_object("title_jnext") elif action=="last": w=self.tree.get_object("title_jlast") w.set_active(True) self.window.show() retval=self.window.run() print "Salgo de propiedades "+str(retval) self.window.hide() if retval==-5: self.update_title() self.window.destroy() self.window=None
def __init__(self,gladefile,filepath,gvars,filename=None): self.global_vars=gvars self.gladefile=gladefile self.tree=devede_other.create_tree(self,"add_subtitle2",self.gladefile) self.lang_list=[] self.cpage_list=[] pos=0 self.lang=-1 self.asciie=-1 self.utf8e=-1 self.utf16e=-1 self.isoe=-1 languages=open(os.path.join(self.gladefile,"languages.lst"),"r") w=self.tree.get_object("sub_language") for element in languages: if element[:-1]==self.global_vars["sub_language"]: self.lang=pos w.append_text(element[:-1]) self.lang_list.append(element[:-1]) pos+=1 languages.close() w.set_active(self.lang) pos=0 self.chelement=0 codepages=open(os.path.join(self.gladefile,"codepages.lst"),"r") w=self.tree.get_object("sub_codepage") for element in codepages: if element[:-1]=="ASCII": self.asciie=pos if element[:-1]=="UTF-8": self.utf8e=pos if element[:-1]=="UTF-16": self.utf16e=pos if element[:-1]=="ISO-8859-1": self.isoe=pos if element[:-1]==self.global_vars["sub_codepage"]: self.chelement=pos w.append_text(element[:-1]) self.cpage_list.append(element[:-1]) pos+=1 codepages.close() if self.chelement!=-1: w.set_active(self.chelement) elif (self.utf8e!=-1): w.set_active(self.utf8e) else: w.set_active(self.isoe) self.window=self.tree.get_object("add_subtitle") if (filepath!=""): w=self.tree.get_object("subtitles_chooser") w.set_current_folder(filepath) if (filename!=None) and (filename!=""): self.tree.get_object("subtitles_chooser").set_filename(filename) self.window.show() self.set_status()
def __init__(self, gladefile, structure, global_vars): self.gladefile = gladefile self.structure = structure self.global_vars = global_vars self.tree = devede_other.create_tree(self, "settings", self.gladefile, False) self.tree.connect_signals(self) wsettings = self.tree.get_object("wsettings_dialog") w = self.tree.get_object("erase_files") w.set_active(self.global_vars["erase_files"]) w = self.tree.get_object("multicore") if (self.global_vars["multicore"] == 1): w.set_active(False) else: w.set_active(True) self.global_vars["multicore"] = self.global_vars["cores"] self.ac3_fix = self.tree.get_object("AC3_fix") self.ac3_fix.set_active(self.global_vars["AC3_fix"]) self.use_ffmpeg = self.tree.get_object("use_ffmpeg") self.use_ffmpeg.set_active(self.global_vars["use_ffmpeg"]) print "Path: " + str(global_vars["temp_folder"]) path = self.tree.get_object("temporary_files") path.set_current_folder(global_vars["temp_folder"]) self.on_toggled_cb(None) wsettings.show() value = wsettings.run() wsettings.hide() if value != -6: wsettings.destroy() return w = self.tree.get_object("erase_files") self.global_vars["erase_files"] = w.get_active() w = self.tree.get_object("multicore") if w.get_active(): self.global_vars["multicore"] = self.global_vars["cores"] else: self.global_vars["multicore"] = 1 self.global_vars["use_ffmpeg"] = self.use_ffmpeg.get_active() self.global_vars["AC3_fix"] = self.ac3_fix.get_active() path = self.tree.get_object("temporary_files") self.global_vars["temp_folder"] = path.get_current_folder() print "Path: " + str(self.global_vars["temp_folder"]) wsettings.destroy() return
def __init__(self,gladefile,structure,global_vars): self.gladefile=gladefile self.structure=structure self.global_vars=global_vars self.tree=devede_other.create_tree(self,"settings",self.gladefile,False) self.tree.connect_signals(self) wsettings=self.tree.get_object("wsettings_dialog") w=self.tree.get_object("erase_files") w.set_active(self.global_vars["erase_files"]) w=self.tree.get_object("multicore") if (self.global_vars["multicore"]==1): w.set_active(False) else: w.set_active(True) self.global_vars["multicore"]=self.global_vars["cores"] self.ac3_fix=self.tree.get_object("AC3_fix") self.ac3_fix.set_active(self.global_vars["AC3_fix"]) self.use_ffmpeg=self.tree.get_object("use_ffmpeg") self.use_ffmpeg.set_active(self.global_vars["use_ffmpeg"]) print "Path: "+str(global_vars["temp_folder"]) path=self.tree.get_object("temporary_files") path.set_current_folder(global_vars["temp_folder"]) self.on_toggled_cb(None) wsettings.show() value=wsettings.run() wsettings.hide() if value!=-6: wsettings.destroy() return w=self.tree.get_object("erase_files") self.global_vars["erase_files"]=w.get_active() w=self.tree.get_object("multicore") if w.get_active(): self.global_vars["multicore"]=self.global_vars["cores"] else: self.global_vars["multicore"]=1 self.global_vars["use_ffmpeg"]=self.use_ffmpeg.get_active() self.global_vars["AC3_fix"]=self.ac3_fix.get_active() path=self.tree.get_object("temporary_files") self.global_vars["temp_folder"]=path.get_current_folder() print "Path: "+str(self.global_vars["temp_folder"]) wsettings.destroy() return
def __init__(self,global_vars): self.gladefile=global_vars["gladefile"] self.global_vars=global_vars self.tree=devede_other.create_tree(self,"wdisk_type",self.gladefile) self.window=self.tree.get_object("wdisk_type") self.main_window=None self.window.show()
def __init__(self, global_vars, callback): self.global_vars = global_vars self.gladefile = global_vars["gladefile"] self.tree = devede_other.create_tree(self, "wmain", self.gladefile) self.window = self.tree.get_object("wmain") if (sys.platform == "win32") or (sys.platform == "win64"): self.window.drag_dest_set(0, [], 0) self.window.connect('drag_drop', self.drop_cb) else: self.window.drag_dest_set( gtk.DEST_DEFAULT_MOTION | gtk.DEST_DEFAULT_HIGHLIGHT | gtk.DEST_DEFAULT_DROP, [("text/plain", 0, 80), ("video/*", 0, 81)], gtk.gdk.ACTION_COPY) self.global_vars["main_window"] = self.window self.list_titles = gtk.TreeStore(gobject.TYPE_PYOBJECT, gobject.TYPE_STRING) self.list_chapters = gtk.TreeStore(gobject.TYPE_PYOBJECT, gobject.TYPE_STRING) ltitles = self.tree.get_object("ltitles") lchapters = self.tree.get_object("lchapters") ltitles.set_model(self.list_titles) lchapters.set_model(self.list_chapters) renderertitles = gtk.CellRendererText() columntitles = gtk.TreeViewColumn("Title", renderertitles, text=1) ltitles.append_column(columntitles) rendererchapters = gtk.CellRendererText() columnchapters = gtk.TreeViewColumn("Title", rendererchapters, text=1) lchapters.append_column(columnchapters) #ltitles.connect("button_release_event",self.on_titleclick) #lchapters.connect("button_release_event",self.on_chapterclick) self.set_default_global() self.callback = callback # callback to call to show again the SELECT_DISK dialog if global_vars["PAL"]: w = self.tree.get_object("default_pal") os.environ["VIDEO_FORMAT"] = "PAL" else: w = self.tree.get_object("default_ntsc") os.environ["VIDEO_FORMAT"] = "NTSC" w.set_active(True) self.window.show() print "Cores: " + str(self.get_cores())
def __init__(self, global_vars): self.gladefile = global_vars["gladefile"] self.global_vars = global_vars self.tree = devede_other.create_tree(self, "wdisk_type", self.gladefile) self.window = self.tree.get_object("wdisk_type") self.main_window = None self.window.show()
def __init__(self,global_vars,callback): self.global_vars=global_vars self.gladefile=global_vars["gladefile"] self.tree=devede_other.create_tree(self,"wmain",self.gladefile) self.window=self.tree.get_object("wmain") self.window.drag_dest_set(0,[],0) self.window.connect('drag_drop', self.drop_cb) self.window.connect('drag_motion', self.motion_cb) self.global_vars["main_window"]=self.window self.list_titles=gtk.TreeStore(gobject.TYPE_PYOBJECT,gobject.TYPE_STRING) self.list_chapters=gtk.TreeStore(gobject.TYPE_PYOBJECT,gobject.TYPE_STRING) ltitles=self.tree.get_object("ltitles") lchapters=self.tree.get_object("lchapters") ltitles.set_model(self.list_titles) lchapters.set_model(self.list_chapters) renderertitles=gtk.CellRendererText() columntitles = gtk.TreeViewColumn("Title", renderertitles, text=1) ltitles.append_column(columntitles) rendererchapters=gtk.CellRendererText() columnchapters = gtk.TreeViewColumn("Title", rendererchapters, text=1) lchapters.append_column(columnchapters) #ltitles.connect("button_release_event",self.on_titleclick) #lchapters.connect("button_release_event",self.on_chapterclick) # Set menu items that should only be shown on Windows. if (sys.platform=="win32") or (sys.platform=="win64"): self.show_window_menus(global_vars) self.set_default_global() self.callback=callback # callback to call to show again the SELECT_DISK dialog if global_vars["PAL"]: w=self.tree.get_object("default_pal") os.environ["VIDEO_FORMAT"]="PAL" else: w=self.tree.get_object("default_ntsc") os.environ["VIDEO_FORMAT"]="NTSC" w.set_active(True) w=self.tree.get_object("add_title") w.get_settings().props.gtk_button_images = True self.window.show()
def __init__(self,gladefile): """ Shows the About dialog """ self.newtree=devede_other.create_tree(self,"aboutdialog1",gladefile,False) window=self.newtree.get_object("aboutdialog1") window.show() window.run() window.hide() window.destroy() window=None
def __init__(self, global_vars, callback): self.global_vars = global_vars self.gladefile = global_vars["gladefile"] self.tree = devede_other.create_tree(self, "wmain", self.gladefile) self.window = self.tree.get_object("wmain") self.window.drag_dest_set(0, [], 0) self.window.connect('drag_drop', self.drop_cb) self.window.connect('drag_motion', self.motion_cb) self.global_vars["main_window"] = self.window self.list_titles = gtk.TreeStore(gobject.TYPE_PYOBJECT, gobject.TYPE_STRING) self.list_chapters = gtk.TreeStore(gobject.TYPE_PYOBJECT, gobject.TYPE_STRING) ltitles = self.tree.get_object("ltitles") lchapters = self.tree.get_object("lchapters") ltitles.set_model(self.list_titles) lchapters.set_model(self.list_chapters) renderertitles = gtk.CellRendererText() columntitles = gtk.TreeViewColumn("Title", renderertitles, text=1) ltitles.append_column(columntitles) rendererchapters = gtk.CellRendererText() columnchapters = gtk.TreeViewColumn("Title", rendererchapters, text=1) lchapters.append_column(columnchapters) #ltitles.connect("button_release_event",self.on_titleclick) #lchapters.connect("button_release_event",self.on_chapterclick) self.set_default_global() self.callback = callback # callback to call to show again the SELECT_DISK dialog if global_vars["PAL"]: w = self.tree.get_object("default_pal") os.environ["VIDEO_FORMAT"] = "PAL" else: w = self.tree.get_object("default_ntsc") os.environ["VIDEO_FORMAT"] = "NTSC" w.set_active(True) w = self.tree.get_object("add_title") w.get_settings().props.gtk_button_images = True self.window.show()
def preview(self, filefolder): if (self.has_mp3lame == False): self.window.destroy() return self.init_queue() newtree = devede_other.create_tree(self, "wpreview_dialog", self.gladefile, False) timev = newtree.get_object("seconds_preview") timev.set_value(60) w = newtree.get_object("wpreview_dialog") w.show() ret = w.run() w.hide() self.filefolder = filefolder if self.filefolder[-1] != os.sep: self.filefolder += os.sep self.seconds = timev.get_value() w.destroy() if ret != -6: self.window.destroy() return self.runner = None self.queue.append(["PREVIEW"]) # Preview self.total_done = 0.0 self.filename = "previewfile" try: fichero = open(self.filefolder + "write_check", "w") fichero.write("Testing") fichero.close() except: self.show_error( _("Failed to write to the destination directory.\nCheck that you have privileges and free space there." )) self.window.destroy() return try: os.remove(self.filefolder + "write_check") except: print "Failed to erase the write check file" self.eraser = devede_delete.delete_files(self.filename, self.filefolder) self.erase_temp = True self.timer = gobject.timeout_add(250, self.time_callback) self.window.show() return
def show_final_time(self): if (self.erase_temp): self.eraser.delete_xml() self.window.hide() self.window.destroy() if (self.global_vars["shutdown_after_disc"]): print "\n\nApago el ordenador\n\n" failure=False # First, try with ConsoleKit try: bus = dbus.SystemBus() bus_object = bus.get_object("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager") bus_object.Stop(dbus_interface="org.freedesktop.ConsoleKit.Manager") except: failure=True if (failure): failure=False # If it fails, try with HAL try: bus = dbus.SystemBus() bus_object = bus.get_object("org.freedesktop.Hal", "/org/freedesktop/Hal/devices/computer") bus_object.Shutdown(dbus_interface="org.freedesktop.Hal.Device.SystemPowerManagement") except: failure=True if (failure==False): Gtk.main_quit() newtree=devede_other.create_tree(self,"wend_dialog",self.gladefile,False) label=newtree.get_object("elapsed") tiempo2=devede_other.return_time(time.time()-self.tiempo,True) label.set_text(tiempo2) window=newtree.get_object("wend_dialog") burn = newtree.get_object("burn_button") # only enable button if k3b is available # TODO: support other burners if (self.k3b_available==False) and (self.brasero_available==False): burn.set_sensitive(False) burn.connect('clicked', self.burn) window.show() window.run() window.hide() window.destroy() window = None newtree = None gc.collect() (self.main_window_callback)()
def __init__(self,gladefile,message): """ Shows a window with an error """ self.newtree=devede_other.create_tree(self,"wwarning_dialog",gladefile,False) label=self.newtree.get_object("wwarning_dialog_text") label.set_text(message) window=self.newtree.get_object("wwarning_dialog") window.show() window.run() window.hide() window.destroy() window=None
def __init__(self, gladefile, structure, global_vars): """ Shows a window with a preview of the disc menu """ self.menu_preview = None if global_vars["PAL"]: newtree = devede_other.create_tree(self, "wmenu_preview_pal", gladefile) window = newtree.get_object("wmenu_preview_pal") self.menu_preview = newtree.get_object("preview_draw_pal") else: newtree = devede_other.create_tree(self, "wmenu_preview_ntsc", gladefile) window = newtree.get_object("wmenu_preview_ntsc") self.menu_preview = newtree.get_object("preview_draw_ntsc") print self.menu_preview if global_vars.has_key("install_path") == False: global_vars["install_path"] = None if global_vars.has_key("path") == False: global_vars["path"] = "" if global_vars.has_key("menu_sound") == False: global_vars["menu_sound"] = "" if global_vars.has_key("menu_sound_duration") == False: global_vars["menu_sound_duration"] = 1 clase = devede_xml_menu.xml_files(None, None, None, structure, global_vars, "", "") self.sf = clase.create_menu_bg(0, 0) if self.sf == None: devede_dialogs.show_error( gladefile, _("Can't find the menu background.\nCheck the menu options.")) else: window.show() window.run() window.hide() window.destroy() window = None
def __init__(self,global_vars,callback): self.global_vars=global_vars self.gladefile=global_vars["gladefile"] self.tree=devede_other.create_tree(self,"wmain",self.gladefile) self.window=self.tree.get_object("wmain") if (sys.platform=="win32") or (sys.platform=="win64"): self.window.drag_dest_set(0,[],0) self.window.connect('drag_drop', self.drop_cb) else: self.window.drag_dest_set(gtk.DEST_DEFAULT_MOTION | gtk.DEST_DEFAULT_HIGHLIGHT | gtk.DEST_DEFAULT_DROP,[ ( "text/plain", 0, 80), ( "video/*", 0, 81) ],gtk.gdk.ACTION_COPY) self.global_vars["main_window"]=self.window self.list_titles=gtk.TreeStore(gobject.TYPE_PYOBJECT,gobject.TYPE_STRING) self.list_chapters=gtk.TreeStore(gobject.TYPE_PYOBJECT,gobject.TYPE_STRING) ltitles=self.tree.get_object("ltitles") lchapters=self.tree.get_object("lchapters") ltitles.set_model(self.list_titles) lchapters.set_model(self.list_chapters) renderertitles=gtk.CellRendererText() columntitles = gtk.TreeViewColumn("Title", renderertitles, text=1) ltitles.append_column(columntitles) rendererchapters=gtk.CellRendererText() columnchapters = gtk.TreeViewColumn("Title", rendererchapters, text=1) lchapters.append_column(columnchapters) #ltitles.connect("button_release_event",self.on_titleclick) #lchapters.connect("button_release_event",self.on_chapterclick) self.set_default_global() self.callback=callback # callback to call to show again the SELECT_DISK dialog if global_vars["PAL"]: w=self.tree.get_object("default_pal") os.environ["VIDEO_FORMAT"]="PAL" else: w=self.tree.get_object("default_ntsc") os.environ["VIDEO_FORMAT"]="NTSC" w.set_active(True) self.window.show() print "Cores: "+str(self.get_cores())
def preview(self,filefolder): if (self.has_mp3lame==False): self.window.destroy() return self.init_queue() newtree=devede_other.create_tree(self,"wpreview_dialog",self.gladefile,False) timev=newtree.get_object("seconds_preview") timev.set_value(60) w=newtree.get_object("wpreview_dialog") w.show() ret=w.run() w.hide() self.filefolder=filefolder if self.filefolder[-1]!=os.sep: self.filefolder+=os.sep self.seconds=timev.get_value() w.destroy() if ret!=-6: self.window.destroy() return self.runner=None self.queue.append(["PREVIEW"]) # Preview self.total_done=0.0 self.filename="previewfile" try: fichero=open(self.filefolder+"write_check","w") fichero.write("Testing") fichero.close() except: self.show_error(_("Failed to write to the destination directory.\nCheck that you have privileges and free space there.")) self.window.destroy() return try: os.remove(self.filefolder+"write_check") except: print "Failed to erase the write check file" self.eraser=devede_delete.delete_files(self.filename,self.filefolder) self.erase_temp=True self.timer=gobject.timeout_add(250,self.time_callback) self.window.show() return
def check_mp3lame(self): runner=devede_executor.executor() runner.launch_program(["ffmpeg","-codecs"],sep_stderr=True,keep_out=True) runner.wait_end2() print "Salida "+str(runner.cadena) pos=runner.cadena.find("mp3lame") if (pos==-1): tree=devede_other.create_tree(self,"wno_mp3lame",self.gladefile) w=tree.get_object("nomp3lame") w.show() w.run() w.destroy() self.has_mp3lame=False return False else: self.has_mp3lame=True return True
def show_final_time(self): if (self.erase_temp): self.eraser.delete_xml() self.window.hide() self.window.destroy() newtree=devede_other.create_tree(self,"wend_dialog",self.gladefile,False) label=newtree.get_object("elapsed") tiempo2=devede_other.return_time(time.time()-self.tiempo,True) label.set_text(tiempo2) window=newtree.get_object("wend_dialog") window.show() window.run() window.hide() window.destroy() window = None newtree = None gc.collect() (self.main_window_callback)()
def __init__(self, gladefile, structure, global_vars, callback): if (0 != devede_other.check_program("k3b -v")): self.k3b_available = False else: self.k3b_available = True if (0 != devede_other.check_program("brasero --help")): self.brasero_available = False else: self.brasero_available = True self.gladefile = gladefile self.structure = structure self.global_vars = global_vars self.has_mp3lame = True if (global_vars["disctocreate"] == "divx") and (global_vars["use_ffmpeg"]): if (False == self.check_mp3lame()): return self.tree = devede_other.create_tree(self, "wprogress", self.gladefile) self.window = self.tree.get_object("wprogress") self.partial = self.tree.get_object("progresspartial") self.erase_temp = global_vars["erase_temporary_files"] self.iso_creator = global_vars["iso_creator"] self.queue = [] self.current_action = 0 self.actions = global_vars["number_actions"] self.total = self.tree.get_object("progress_total") self.label = self.tree.get_object("lcreating") self.total.set_fraction(0) self.partial.set_fraction(0) self.partial.set_text("0%") self.label.set_text("") self.start_time = time.time() self.disk_type = global_vars["disctocreate"] self.main_window_callback = callback self.tiempo = time.time()
def __init__(self,gladefile,structure,global_vars,callback): if (0!=devede_other.check_program("k3b -v")): self.k3b_available=False else: self.k3b_available=True if (0!=devede_other.check_program("brasero --help")): self.brasero_available=False else: self.brasero_available=True self.gladefile=gladefile self.structure=structure self.global_vars=global_vars self.has_mp3lame=True if (global_vars["disctocreate"]=="divx") and ((global_vars["encoder_video"]=="ffmpeg") or (global_vars["encoder_video"]=="avconv")): if (False==self.check_mp3lame()): return self.tree=devede_other.create_tree(self,"wprogress",self.gladefile) self.window=self.tree.get_object("wprogress") self.partial=self.tree.get_object("progresspartial") self.erase_temp=global_vars["erase_temporary_files"] self.iso_creator=global_vars["iso_creator"] self.queue=[] self.current_action=0 self.actions=global_vars["number_actions"] self.total=self.tree.get_object("progress_total") self.label=self.tree.get_object("lcreating") self.total.set_fraction(0) self.partial.set_fraction(0) self.partial.set_text("0%") self.label.set_text("") self.start_time=time.time() self.disk_type=global_vars["disctocreate"] self.main_window_callback=callback self.tiempo=time.time()
def __init__(self, gladefile, structure, title): self.structure = structure self.title = title self.tree = devede_other.create_tree(self, "wtitle_properties_dialog", gladefile, True) self.window = self.tree.get_object("wtitle_properties_dialog") w = self.tree.get_object("title_name") w.set_text(structure[title][0]["nombre"]) w.grab_focus() action = structure[title][0]["jumpto"] if action == "menu": w = self.tree.get_object("title_jmenu") elif action == "first": w = self.tree.get_object("title_jfirst") elif action == "prev": w = self.tree.get_object("title_jprev") elif action == "loop": w = self.tree.get_object("title_jthis") elif action == "next": w = self.tree.get_object("title_jnext") elif action == "last": w = self.tree.get_object("title_jlast") w.set_active(True) self.window.show() retval = self.window.run() print "Salgo de propiedades " + str(retval) self.window.hide() if retval == -5: self.update_title() self.window.destroy() self.window = None
def __init__(self,gladefile,structure,global_vars): self.gladefile=gladefile self.structure=structure self.global_vars=global_vars self.tree=devede_other.create_tree(self,"settings",self.gladefile,False) self.tree.connect_signals(self) wsettings=self.tree.get_object("wsettings_dialog") self.videos_combo=self.tree.get_object("combobox_videos") self.menus_combo=self.tree.get_object("combobox_menus") self.set_model_from_list(self.videos_combo,global_vars["encoders"],global_vars["encoder_video"]) self.set_model_from_list(self.menus_combo,global_vars["encoders"],global_vars["encoder_menu"]) w=self.tree.get_object("erase_files") w.set_active(self.global_vars["erase_files"]) self.hyper=self.tree.get_object("hyperthreading") self.multicore=self.tree.get_object("multicore") if (self.global_vars["multicore"]==1): self.multicore.set_active(False) self.hyper.set_active(False) self.hyper.set_sensitive(False) else: self.multicore.set_active(True) self.global_vars["multicore"]=self.global_vars["cores"] self.hyper.set_sensitive(True) self.hyper.set_active(self.global_vars["hyperthreading"]) self.ac3_fix=self.tree.get_object("AC3_fix") self.ac3_fix.set_sensitive(True) self.ac3_fix.set_active(self.global_vars["AC3_fix"]) self.ac3_fix_ffmpeg=self.tree.get_object("AC3_fix_ffmpeg") self.ac3_fix_ffmpeg.set_sensitive(True) self.ac3_fix_ffmpeg.set_active(self.global_vars["AC3_fix_ffmpeg"]) self.ac3_fix_avconv=self.tree.get_object("AC3_fix_avconv") self.ac3_fix_avconv.set_sensitive(True) self.ac3_fix_avconv.set_active(self.global_vars["AC3_fix_avconv"]) print "Path: "+str(global_vars["temp_folder"]) path=self.tree.get_object("temporary_files") path.set_current_folder(global_vars["temp_folder"]) self.on_toggled_cb(None) wsettings.show() value=wsettings.run() wsettings.hide() if value!=-6: wsettings.destroy() return w=self.tree.get_object("erase_files") self.global_vars["erase_files"]=w.get_active() w=self.tree.get_object("multicore") if w.get_active(): self.global_vars["multicore"]=self.global_vars["cores"] self.global_vars["hyperthreading"]=self.hyper.get_active() else: self.global_vars["multicore"]=1 self.global_vars["hyperthreading"]=False self.global_vars["encoder_video"]=self.global_vars["encoders"][self.videos_combo.get_active()] self.global_vars["encoder_menu"]=self.global_vars["encoders"][self.menus_combo.get_active()] self.global_vars["AC3_fix"]=self.ac3_fix.get_active() self.global_vars["AC3_fix_ffmpeg"]=self.ac3_fix_ffmpeg.get_active() self.global_vars["AC3_fix_avconv"]=self.ac3_fix_avconv.get_active() path=self.tree.get_object("temporary_files") self.global_vars["temp_folder"]=path.get_current_folder() print "Path: "+str(self.global_vars["temp_folder"]) wsettings.destroy() return
def __init__(self,gladefile): self.newtree=devede_other.create_tree(self,"wloosecurrent",gladefile,False) self.window=self.newtree.get_object("wloosecurrent")
def __init__(self,gladefile,structure,global_vars): self.gladefile=gladefile self.structure=structure self.global_vars=global_vars self.tree=devede_other.create_tree(self,"settings",self.gladefile,False) self.tree.connect_signals(self) wsettings=self.tree.get_object("wsettings_dialog") self.videos_combo=self.tree.get_object("combobox_videos") self.menus_combo=self.tree.get_object("combobox_menus") self.set_model_from_list(self.videos_combo,global_vars["encoders"],global_vars["encoder_video"]) self.set_model_from_list(self.menus_combo,global_vars["encoders"],global_vars["encoder_menu"]) w=self.tree.get_object("erase_files") w.set_active(self.global_vars["erase_files"]) self.hyper=self.tree.get_object("hyperthreading") w=self.tree.get_object("multicore") # Currently only burning dvds after conversion is supported. burn_after = self.tree.get_object("burn_after") self.multicore=self.tree.get_object("multicore") if self.global_vars["disctocreate"] == "dvd": burn_after.set_sensitive(True) else: burn_after.set_tooltip_text("Only available on DVD creation") burn_after.set_active(False) burn_after.set_sensitive(False) if (self.global_vars["multicore"]==1): self.multicore.set_active(False) self.hyper.set_active(False) self.hyper.set_sensitive(False) else: self.multicore.set_active(True) self.global_vars["multicore"]=self.global_vars["cores"] self.hyper.set_sensitive(True) self.hyper.set_active(self.global_vars["hyperthreading"]) self.ac3_fix=self.tree.get_object("AC3_fix") self.ac3_fix.set_sensitive(True) self.ac3_fix.set_active(self.global_vars["AC3_fix"]) self.ac3_fix_ffmpeg=self.tree.get_object("AC3_fix_ffmpeg") self.ac3_fix_ffmpeg.set_sensitive(True) self.ac3_fix_ffmpeg.set_active(self.global_vars["AC3_fix_ffmpeg"]) self.ac3_fix_avconv=self.tree.get_object("AC3_fix_avconv") self.ac3_fix_avconv.set_sensitive(True) self.ac3_fix_avconv.set_active(self.global_vars["AC3_fix_avconv"]) print "Path: "+str(global_vars["temp_folder"]) path=self.tree.get_object("temporary_files") path.set_current_folder(global_vars["temp_folder"]) self.on_toggled_cb(None) wsettings.show() value=wsettings.run() wsettings.hide() if value!=-6: wsettings.destroy() return w=self.tree.get_object("erase_files") self.global_vars["erase_files"]=w.get_active() w=self.tree.get_object("multicore") if w.get_active(): self.global_vars["multicore"]=self.global_vars["cores"] self.global_vars["hyperthreading"]=self.hyper.get_active() else: self.global_vars["multicore"]=1 self.global_vars["hyperthreading"]=False self.global_vars["encoder_video"]=self.global_vars["encoders"][self.videos_combo.get_active()] self.global_vars["encoder_menu"]=self.global_vars["encoders"][self.menus_combo.get_active()] self.global_vars["AC3_fix"]=self.ac3_fix.get_active() self.global_vars["AC3_fix_ffmpeg"]=self.ac3_fix_ffmpeg.get_active() self.global_vars["AC3_fix_avconv"]=self.ac3_fix_avconv.get_active() path=self.tree.get_object("temporary_files") self.global_vars["temp_folder"]=path.get_current_folder() print "Path: "+str(self.global_vars["temp_folder"]) #Windows Specific *** self.global_vars["shutdown_after"] = self.tree.get_object("shutdown_after").get_active() self.global_vars["burn_after"] = self.tree.get_object("burn_after").get_active() # ******************* wsettings.destroy() return
def __init__(self,gladefile,structure,global_vars,callback): self.global_vars=global_vars self.gladefile=gladefile self.structure=structure self.callback=callback self.tree=devede_other.create_tree(self,"wmenu_properties",self.gladefile) self.window=self.tree.get_object("wmenu_properties") menu_filename=global_vars["menu_bg"] if menu_filename==None: menu_filename=os.path.join(global_vars["path"],"backgrounds","default_bg.png") w=self.tree.get_object("menu_bg_file") w.set_filename(menu_filename) filter=gtk.FileFilter() filter.add_mime_type("image/*") filter.set_name("Pictures") w.add_filter(filter) self.preview_x=200 self.preview_y=200 self.sf_final=cairo.ImageSurface(cairo.FORMAT_ARGB32,self.preview_x,self.preview_y) self.preview=gtk.DrawingArea() self.preview.set_size_request(self.preview_x,self.preview_y) self.preview.connect("expose-event",self.repaint_preview) w.set_preview_widget(self.preview) self.on_menu_bg_file_update_preview(w,menu_filename) self.adding_sound=True w=self.tree.get_object("menu_sound") print "filtro" filter2=gtk.FileFilter() filter2.add_mime_type("audio/mpeg") filter2.add_mime_type("audio/x-wav") filter2.add_mime_type("application/ogg") filter2.add_mime_type("audio/ogg") filter2.set_name("Audio files") w.add_filter(filter2) print "filtrado" w.set_filename(global_vars["menu_sound"]) print "Añado" w=self.tree.get_object("menufont") w.set_font_name(global_vars["fontname"]) w=self.tree.get_object("unselected_color") color=global_vars["menu_font_color"] c1=gtk.gdk.Color(color[0],color[1],color[2]) w.set_color(c1) w.set_alpha(color[3]) w=self.tree.get_object("selected_color") color=global_vars["menu_selc_color"] c1=gtk.gdk.Color(color[0],color[1],color[2]) w.set_color(c1) w=self.tree.get_object("shadow_color") color=global_vars["menu_shadow_color"] c1=gtk.gdk.Color(color[0],color[1],color[2]) w.set_color(c1) w.set_alpha(color[3]) w=self.tree.get_object("bg_color") color=global_vars["menu_bgcolor"] c1=gtk.gdk.Color(color[0],color[1],color[2]) w.set_color(c1) w.set_alpha(color[3]) if global_vars["menu_alignment"]==0: w=self.tree.get_object("menutop") elif global_vars["menu_alignment"]==1: w=self.tree.get_object("menubottom") else: w=self.tree.get_object("menumiddle") w.set_active(True) if global_vars["menu_halignment"]==0: w=self.tree.get_object("menuleft") elif global_vars["menu_halignment"]==1: w=self.tree.get_object("menuright") else: w=self.tree.get_object("menucenter") w.set_active(True) if global_vars["do_menu"]: w=self.tree.get_object("domenu") else: w=self.tree.get_object("notmenu") w.set_active(True) w=self.tree.get_object("menu_title_text") w.set_text(global_vars["menu_title_text"]) w=self.tree.get_object("menu_title_color") color=global_vars["menu_title_color"] c1=gtk.gdk.Color(color[0],color[1],color[2]) w.set_color(c1) w.set_alpha(color[3]) w=self.tree.get_object("menu_title_shadow") color=global_vars["menu_title_shadow"] c1=gtk.gdk.Color(color[0],color[1],color[2]) w.set_color(c1) w.set_alpha(color[3]) w=self.tree.get_object("menu_title_font") w.set_font_name(global_vars["menu_title_fontname"]) self.window.show()
def __init__(self, gladefile, structure, global_vars, callback): self.global_vars = global_vars self.gladefile = gladefile self.structure = structure self.callback = callback self.tree = devede_other.create_tree(self, "wmenu_properties", self.gladefile) self.window = self.tree.get_object("wmenu_properties") menu_filename = global_vars["menu_bg"] if menu_filename == None: menu_filename = os.path.join(global_vars["path"], "backgrounds", "default_bg.png") w = self.tree.get_object("menu_bg_file") w.set_filename(menu_filename) filter = gtk.FileFilter() filter.add_mime_type("image/*") filter.set_name("Pictures") w.add_filter(filter) self.preview_x = 200 self.preview_y = 200 self.sf_final = cairo.ImageSurface(cairo.FORMAT_ARGB32, self.preview_x, self.preview_y) self.preview = gtk.DrawingArea() self.preview.set_size_request(self.preview_x, self.preview_y) self.preview.connect("expose-event", self.repaint_preview) w.set_preview_widget(self.preview) self.on_menu_bg_file_update_preview(w, menu_filename) self.adding_sound = True w = self.tree.get_object("menu_sound") print "filtro" filter2 = gtk.FileFilter() filter2.add_mime_type("audio/mpeg") filter2.add_mime_type("audio/x-wav") filter2.add_mime_type("application/ogg") filter2.add_mime_type("audio/ogg") filter2.set_name("Audio files") w.add_filter(filter2) print "filtrado" w.set_filename(global_vars["menu_sound"]) print "Añado" w = self.tree.get_object("menufont") w.set_font_name(global_vars["fontname"]) w = self.tree.get_object("unselected_color") color = global_vars["menu_font_color"] c1 = gtk.gdk.Color(color[0], color[1], color[2]) w.set_color(c1) w.set_alpha(color[3]) w = self.tree.get_object("selected_color") color = global_vars["menu_selc_color"] c1 = gtk.gdk.Color(color[0], color[1], color[2]) w.set_color(c1) w = self.tree.get_object("shadow_color") color = global_vars["menu_shadow_color"] c1 = gtk.gdk.Color(color[0], color[1], color[2]) w.set_color(c1) w.set_alpha(color[3]) w = self.tree.get_object("bg_color") color = global_vars["menu_bgcolor"] c1 = gtk.gdk.Color(color[0], color[1], color[2]) w.set_color(c1) w.set_alpha(color[3]) if global_vars["menu_alignment"] == 0: w = self.tree.get_object("menutop") elif global_vars["menu_alignment"] == 1: w = self.tree.get_object("menubottom") else: w = self.tree.get_object("menumiddle") w.set_active(True) if global_vars["menu_halignment"] == 0: w = self.tree.get_object("menuleft") elif global_vars["menu_halignment"] == 1: w = self.tree.get_object("menuright") else: w = self.tree.get_object("menucenter") w.set_active(True) if global_vars["do_menu"]: w = self.tree.get_object("domenu") else: w = self.tree.get_object("notmenu") w.set_active(True) w = self.tree.get_object("menu_title_text") w.set_text(global_vars["menu_title_text"]) w = self.tree.get_object("menu_title_color") color = global_vars["menu_title_color"] c1 = gtk.gdk.Color(color[0], color[1], color[2]) w.set_color(c1) w.set_alpha(color[3]) w = self.tree.get_object("menu_title_shadow") color = global_vars["menu_title_shadow"] c1 = gtk.gdk.Color(color[0], color[1], color[2]) w.set_color(c1) w.set_alpha(color[3]) w = self.tree.get_object("menu_title_font") w.set_font_name(global_vars["menu_title_fontname"]) self.window.show()
def time_callback(self): """ This method launches all the conversion stages when needed, using the standard executor interface to manage all of them in an easy way """ self.total.set_text( str(self.current_action) + "/" + str(len(self.queue) - 1)) self.total.set_fraction( float(self.current_action) / (float(len(self.queue) - 1))) if self.runner != None: if self.runner.initerror: retval = -1 else: retval = self.runner.refresh() if retval == 0: # no error, still running return True else: self.current_action += 1 retval = self.runner.wait_end() if (retval != 0) or (self.runner.initerror): self.window.hide() self.window.destroy() if self.runner.print_error == None: self.runner.print_error = _("Unknown error") self.show_error(self.runner.print_error) (self.main_window_callback)() return False else: self.runner.end_process(self.eraser, self.erase_temp) self.runner = None action = self.queue[self.current_action] if action[0] == "M1": self.runner = action[1] self.runner.create_menu1(action[2], action[3], self.global_vars["multicore"]) return True if (action[0] == 'C') or (action[0] == 'C1') or (action[0] == 'C2'): title = action[1] chapter = action[2] if action[0] == "C": encpass = 0 else: encpass = int(action[0][1]) print "Segundos " + str(self.seconds) if (self.global_vars["use_ffmpeg"]): self.runner = devede_ffmpeg_convert.video_converter_ffmpeg( self.global_vars, self.structure[title][chapter + 1], self.filename, self.filefolder, self.partial, self.label, self.global_vars["disctocreate"], title + 1, chapter + 1, self.global_vars["multicore"], self.seconds, encpass, self.global_vars["AC3_fix"]) else: self.runner = devede_video_convert.video_converter( self.global_vars, self.structure[title][chapter + 1], self.filename, self.filefolder, self.partial, self.label, self.global_vars["disctocreate"], title + 1, chapter + 1, self.global_vars["multicore"], self.seconds, encpass, self.global_vars["AC3_fix"]) return True if action[0] == "C2": title = action[1] chapter = action[2] if (self.global_vars["use_ffmpeg"]): self.runner = devede_ffmpeg_convert.video_converter_ffmpeg( self.structure[title][chapter + 1], self.filename, self.filefolder, self.partial, self.label, self.global_vars["disctocreate"], title + 1, chapter + 1, self.global_vars["multicore"], self.seconds, 2, self.global_vars["AC3_fix"]) else: self.runner = devede_video_convert.video_converter( self.structure[title][chapter + 1], self.filename, self.filefolder, self.partial, self.label, self.global_vars["disctocreate"], title + 1, chapter + 1, self.global_vars["multicore"], self.seconds, 2, self.global_vars["AC3_fix"]) return True if action[0] == "S": title = action[1] chapter = action[2] sub_stream = action[3] self.runner = devede_subtitles.subtitles_adder( self.structure[title][chapter + 1], self.filename, self.filefolder, self.partial, self.label, self.global_vars["disctocreate"], title + 1, chapter + 1, sub_stream) return True if action[0] == "PREVIEW": self.window.hide() self.window.destroy() if (sys.platform == "win32") or (sys.platform == "win64"): mplay = "mplayer.exe" else: mplay = "mplayer" fname = self.filefolder + "previewfile_01_01." if self.disk_type == "divx": fname += "avi" else: fname += "mpg" parameters = [mplay, "-sid", "0", fname, "-loop", "1"] newtree = devede_other.create_tree(self, "wpreviewagain_dialog", self.gladefile, False) w = newtree.get_object("wpreviewagain_dialog") while True: salida = devede_executor.executor("previewfile", self.filefolder, None) salida.launch_program(parameters, output=False) salida.wait_end() w.show() ret = w.run() w.hide() if ret != -6: break while gtk.events_pending(): gtk.main_iteration() w.destroy() os.remove(fname) return False if action[0] == "DVD_STRUCTURE": self.runner = devede_dvd.dvd_generator(self.filename, self.filefolder, self.partial, self.label) return True if action[0] == "CD_IMAGE": self.runner = devede_bincue.xvcd_generator( self.filename, self.filefolder, self.partial, self.label, self.structure, self.disk_type) return True if action[0] == "DVD_IMAGE": self.runner = devede_bincue.iso_generator(self.filename, self.filefolder, self.partial, self.label, self.iso_creator) return True if action[0] == "END": self.show_final_time() return False return True
def create_disc(self): self.time = 0 if (self.has_mp3lame == False): self.window.hide() self.window.destroy() (self.main_window_callback)() return False # first, check for empty titles empty = False for element in self.structure: if len(element) < 2: empty = True break if empty: newtree = devede_other.create_tree(self, "wempty_titles_dialog", self.gladefile, False) w = newtree.get_object("wempty_titles_dialog") w.show() value = w.run() w.hide() w.destroy() if value != -6: self.window.hide() self.window.destroy() (self.main_window_callback)() return False # ask the folder and filename newtree = devede_other.create_tree(self, "wfolder_dialog", self.gladefile, False) wdir = newtree.get_object("final_directory") if self.global_vars["finalfolder"] != "": wdir.set_current_folder(self.global_vars["finalfolder"]) wfile = newtree.get_object("iso_filename") wfolder_dialog = newtree.get_object("wfolder_dialog") do_shdw = newtree.get_object("do_shutdown") wfile.set_text("movie") wfile.connect("activate", self.on_iso_filename_activate, wfolder_dialog) wfile.connect("changed", self.iso_changed, newtree) wdir.connect("current-folder-changed", self.iso_changed, newtree) #self.iso_changed("",newtree) wfolder_dialog.show() wfile.grab_focus() print "Entro en RUN" value = wfolder_dialog.run() print "Salgo de RUN" self.global_vars["shutdown_after_disc"] = do_shdw.get_active() self.filename = wfile.get_text() self.filename.replace("/", "_") self.filename.replace("|", "_") self.filename.replace("\\", "_") filefolder = wdir.get_current_folder() wfolder_dialog.hide() wfolder_dialog.destroy() if value != -6: self.window.hide() self.window.destroy() (self.main_window_callback)() return False self.global_vars["finalfolder"] = filefolder filefolder2 = os.path.join(filefolder, self.filename) self.filefolder = filefolder2 if self.filefolder[-1] != os.sep: self.filefolder += os.sep if (os.path.exists(filefolder2)): newtree = devede_other.create_tree(self, "wfolder_exists", self.gladefile, False) w = newtree.get_object("wfolder_exists") wtext = newtree.get_object("folder_exists_label") wtext.set_text( _("The file or folder\n\n%(folder)s\n\nalready exists. If you continue, it will be deleted." ) % {'folder': filefolder2}) w.show() value = w.run() w.hide() w.destroy() if value != 2: self.window.hide() self.window.destroy() (self.main_window_callback)() return False try: os.remove(filefolder2) except: pass try: os.mkdir(filefolder2) except: pass self.eraser = devede_delete.delete_files(self.filename, self.filefolder) hasfree, msg = self.check_free_space( self.filefolder, self.structure, self.actions, self.erase_temp, self.global_vars["menu_sound_duration"]) if hasfree: self.window.hide() self.window.destroy() self.show_error(msg) (self.main_window_callback)() return False # erase all conflicting files self.eraser.delete_all() # now, create the XML files (even with VCD, SVCD or CVD, to check if we have write permissions) xml_files = devede_xml_menu.xml_files(self.partial, self.filename, self.filefolder, self.structure, self.global_vars, self.label) counter = 0 counter2 = 0 if (self.disk_type == "dvd"): if xml_files.do_menus(): nelements = xml_files.get_elements_per_menu() while (len(self.structure[counter:]) != 0): self.queue.append(["M1", xml_files, counter, counter2]) counter += nelements counter2 += 1 self.init_queue() retorno = xml_files.create_files() if retorno != None: self.window.hide() self.window.destroy() self.show_error(retorno) (self.main_window_callback)() return False self.runner = None if self.actions != 1: # want to do, at least, the DVD structure, or the VCD image if self.disk_type == "dvd": self.queue.append(["DVD_STRUCTURE"]) if self.actions == 3: # do DVD image too self.queue.append(["DVD_IMAGE"]) else: self.queue.append(["CD_IMAGE"]) self.queue.append(["END"]) self.seconds = 0 self.total_done = 0.0 self.timer = gobject.timeout_add(250, self.time_callback) self.window.show() return True
def __init__(self,gladefile): self.newtree=devede_other.create_tree(self,"wcancel_dialog",gladefile,False) self.window=self.newtree.get_object("wcancel_dialog")
def __init__(self, gladefile, structure, global_vars): self.gladefile = gladefile self.structure = structure self.global_vars = global_vars self.tree = devede_other.create_tree(self, "settings", self.gladefile, False) self.tree.connect_signals(self) wsettings = self.tree.get_object("wsettings_dialog") self.videos_combo = self.tree.get_object("combobox_videos") self.menus_combo = self.tree.get_object("combobox_menus") self.set_model_from_list(self.videos_combo, global_vars["encoders"], global_vars["encoder_video"]) self.set_model_from_list(self.menus_combo, global_vars["encoders"], global_vars["encoder_menu"]) w = self.tree.get_object("erase_files") w.set_active(self.global_vars["erase_files"]) self.hyper = self.tree.get_object("hyperthreading") self.multicore = self.tree.get_object("multicore") if (self.global_vars["multicore"] == 1): self.multicore.set_active(False) self.hyper.set_active(False) self.hyper.set_sensitive(False) else: self.multicore.set_active(True) self.global_vars["multicore"] = self.global_vars["cores"] self.hyper.set_sensitive(True) self.hyper.set_active(self.global_vars["hyperthreading"]) self.ac3_fix = self.tree.get_object("AC3_fix") self.ac3_fix.set_sensitive(True) self.ac3_fix.set_active(self.global_vars["AC3_fix"]) self.ac3_fix_ffmpeg = self.tree.get_object("AC3_fix_ffmpeg") self.ac3_fix_ffmpeg.set_sensitive(True) self.ac3_fix_ffmpeg.set_active(self.global_vars["AC3_fix_ffmpeg"]) self.ac3_fix_avconv = self.tree.get_object("AC3_fix_avconv") self.ac3_fix_avconv.set_sensitive(True) self.ac3_fix_avconv.set_active(self.global_vars["AC3_fix_avconv"]) print "Path: " + str(global_vars["temp_folder"]) path = self.tree.get_object("temporary_files") path.set_current_folder(global_vars["temp_folder"]) self.on_toggled_cb(None) wsettings.show() value = wsettings.run() wsettings.hide() if value != -6: wsettings.destroy() return w = self.tree.get_object("erase_files") self.global_vars["erase_files"] = w.get_active() w = self.tree.get_object("multicore") if w.get_active(): self.global_vars["multicore"] = self.global_vars["cores"] self.global_vars["hyperthreading"] = self.hyper.get_active() else: self.global_vars["multicore"] = 1 self.global_vars["hyperthreading"] = False self.global_vars["encoder_video"] = self.global_vars["encoders"][ self.videos_combo.get_active()] self.global_vars["encoder_menu"] = self.global_vars["encoders"][ self.menus_combo.get_active()] self.global_vars["AC3_fix"] = self.ac3_fix.get_active() self.global_vars["AC3_fix_ffmpeg"] = self.ac3_fix_ffmpeg.get_active() self.global_vars["AC3_fix_avconv"] = self.ac3_fix_avconv.get_active() path = self.tree.get_object("temporary_files") self.global_vars["temp_folder"] = path.get_filename() print "Path: " + str(self.global_vars["temp_folder"]) wsettings.destroy() return
def time_callback(self): """ This method launches all the conversion stages when needed, using the standard executor interface to manage all of them in an easy way """ self.total.set_text(str(self.current_action)+"/"+str(len(self.queue)-1)) self.total.set_fraction(float(self.current_action)/(float(len(self.queue)-1))) if self.runner!=None: if self.runner.initerror: retval=-1; else: retval=self.runner.refresh() if retval==0: # no error, still running return True else: self.current_action+=1 retval=self.runner.wait_end() if (retval!=0) or (self.runner.initerror): self.window.hide() self.window.destroy() if self.runner.print_error==None: self.runner.print_error=_("Unknown error") self.show_error(self.runner.print_error) (self.main_window_callback)() return False else: self.runner.end_process(self.eraser,self.erase_temp) self.runner=None action=self.queue[self.current_action] if (self.global_vars["multicore"]!=1) and (self.global_vars["hyperthreading"]==False): cores=self.global_vars["hypercores"] else: cores=self.global_vars["cores"] if action[0]=="M1": self.runner=action[1] self.runner.create_menu1(action[2],action[3],cores) return True if (action[0]=='C') or (action[0]=='C1') or (action[0]=='C2'): title=action[1] chapter=action[2] if action[0]=="C": encpass = 0 else: encpass = int(action[0][1]) print "Segundos "+str(self.seconds) if (self.global_vars["encoder_video"]=="ffmpeg"): self.runner=devede_ffmpeg_convert.video_converter_ffmpeg(self.global_vars,self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, encpass,self.global_vars["AC3_fix_ffmpeg"]) elif (self.global_vars["encoder_video"]=="avconv"): self.runner=devede_avconv_convert.video_converter_ffmpeg(self.global_vars,self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, encpass,self.global_vars["AC3_fix_avconv"]) else: self.runner=devede_video_convert.video_converter(self.global_vars,self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, encpass,self.global_vars["AC3_fix"]) return True if action[0]=="C2": title=action[1] chapter=action[2] if (self.global_vars["encoder_video"]=="ffmpeg"): self.runner=devede_ffmpeg_convert.video_converter_ffmpeg(self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, 2,self.global_vars["AC3_fix_ffmpeg"]) elif (self.global_vars["encoder_video"]=="avconv"): self.runner=devede_avconv_convert.video_converter(self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, 2,self.global_vars["AC3_fix_avconv"]) else: self.runner=devede_video_convert.video_converter(self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, 2,self.global_vars["AC3_fix"]) return True if action[0]=="S": title=action[1] chapter=action[2] sub_stream=action[3] self.runner=devede_subtitles.subtitles_adder(self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,sub_stream) return True if action[0]=="PREVIEW": self.window.hide() self.window.destroy() if (sys.platform=="win32") or (sys.platform=="win64"): mplay="mplayer.exe" else: mplay="mplayer" fname=self.filefolder+"previewfile_01_01." if self.disk_type=="divx": fname+="avi" else: fname+="mpg" parameters=[mplay,"-sid","0",fname,"-loop","1"] newtree=devede_other.create_tree(self,"wpreviewagain_dialog",self.gladefile,False) w=newtree.get_object("wpreviewagain_dialog") while True: salida=devede_executor.executor("previewfile",self.filefolder,None) salida.launch_program(parameters,output=False) salida.wait_end() w.show() ret=w.run() w.hide() if ret!=-6: break while gtk.events_pending(): gtk.main_iteration() w.destroy() os.remove(fname) return False if action[0]=="DVD_STRUCTURE": self.runner=devede_dvd.dvd_generator(self.filename,self.filefolder,self.partial,self.label) return True if action[0]=="CD_IMAGE": self.runner=devede_bincue.xvcd_generator(self.filename,self.filefolder,self.partial,self.label,self.structure,self.disk_type) return True if action[0]=="DVD_IMAGE": self.runner=devede_bincue.iso_generator(self.filename,self.filefolder,self.partial,self.label,self.iso_creator) return True if action[0]=="END": self.show_final_time() return False return True
def __init__(self,global_vars,title,chapter,structure,callback_refresh): newfile.__init__(self,global_vars["PAL"],global_vars["disctocreate"]) self.gladefile=global_vars["gladefile"] self.global_vars=global_vars self.title=title self.chapter=chapter self.structure=structure self.callback_refresh=callback_refresh self.tree=devede_other.create_tree(self,"wfile",self.gladefile) self.window=self.tree.get_object("wfile") self.window.show() self.window.drag_dest_set(gtk.DEST_DEFAULT_MOTION | gtk.DEST_DEFAULT_HIGHLIGHT | gtk.DEST_DEFAULT_DROP,[ ( "text/plain", 0, 80 ), ( "video/*", 0, 81) ],gtk.gdk.ACTION_COPY) w = self.tree.get_object("expander_advanced") w.set_expanded(self.global_vars["expand_advanced"]) if global_vars["PAL"]: w=self.tree.get_object("video_pal") else: w=self.tree.get_object("video_ntsc") w.set_active(True) # Model and view for subtitles # first element: position # second: filename # third: codepage self.sub_model=gtk.ListStore(gobject.TYPE_INT, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) self.sub_tree=self.tree.get_object("sub_treeview") self.sub_tree.set_model(self.sub_model) render1=gtk.CellRendererText() column1=gtk.TreeViewColumn(_("Subtitle"),render1,text=1) self.sub_tree.append_column(column1) render2=gtk.CellRendererText() column2=gtk.TreeViewColumn(_("Codepage"),render2,text=2) self.sub_tree.append_column(column2) render3=gtk.CellRendererText() column3=gtk.TreeViewColumn(_("Language"),render3,text=3) self.sub_tree.append_column(column3) # Model and view for audio tracks self.audio_model=gtk.ListStore(gobject.TYPE_STRING) self.audio_view=self.tree.get_object("audiotrack") self.audio_view.set_model(self.audio_model) audiorender=gtk.CellRendererText() self.audio_view.pack_start(audiorender,True) self.audio_view.add_attribute(audiorender,"text",0) w1 = self.tree.get_object("subtitles_label") w2 = self.tree.get_object("frame_special") w3 = self.tree.get_object("gop12") w4 = self.tree.get_object("res1280x720") w5 = self.tree.get_object("res1920x1080") w6 = self.tree.get_object("subtitles_list") w7 = self.tree.get_object("res160x128") if (self.disctocreate == "divx"): w1.show() w2.hide() w3.hide() w4.show() w5.show() w6.hide() w7.show() else: w1.hide() w2.show() w3.show() w4.hide() w5.hide() w6.show() w7.hide() w=self.tree.get_object("noaudiotracks") w.hide() w=self.tree.get_object("file_split_frame") if (self.disctocreate=="vcd") or (self.disctocreate=="svcd") or (self.disctocreate=="cvd"): w.show() else: w.hide() w = self.tree.get_object("frame_division") # SPLIT THE FILES IN CHAPTERS FOR EASY SEEKING if (self.disctocreate == "dvd"): w.show() else: w.hide() self.set_resolution() self.change_file=False if (self.chapter!=-1): # we want to modify a chapter the_chapter=structure[title][chapter] print "Chequeo "+str(the_chapter["path"]) isvideo,audio_tracks=self.read_file_values(the_chapter["path"],True) if isvideo==True: self.read_file_values(the_chapter["path"],False) # get all the values in FILE_VALUES self.file_properties=copy.deepcopy(the_chapter) self.change_file=True # we are changing the file name manually w=self.tree.get_object("moviefile") print "Pongo nombre por propiedades" w.set_filename(self.file_properties["path"]) else: w1.set_sensitive(False) else: if (self.global_vars["filmpath"]!=""): w=self.tree.get_object("moviefile") w.set_current_folder(self.global_vars["filmpath"]) w=self.tree.get_object("moviefile") self.file_filter_videos=gtk.FileFilter() self.file_filter_videos.set_name(_("Video files")) if (sys.platform!="win32") and (sys.platform!="win64"): self.file_filter_videos.add_mime_type("video/*") self.file_filter_videos.add_pattern("*.rmvb") else: self.file_filter_videos.add_custom(gtk.FILE_FILTER_FILENAME|gtk.FILE_FILTER_DISPLAY_NAME, self.custom_video_filter) self.file_filter_all=gtk.FileFilter() self.file_filter_all.set_name(_("All files")) self.file_filter_all.add_pattern("*") print "Anado filtro" w.add_filter(self.file_filter_videos) print "Anado filtro" w.add_filter(self.file_filter_all) self.set_widgets() if (self.chapter!=-1): # we want to modify a chapter self.set_global_values() self.set_film_buttons() if (self.chapter!=-1): # we want to modify a chapter print "Modificando" w=self.tree.get_object("fileaccept") w.set_sensitive(True) w=self.tree.get_object("preview_film") w.set_sensitive(True) print "Fin"
def create_disc(self): self.time=0 if (self.has_mp3lame==False): self.window.hide() self.window.destroy() (self.main_window_callback)() return False # first, check for empty titles empty=False for element in self.structure: if len(element)<2: empty=True break if empty: newtree=devede_other.create_tree(self,"wempty_titles_dialog",self.gladefile,False) w=newtree.get_object("wempty_titles_dialog") w.show() value=w.run() w.hide() w.destroy() if value!=-6: self.window.hide() self.window.destroy() (self.main_window_callback)() return False # ask the folder and filename newtree=devede_other.create_tree(self,"wfolder_dialog",self.gladefile,False) wdir=newtree.get_object("final_directory") if self.global_vars["finalfolder"]!="": wdir.set_current_folder(self.global_vars["finalfolder"]) wfile=newtree.get_object("iso_filename") wfolder_dialog=newtree.get_object("wfolder_dialog") do_shdw=newtree.get_object("do_shutdown") wfile.set_text("movie") wfile.connect("activate",self.on_iso_filename_activate,wfolder_dialog) wfile.connect("changed",self.iso_changed,newtree) wdir.connect("current-folder-changed",self.iso_changed,newtree) #self.iso_changed("",newtree) wfolder_dialog.show() wfile.grab_focus() print "Entro en RUN" value=wfolder_dialog.run() print "Salgo de RUN" self.global_vars["shutdown_after_disc"]=do_shdw.get_active() self.filename=wfile.get_text() self.filename.replace("/","_") self.filename.replace("|","_") self.filename.replace("\\","_") filefolder=wdir.get_current_folder() wfolder_dialog.hide() wfolder_dialog.destroy() if value!=-6: self.window.hide() self.window.destroy() (self.main_window_callback)() return False self.global_vars["finalfolder"]=filefolder filefolder2=os.path.join(filefolder,self.filename) self.filefolder=filefolder2 if self.filefolder[-1]!=os.sep: self.filefolder+=os.sep if (os.path.exists(filefolder2)): newtree=devede_other.create_tree(self,"wfolder_exists",self.gladefile,False) w=newtree.get_object("wfolder_exists") wtext=newtree.get_object("folder_exists_label") wtext.set_text(_("The file or folder\n\n%(folder)s\n\nalready exists. If you continue, it will be deleted.") % {'folder':filefolder2}) w.show() value=w.run() w.hide() w.destroy() if value!=2: self.window.hide() self.window.destroy() (self.main_window_callback)() return False try: os.remove(filefolder2) except: pass try: os.makedirs(filefolder2) except: pass self.eraser=devede_delete.delete_files(self.filename,self.filefolder) hasfree,msg=self.check_free_space(self.filefolder,self.structure,self.actions,self.erase_temp,self.global_vars["menu_sound_duration"]) if hasfree: self.window.hide() self.window.destroy() self.show_error(msg) (self.main_window_callback)() return False # erase all conflicting files self.eraser.delete_all() # now, create the XML files (even with VCD, SVCD or CVD, to check if we have write permissions) xml_files=devede_xml_menu.xml_files(self.partial,self.filename,self.filefolder,self.structure,self.global_vars,self.label) counter=0 counter2=0 if (self.disk_type=="dvd"): if xml_files.do_menus(): nelements=xml_files.get_elements_per_menu() while (len(self.structure[counter:])!=0): self.queue.append(["M1",xml_files,counter,counter2]) counter+=nelements counter2+=1 self.init_queue() retorno=xml_files.create_files() if retorno!=None: self.window.hide() self.window.destroy() self.show_error(retorno) (self.main_window_callback)() return False self.runner=None if self.actions!=1: # want to do, at least, the DVD structure, or the VCD image if self.disk_type=="dvd": self.queue.append(["DVD_STRUCTURE"]) if self.actions==3: # do DVD image too self.queue.append(["DVD_IMAGE"]) else: self.queue.append(["CD_IMAGE"]) self.queue.append(["END"]) self.seconds=0 self.total_done=0.0 self.timer=gobject.timeout_add(250,self.time_callback) self.window.show() return True
def save(self,mode): """ This method stores the current disc structure in a file. If MODE is True, it will ask before a new name. If it's False and there's a filename (from a previous save), it will overwrite the old file """ if mode or (self.global_vars["struct_name"]==""): tree=devede_other.create_tree(self,"wsaveconfig",self.gladefile,False) saveconfig=tree.get_object("wsaveconfig") filter=gtk.FileFilter() filter.add_pattern("*.devede") filter.set_name(".devede") saveconfig=tree.get_object("wsaveconfig") saveconfig.add_filter(filter) saveconfig.set_do_overwrite_confirmation(True) saveconfig.show() value=saveconfig.run() saveconfig.hide() if value!=-5: saveconfig.destroy() saveconfig=None return fname=saveconfig.get_filename() saveconfig.destroy() saveconfig=None if fname==None: w=devede_dialogs.show_error(self.gladefile,_("No filename")) w=None return if (len(fname)<7) or (fname[-7:]!=".devede"): fname+=".devede" self.global_vars["struct_name"]=fname try: output=open(self.global_vars["struct_name"],"wb") id="DeVeDe" pickle.dump(id,output) pickle.dump(self.structure,output) vars={} vars["disctocreate"]=self.global_vars["disctocreate"] vars["titlecounter"]=self.global_vars["titlecounter"] vars["do_menu"]=self.global_vars["do_menu"] vars["with_menu"]=self.global_vars["with_menu"] vars["menu_widescreen"]=self.global_vars["menu_widescreen"] vars["PAL"]=self.global_vars["PAL"] vars["menu_bg"]=self.global_vars["menu_bg"] vars["menu_sound"]=self.global_vars["menu_sound"] vars["menu_bgcolor"]=self.global_vars["menu_bgcolor"] vars["menu_font_color"]=self.global_vars["menu_font_color"] vars["menu_selc_color"]=self.global_vars["menu_selc_color"] vars["menu_shadow_color"]=self.global_vars["menu_shadow_color"] vars["menu_alignment"]=self.global_vars["menu_alignment"] vars["menu_halignment"]=self.global_vars["menu_halignment"] vars["struct_name"]=self.global_vars["struct_name"] vars["fontname"]=self.global_vars["fontname"] vars["menu_title_color"]=self.global_vars["menu_title_color"] vars["menu_title_shadow"]=self.global_vars["menu_title_shadow"] vars["menu_title_text"]=self.global_vars["menu_title_text"] vars["menu_title_fontname"]=self.global_vars["menu_title_fontname"] vars["menu_top_margin"]=self.global_vars["menu_top_margin"] vars["menu_bottom_margin"]=self.global_vars["menu_bottom_margin"] vars["menu_left_margin"]=self.global_vars["menu_left_margin"] vars["menu_right_margin"]=self.global_vars["menu_right_margin"] if self.tree.get_object("create_iso").get_active(): vars["action_todo"]=2 elif self.tree.get_object("create_dvd").get_active(): vars["action_todo"]=1 else: vars["action_todo"]=0 print "Action: "+str(vars["action_todo"]) print "Variables: "+str(vars) pickle.dump(vars,output) output.close() except: w=devede_dialogs.show_error(self.gladefile,_("Can't save the file.")) w=None
def load(self,file_name): """ This method loads a configuration file """ self.done = False if (len(self.structure)>1) or (len(self.structure[0])>1): w = devede_dialogs.ask_overwrite_onload(self.gladefile) retval = w.run() w = None if retval!=-8: return if file_name==None: tree=devede_other.create_tree(self,"wloadconfig",self.gladefile,False) window = tree.get_object("wloadconfig") filter = gtk.FileFilter() filter.add_pattern("*.devede") filter.set_name(".devede") window.add_filter(filter) window.show() retval = window.run() window.hide() if retval!=-5: window.destroy() window = None return file_name=window.get_filename() window.destroy() window = None try: output=open(file_name) except: w = devede_dialogs.show_error(self.gladefile,_("Can't open the file.")) w = None return try: values=pickle.load(output) except: w = devede_dialogs.show_error(self.gladefile,_("That file doesn't contain a disc structure.")) w = None return if values!="DeVeDe": w = devede_dialogs.show_error(self.gladefile,_("That file doesn't contain a disc structure.")) w = None return global_vars2={} try: values=pickle.load(output) global_vars2=pickle.load(output) except: w = devede_dialogs.show_error(self.gladefile,_("That file doesn't contain a DeVeDe structure.")) w = None return output.close() not_found=[] for element in values: for element2 in element[1:]: try: v=os.stat(element2["path"]) except: not_found.append(str(element2["path"])) continue if False==element2.has_key("copy_audio"): element2["copy_audio"]=False # for backward compatibility if False==element2.has_key("sound51"): element2["sound51"]=False # for backward compatibility if False==element2.has_key("rotate"): element2["rotate"]=0 if False==element2.has_key("vmirror"): element2["vmirror"]=False if False==element2.has_key("hmirror"): element2["hmirror"]=False if False==element2.has_key("gop12"): element2["gop12"]=True # for backward compatibility if False==element2.has_key("isvob"): element2["isvob"]=False # for backward compatibility if False==element2.has_key("swap_fields"): element2["swap_fields"]=False # for backward compatibility if False==element2.has_key("twopass"): element2["twopass"]=False # for backward compatibility if False==element2.has_key("turbo1stpass"): element2["turbo1stpass"]=False # for backward compatibility if False==element2.has_key("subfont_size"): element2["subfont_size"]=28 # subtitle font size if False==element2.has_key("sub_fill_color"): element2["sub_fill_color"]=[65535,65535,65535,65535] # subtitle fill color if False==element2.has_key("sub_outline_color"): element2["sub_outline_color"]=[0,0,0,65535] # subtitle outline color if False==element2.has_key("volume"): element2["volume"]=100 # default volume (in percentage) if False==element2.has_key("force_subs"): element2["force_subs"]=False # by default, subtitles aren't forced if False==element2.has_key("audio_stream"): fileprop=devede_newfiles.newfile("","") (fine,audio)=fileprop.read_file_values(element2["path"],0) if fine and (audio==0): element2["audio_list"]=fileprop.file_values["audio_list"] element2["audio_stream"]=fileprop.file_values["audio_stream"] fileprop=None if False==element2.has_key("sub_list"): element2["sub_list"]=[] if element2["subtitles"]!="": tmp={} tmp["subtitles"]=element2["subtitles"] tmp["sub_codepage"]=element2["sub_codepage"] tmp["sub_language"]="EN (ENGLISH)" tmp["subtitles_up"]=element2["subtitles_up"] del element2["subtitles"] del element2["sub_codepage"] del element2["subtitles_up"] element2["sub_list"].append(tmp) if len(not_found)!=0: t_string=_("Can't find the following movie files. Please, add them and try to load the disc structure again.\n") for element in not_found: t_string+="\n"+element w = devede_dialogs.show_error(self.gladefile,t_string) w = None return try: os.stat(global_vars2["menu_bg"]) except: w = devede_dialogs.show_error(self.gladefile,_("Can't find the menu background. I'll open the disc structure anyway with the default menu background, so don't forget to fix it before creating the disc.")) w = None global_vars2["menu_bg"]=os.path.join(self.global_vars["path"],"backgrounds","default_bg.png") use_default_sound=False if False==global_vars2.has_key("menu_sound"): use_default_sound=True else: if (global_vars2["menu_sound"][-11:]=="silence.mp3"): global_vars2["menu_sound"]=os.path.join(self.global_vars["path"],"silence.ogg") try: os.stat(global_vars2["menu_sound"]) except: use_default_sound=True w = devede_dialogs.show_error(self.gladefile,_("Can't find the menu soundtrack file. I'll open the disc structure anyway with a silent soundtrack, so don't forget to fix it before creating the disc.")) w = None if (use_default_sound): global_vars2["menu_sound"]=os.path.join(self.global_vars["path"],"silence.ogg") if False==global_vars2.has_key("with_menu"): global_vars2["with_menu"]=True if False==global_vars2.has_key("menu_halignment"): global_vars2["menu_halignment"]=2 # center if False==global_vars2.has_key("menu_shadow_color"): global_vars2["menu_shadow_color"]=[0,0,0,0] if False==global_vars2.has_key("menu_title_shadow"): global_vars2["menu_title_shadow"]=[0,0,0,0] test=devede_newfiles.file_get_params() check,channels=test.read_file_values(global_vars2["menu_sound"],True) if (check!=False) or (channels!=1): global_vars2["menu_sound"]=os.path.join(self.global_vars["path"],"silence.ogg") w = devede_dialogs.show_error(self.gladefile,_("The menu soundtrack seems damaged. Using the default silent soundtrack.")) w = None check,channels=test.read_file_values(global_vars2["menu_sound"],True) global_vars2["menu_sound_duration"]=test.length test=None while (len(self.structure)>0): self.structure.pop() for element in values: self.structure.append(element) for element in global_vars2: self.global_vars[element]=global_vars2[element] if self.global_vars.has_key("menu_top_margin")==False: self.global_vars["menu_top_margin"]=0.125 self.global_vars["menu_bottom_margin"]=0.125 self.global_vars["menu_left_margin"]=0.1 self.global_vars["menu_right_margin"]=0.1 if self.global_vars.has_key("menu_bgcolor")==False: self.global_vars["menu_bgcolor"]=[0,0,0,49152] self.global_vars["menu_font_color"]=[65535,65535,65535] self.global_vars["menu_selc_color"]=[0,65535,65535,65535] self.global_vars["menu_alignment"]=2 # middle if self.global_vars.has_key("menu_title_text")==False: self.global_vars["menu_title_color"]=[0,0,0,65535] self.global_vars["menu_title_text"]="" self.global_vars["menu_title_fontname"]="Sans 14" if global_vars2.has_key("erase_files")==False: w=self.tree.get_object("create_iso") w.set_active(True) self.global_vars["struct_name"]=file_name # update the path self.done = True
def __init__(self,titlename,gladefile): self.newtree=devede_other.create_tree(self,"wdel_title_dialog",gladefile,False) self.window=self.newtree.get_object("wdel_title_dialog") label=self.newtree.get_object("what_title") label.set_text(titlename)