From: <iwa...@us...> - 2003-08-08 07:08:45
|
Update of /cvsroot/quickrip/quickrip/gtk In directory sc8-pr-cvs1:/tmp/cvs-serv30475/gtk Modified Files: gtkmain.py gtkprogress.py Log Message: Threading working in base for scanDVD. gtkmain does threading accordingly. Status is also shown for Scan. Index: gtkmain.py =================================================================== RCS file: /cvsroot/quickrip/quickrip/gtk/gtkmain.py,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** gtkmain.py 8 Aug 2003 00:30:01 -0000 1.20 --- gtkmain.py 8 Aug 2003 07:08:41 -0000 1.21 *************** *** 51,56 **** self.hideScan() self.dialogProgress.window.present() - # cmd = CommandThread("sleep 2; ls /bin", self.results) - # cmd.start() self.scanDVD() --- 51,54 ---- *************** *** 124,136 **** def rowChange(self, widget, data=None): self.inRowChange = "true" - selected = self.tree.get_selection() - (self.model, self.modelIter) = selected.get_selected() - newtrack = self.model.get_value(self.modelIter, 5) - if newtrack != self.oldtrack: - self.oldtrack = newtrack - else: - return - track = newtrack adj = self.sAudio.get_adjustment() adj.value = float(track['abr']) --- 122,138 ---- def rowChange(self, widget, data=None): + try: + selected = self.tree.get_selection() + (self.model, self.modelIter) = selected.get_selected() + newtrack = self.model.get_value(self.modelIter, 5) + if newtrack != self.oldtrack: + self.oldtrack = newtrack + else: + return + track = newtrack + except: + return #treeview may be not yet filled + self.inRowChange = "true" adj = self.sAudio.get_adjustment() adj.value = float(track['abr']) *************** *** 429,432 **** --- 431,437 ---- self.buttonScan.show() self.miScan.show() + + def modelSort(self): + pass def main(self): *************** *** 435,439 **** ################################# HOOKS def ui_startScanning(self): ! print "start scanning backend" model = gtk.TreeStore( gobject.TYPE_STRING, #track title gobject.TYPE_STRING, #track length --- 440,447 ---- ################################# HOOKS def ui_startScanning(self): ! print "If you get lockups, please upgrade your PyGTK to at least " + \ ! "version 1.99.17. Program can be killed by Ctrl+Z and " + \ ! "killall -9 python ." ! model = gtk.TreeStore( gobject.TYPE_STRING, #track title gobject.TYPE_STRING, #track length *************** *** 443,450 **** gobject.TYPE_PYOBJECT, #reference to object to set based on rip gobject.TYPE_STRING) #projected size self.tree.set_model(model) self.model = model self.modelIter = None ! def ui_configError(self, config): msg = gtkerrorbox.GTKErrorBox("Error!", "Config couldn't autodetect: " + config) --- 451,461 ---- gobject.TYPE_PYOBJECT, #reference to object to set based on rip gobject.TYPE_STRING) #projected size + #model.set_sort_func(0, self.modelSort) self.tree.set_model(model) self.model = model self.modelIter = None ! self.dialogProgress.setStatus("Starting Scanning...", 0) ! self.titleIncr = 0 ! def ui_configError(self, config): msg = gtkerrorbox.GTKErrorBox("Error!", "Config couldn't autodetect: " + config) *************** *** 455,494 **** def ui_dispDVD(self, numtitles): print "Found %s titles" % (self.numtitles) def ui_dispTitle(self, track): ! if self.modelIter == None: ! self.modelIter = self.model.insert_before(None, None) ! else : ! self.modelIter = self.model.append(None, None)#self.modelIter, None) ! # str = { "first": "1st", "second": "3rd" } ! # model.set_value(i, 0, str["first"]) ! # model.set_value(i, 1, str["second"]) ! # model.set_value(i, 2, "third") ! # model.set_value(i, 3, "forth") ! # this will nest a child and i will point to the child ! # i = model.append(i, None) ! length = "" ! if track['time'] >= 3600: ! length += str(track['time'] / 3600) + ":" ! if track['time'] >= 60: ! length += str((track['time'] % 3600) / 60) + ":" ! length += str(track['time'] % 60) ! ! track['slangs'].insert(0, [" ", "Not Specified"]) ! self.model.set_value(self.modelIter, 0, track['name']) ! self.model.set_value(self.modelIter, 1, length) ! self.model.set_value(self.modelIter, 2, config.langs[track['alang']]) ! self.model.set_value(self.modelIter, 3, config.langs[track['slang']]) ! self.model.set_value(self.modelIter, 4, gtk.FALSE) ! self.model.set_value(self.modelIter, 5, track) ! self.updateSize() def ui_finishScanning(self): ! print "finish scanning" self.showRip() self.showScan() self.dialogProgress.window.hide() ! # for i in range(1, int(self.numtitles) + 1): ! # print "title add " + str(i) def ui_startRipping(self): --- 466,511 ---- def ui_dispDVD(self, numtitles): print "Found %s titles" % (self.numtitles) + self.dialogProgress.setStatus("Scanning titles", 0) def ui_dispTitle(self, track): ! gtk.threads_enter() ! #update status ! #print "titles num " + str(self.numtitles) ! self.titleIncr += 1 ! self.dialogProgress.setStatus("Reading titles", ! float(self.titleIncr) / float(self.numtitles)) ! self.dialogProgress.setTime(0, 0, self.numtitles - self.titleIncr) ! gtk.threads_leave() def ui_finishScanning(self): ! gtk.threads_enter() self.showRip() self.showScan() self.dialogProgress.window.hide() ! ! for i in range(1, int(self.numtitles) + 1): ! if self.modelIter == None: ! self.modelIter = self.model.insert_before(None, None) ! else: ! self.modelIter = self.model.append(None, None)#self.modelIter, None) ! ! track = self.titles[i-1] ! length = "" ! if track['time'] >= 3600: ! length += str(track['time'] / 3600) + ":" ! if track['time'] >= 60: ! length += str((track['time'] % 3600) / 60) + ":" ! length += str(track['time'] % 60) ! ! track['slangs'].insert(0, [" ", "Not Specified"]) ! self.model.set_value(self.modelIter, 0, track['name']) ! self.model.set_value(self.modelIter, 1, length) ! self.model.set_value(self.modelIter, 2, config.langs[track['alang']]) ! self.model.set_value(self.modelIter, 3, config.langs[track['slang']]) ! self.model.set_value(self.modelIter, 4, gtk.FALSE) ! self.model.set_value(self.modelIter, 5, track) ! self.updateSize() ! ! gtk.threads_leave() def ui_startRipping(self): Index: gtkprogress.py =================================================================== RCS file: /cvsroot/quickrip/quickrip/gtk/gtkprogress.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** gtkprogress.py 7 Aug 2003 06:56:58 -0000 1.7 --- gtkprogress.py 8 Aug 2003 07:08:41 -0000 1.8 *************** *** 50,57 **** self.quit() return xml ! def __init__(self): xml = self.loadGladeFile('gtkprogress') self.window = xml.get_widget('window') xml.signal_autoconnect( {'on_window_delete_event': self.quit} ) --- 50,77 ---- self.quit() return xml + + def setStatus(self, mesg, percent): + self.lStatus.set_text(mesg) + self.pBar.set_fraction(percent) + self.pBar.set_text(str(int(percent * 100)) + "%") + + def pulse(): + self.pBar.pulse() + + def setTime(self, hours, mins, secs): + text = "Time Remaining: " + if hours != 0: + text += str(hours) + " hours " + if mins != 0: + text += str(mins) + " mins " + self.lTime.set_text(text + str(secs) + " sec(s)") ! def __init__(self, bars=1): xml = self.loadGladeFile('gtkprogress') self.window = xml.get_widget('window') + self.pBar = xml.get_widget('progressbar') + # self.pBar2 = xml.get_widget(' + self.lStatus = xml.get_widget('labelStatus') + self.lTime = xml.get_widget('labelTime') xml.signal_autoconnect( {'on_window_delete_event': self.quit} ) |