From: <iwa...@us...> - 2003-08-05 01:57:31
|
Update of /cvsroot/quickrip/quickrip/gtk In directory sc8-pr-cvs1:/tmp/cvs-serv2505 Modified Files: gtkmain.py gtksettings.py Log Message: Added setting saving features to the gtk version of quickrip. Load and save features are pretty modular, though I plan possibly on making a generic config file we can all agree upon and use. Index: gtkmain.py =================================================================== RCS file: /cvsroot/quickrip/quickrip/gtk/gtkmain.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** gtkmain.py 4 Aug 2003 05:49:16 -0000 1.7 --- gtkmain.py 5 Aug 2003 01:57:27 -0000 1.8 *************** *** 57,60 **** --- 57,62 ---- def scan(self, widget, data=None): print "Scan gui" + self.hideRip() + self.hideScan() self.scanDVD() *************** *** 128,131 **** --- 130,134 ---- self.buttonRip = xml.get_widget('buttonRip') self.miRip = xml.get_widget('miRip') + self.miScan = xml.get_widget('miScan') self.tree = xml.get_widget('treeview') *************** *** 140,144 **** self.inittree() ! self.dialogSettings = GTKSettings() self.dialogProgress = GTKProgress() --- 143,147 ---- self.inittree() ! self.dialogSettings = GTKSettings(self) self.dialogProgress = GTKProgress() *************** *** 146,158 **** self.hideRip() ! DVD.__init__(self) ! self.app = __app__ ! self.DVD_DEVICE = "/dev/dvd" ! # self.outputDir.setText(self.config['outputdir']) ! # self.outdir = self.config['outputdir'] ! self.config['mplayer'] = "/usr/bin/mplayer" ! self.config['mencoder'] = "/usr/bin/mencoder" ! self.config['tcprobe'] = "/usr/bin/tcprobe" ! self.config['dvd_device'] = "/dev/cdroms/cdrom1" def browse(self, widget, data=None): --- 149,273 ---- self.hideRip() ! self.homefile = os.path.join(os.path.expanduser("~"), ".gtkquickrip") ! (self.config, self.parser) = self.readSettings(self.homefile) ! self.syncSettingsDialog() ! ! def syncSettingsDialog(self): ! self.dialogSettings.wteMplayer.set_text(self.config['mplayer']) ! self.dialogSettings.wteMencoder.set_text(self.config['mencoder']) ! self.dialogSettings.wteTcprobe.set_text(self.config['tcprobe']) ! self.dialogSettings.wteDVD.set_text(self.config['dvd_device']) ! self.dialogSettings.wteOutput.set_text(self.config['outputdir']) ! self.dialogSettings.wteLog.set_text(self.config['logfile']) ! self.dialogSettings.wcbLogLevel.entry.set_text(self.config['loglevel']) ! ! self.dialogSettings.wcbVideoCodec.entry.set_text(self.config['videocodec']) ! self.dialogSettings.wcbAspect.entry.set_text(self.config['aspectratio']) ! self.dialogSettings.wcbDeinterlace.entry.set_text(self.config['deinterlacing']) ! self.dialogSettings.wcbPasses.entry.set_text(self.config['passes']) ! if self.config['pdamode'] == "1": ! self.dialogSettings.wcheckPDA.set_active(gtk.TRUE) ! ! self.dialogSettings.wcbAudioCodec.entry.set_text(self.config['audiocodec']) ! self.dialogSettings.wcbVolume.entry.set_text(self.config['volume']) ! self.dialogSettings.wcbQuality.entry.set_text(self.config['quality']) ! ! def writeSettings(self, file): ! self.parser.set('programs', 'mplayer', self.config['mplayer']) ! self.parser.set('programs', 'mencoder', self.config['mencoder']) ! self.parser.set('programs', 'tcprobe', self.config['tcprobe']) ! self.parser.set('general', 'dvd_device', self.config['dvd_device']) ! self.parser.set('general', 'outputdir', self.config['outputdir']) ! self.parser.set('logging', 'logfile', self.config['logfile']) ! self.parser.set('logging', 'loglevel', self.config['loglevel']) ! self.parser.set('video', 'deinterlacing', self.config['deinterlacing']) ! self.parser.set('video', 'aspectratio', self.config['aspectratio']) ! self.parser.set('video', 'passes', self.config['passes']) ! self.parser.set('video', 'pdamode', self.config['pdamode']) ! self.parser.set('video', 'videocodec', self.config['videocodec']) ! self.parser.set('audio', 'audiocodec', self.config['audiocodec']) ! self.parser.set('audio', 'quality', self.config['quality']) ! self.parser.set('audio', 'volume', self.config['volume']) ! self.parser.write(open(file, 'w')) ! ! def readSettings(self, file): ! # Check config file exists ! if not os.path.isfile(file): ! self.createSettings(file) ! # Load configuration options from config file ! config = {} ! parser = ConfigParser.ConfigParser() ! parser.readfp(open(file, 'r')) ! config['mplayer'] = parser.get("programs", "mplayer") ! config['mencoder'] = parser.get("programs", "mencoder") ! config['tcprobe'] = parser.get("programs", "tcprobe") ! config['dvd_device'] = parser.get("general", "dvd_device") ! config['outputdir'] = parser.get("general", "outputdir") ! config['logfile'] = parser.get("logging", "logfile") ! config['loglevel'] = parser.get("logging", "loglevel") ! config['deinterlacing'] = parser.get("video", "deinterlacing") ! config['aspectratio'] = parser.get("video", "aspectratio") ! config['passes'] = parser.get("video", "passes") ! config['pdamode'] = parser.get("video", "pdamode") ! config['videocodec'] = parser.get("video", "videocodec") ! config['audiocodec'] = parser.get("audio", "audiocodec") ! config['quality'] = parser.get("audio", "quality") ! config['volume'] = parser.get("audio", "volume") ! ! return (config, parser) ! ! def createSettings(self, file): ! # Find the programs mplayer, mencoder and tcprobe ! #paths = ['/usr/bin/', '/usr/local/bin/', '/opt/bin/', '/sbin/', '/usr/sbin/', '/bin', '/usr/X11R6/lib/X11/bin'] ! paths = config.paths ! mplayer, mencoder, tcprobe, outdir = "", "", "", "/tmp" ! for path in paths: ! #if os.path.isfile(path + "mplayer"): ! if os.path.isfile(os.path.join(path, "mplayer")): ! #mplayer = path + "mplayer" ! mplayer = os.path.join(path, "mplayer") ! #if os.path.isfile(path + "mencoder"): ! if os.path.isfile(os.path.join(path, "mencoder")): ! #mencoder = path + "mencoder" ! mencoder = os.path.join(path, "mencoder") ! if os.path.isfile(os.path.join(path, "tcprobe")): ! #tcprobe = path + "tcprobe" ! tcprobe = os.path.join(path, "tcprobe") ! if not mplayer:# == "": ! self.int_configError("mplayer") ! if not mencoder:# == "": ! self.int_configError("mencoder") ! if not tcprobe:# == "": ! self.int_configError("tcprobe") ! ! dvd_device = "/dev/dvd" ! if not os.path.isfile(dvd_device): ! self.int_configError("dvd_device") ! ! logfile = os.path.join(os.path.expanduser("~"), "quickrip.log") ! ! # Create config ! parser = ConfigParser.ConfigParser() ! parser.add_section("programs") ! parser.add_section("general") ! parser.add_section("audio") ! parser.add_section("video") ! parser.add_section("logging") ! parser.set("programs", "mplayer", mplayer) ! parser.set("programs", "mencoder", mencoder) ! parser.set("programs", "tcprobe", tcprobe) ! parser.set("general", "dvd_device", dvd_device) ! parser.set("general", "outputdir", outdir) ! parser.set("logging", "logfile", logfile) ! parser.set("logging", "loglevel", "None") ! parser.set("video", "deinterlacing", "None") ! parser.set("video", "aspectratio", "Default") ! parser.set("video", "passes", "One") ! parser.set("video", "pdamode", 0) ! parser.set("video", "videocodec", "DivX") ! parser.set("audio", "audiocodec", "MP3") ! parser.set("audio", "quality", "128") ! parser.set("audio", "volume", "+0") ! parser.write(open(file, 'w')) def browse(self, widget, data=None): *************** *** 178,190 **** self.buttonRip.hide() self.miRip.hide() def main(self): gtk.main() ! ! ################################# HOOKS def int_startScanning(self): print "start scanning backend" ! self.hideRip() def int_noTracks(self): --- 293,314 ---- self.buttonRip.hide() self.miRip.hide() + + def hideScan(self): + self.buttonScan.hide() + self.miScan.hide() + + def showScan(self): + self.buttonScan.show() + self.miScan.show() def main(self): gtk.main() ! ################################# HOOKS def int_startScanning(self): print "start scanning backend" ! ! def int_configError(self, config): ! print "Couldn't find " + config def int_noTracks(self): *************** *** 202,208 **** --- 326,335 ---- print "finish scanning" self.showRip() + self.showScan() def int_startRipping(self): print "start rip" + self.hideScan() + self.showRip() def int_newTrack(self, name, number, total, vbr): *************** *** 217,220 **** --- 344,349 ---- def int_finishRipping(self): print "finish ripping" + self.showScan() + self.showRip() if __name__ == "__main__": Index: gtksettings.py =================================================================== RCS file: /cvsroot/quickrip/quickrip/gtk/gtksettings.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** gtksettings.py 4 Aug 2003 05:49:16 -0000 1.5 --- gtksettings.py 5 Aug 2003 01:57:27 -0000 1.6 *************** *** 31,40 **** def quit(self, widget, data=None): print "close settigns - add some validation here" self.window.hide() return gtk.TRUE ! def __init__(self): xml = gtk.glade.XML('glade/gtksettings.glade') self.window = xml.get_widget('window') xml.signal_autoconnect( {'on_window_delete_event': self.quit} ) --- 31,94 ---- def quit(self, widget, data=None): print "close settigns - add some validation here" + self.changeSettings() self.window.hide() return gtk.TRUE + + def validate(self): + dvd = wtvDVD.get_text() + + def changeSettings(self): + #programs + self.parent.config['mplayer'] = self.wteMplayer.get_text() + self.parent.config['mencoder'] = self.wteMencoder.get_text() + self.parent.config['tcprobe'] = self.wteTcprobe.get_text() + + #general + self.parent.config['dvd_device'] = self.wteDVD.get_text() + self.parent.config['outputdir'] = self.wteOutput.get_text() + + #logging + self.parent.config['logfile'] = self.wteLog.get_text() + self.parent.config['loglevel'] = self.wcbLogLevel.entry.get_text() ! #video ! self.parent.config['deinterlacing'] = self.wcbDeinterlace.entry.get_text() ! self.parent.config['aspectratio'] = self.wcbAspect.entry.get_text() ! self.parent.config['passes'] = self.wcbPasses.entry.get_text() ! self.parent.config['videocodec'] = self.wcbVideoCodec.entry.get_text() ! if self.wcheckPDA.get_active() == gtk.TRUE: ! self.parent.config['pdamode'] = 1 ! else: ! self.parent.config['pdamode'] = 0 ! ! #audio ! self.parent.config['audiocodec'] = self.wcbAudioCodec.entry.get_text() ! self.parent.config['quality'] = self.wcbQuality.entry.get_text() ! self.parent.config['volume'] = self.wcbVolume.entry.get_text() ! ! self.parent.writeSettings(self.parent.homefile) ! ! def page(self, widget): ! print "page" ! ! def __init__(self, parent): xml = gtk.glade.XML('glade/gtksettings.glade') + self.parent = parent self.window = xml.get_widget('window') + self.wteDVD = xml.get_widget('textDVD') # + self.wteOutput = xml.get_widget('textOutput') # + self.wteLog = xml.get_widget('textLog') # + self.wteMencoder = xml.get_widget('textMencoder') # + self.wteMplayer = xml.get_widget('textMplayer') # + self.wteTcprobe = xml.get_widget('textTcprobe') # + self.wcbVideoCodec = xml.get_widget('comboVideoCodec')# + self.wcbAspect = xml.get_widget('comboAspect') # + self.wcbDeinterlace = xml.get_widget('comboDeinterlace') # + self.wcbPasses = xml.get_widget('comboPasses')# + self.wcbLogLevel = xml.get_widget('comboLogLevel') # + self.wcbAudioCodec = xml.get_widget('comboAudioCodec') # + self.wcbQuality = xml.get_widget('comboQuality') # + self.wcbVolume = xml.get_widget('comboVolume') # + self.wcheckPDA = xml.get_widget('checkbuttonPDA') # xml.signal_autoconnect( {'on_window_delete_event': self.quit} ) *************** *** 45,48 **** --- 99,103 ---- xml.signal_autoconnect( {'on_tcprobe_clicked': self.quit} ) xml.signal_autoconnect( {'on_log_clicked': self.quit} ) + # xml.signal_autoconnect( {'on_change_page': self.page} ) # self.window.show_all() |