コード例 #1
0
ファイル: devede_convert.py プロジェクト: matttbe/Devede
    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
コード例 #2
0
ファイル: devede_convert.py プロジェクト: iainlane/Devede
	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
コード例 #3
0
	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
コード例 #4
0
ファイル: devede_convert.py プロジェクト: eugeni/Devede
	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)()
コード例 #5
0
ファイル: devede_convert.py プロジェクト: csola48/Devede
	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()
コード例 #6
0
ファイル: devede_newfiles.py プロジェクト: csola48/Devede
	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()
コード例 #7
0
ファイル: devede_convert.py プロジェクト: eugeni/Devede
    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)()
コード例 #8
0
ファイル: devede_convert.py プロジェクト: eugeni/Devede
    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()
コード例 #9
0
ファイル: devede_convert.py プロジェクト: matttbe/Devede
    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)()
コード例 #10
0
	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
コード例 #11
0
ファイル: devede_newfiles.py プロジェクト: csola48/Devede
	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()
コード例 #12
0
ファイル: devede_settings.py プロジェクト: matttbe/Devede
    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
コード例 #13
0
    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
コード例 #14
0
ファイル: devede_disctype.py プロジェクト: alessio/Devede
	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()
コード例 #15
0
    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())
コード例 #16
0
ファイル: devede_disctype.py プロジェクト: rastersoft/Devede
    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()
コード例 #17
0
ファイル: devede_main.py プロジェクト: majorsilence/Devede
	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()
コード例 #18
0
	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
コード例 #19
0
ファイル: devede_main.py プロジェクト: matttbe/Devede
    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()
コード例 #20
0
ファイル: devede_convert.py プロジェクト: matttbe/Devede
    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
コード例 #21
0
ファイル: devede_convert.py プロジェクト: alessio/Devede
	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)()
コード例 #22
0
ファイル: devede_dialogs.py プロジェクト: alessio/Devede
	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
コード例 #23
0
ファイル: devede_dvdmenu.py プロジェクト: eugeni/Devede
    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
コード例 #24
0
ファイル: devede_main.py プロジェクト: eugeni/Devede
	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())
コード例 #25
0
ファイル: devede_convert.py プロジェクト: iainlane/Devede
	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
コード例 #26
0
ファイル: devede_convert.py プロジェクト: rastersoft/Devede
	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
コード例 #27
0
ファイル: devede_convert.py プロジェクト: iainlane/Devede
	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
コード例 #28
0
ファイル: devede_convert.py プロジェクト: csola48/Devede
	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)()
コード例 #29
0
ファイル: devede_convert.py プロジェクト: matttbe/Devede
    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()
コード例 #30
0
ファイル: devede_convert.py プロジェクト: iainlane/Devede
	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()
コード例 #31
0
    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
コード例 #32
0
 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
コード例 #33
0
ファイル: devede_dialogs.py プロジェクト: alessio/Devede
	def __init__(self,gladefile):
	
		self.newtree=devede_other.create_tree(self,"wloosecurrent",gladefile,False)
		self.window=self.newtree.get_object("wloosecurrent")
コード例 #34
0
 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
コード例 #35
0
	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()
コード例 #36
0
ファイル: devede_dvdmenu.py プロジェクト: eugeni/Devede
    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()
コード例 #37
0
ファイル: devede_convert.py プロジェクト: matttbe/Devede
    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
コード例 #38
0
ファイル: devede_convert.py プロジェクト: matttbe/Devede
    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
コード例 #39
0
ファイル: devede_dialogs.py プロジェクト: alessio/Devede
	def __init__(self,gladefile):
	
		self.newtree=devede_other.create_tree(self,"wcancel_dialog",gladefile,False)
		self.window=self.newtree.get_object("wcancel_dialog")
コード例 #40
0
    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
コード例 #41
0
ファイル: devede_convert.py プロジェクト: iainlane/Devede
	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
コード例 #42
0
ファイル: devede_newfiles.py プロジェクト: csola48/Devede
	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"
コード例 #43
0
ファイル: devede_convert.py プロジェクト: iainlane/Devede
	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
コード例 #44
0
ファイル: devede_loadsave.py プロジェクト: rastersoft/Devede
	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
コード例 #45
0
ファイル: devede_loadsave.py プロジェクト: rastersoft/Devede
	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
コード例 #46
0
ファイル: devede_dialogs.py プロジェクト: alessio/Devede
	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)