Threading improvements - yay! :)
git-svn-id: svn://svn.berlios.de/gpodder@68 b0d088ad-0a06-0410-aad2-9ed5178a7e87
This commit is contained in:
parent
4a1afadeec
commit
74cc17ab9b
|
@ -4,6 +4,9 @@ Mon, 03 Apr 2006 21:40:39 +0200 <thp@perli.net>
|
|||
in available list doesn't appear in "downloaded" list)
|
||||
* Put contents of description into <![CDATA[ ... ]]> in case it
|
||||
includes HTML (parser chokes on entities like & and also &)
|
||||
* Better threading, shouldn't fuck up GUI responsiveness after
|
||||
download has finished (also gives us realtime "downloading"
|
||||
status updates - yeah, I've now read the pygtk threading faq..)
|
||||
|
||||
Fri, 31 Mar 2006 18:13:16 +0200 <thp@perli.net>
|
||||
* Major code clean-up in gpodder.py and other modules
|
||||
|
|
|
@ -820,7 +820,8 @@ class Gpodderepisode(SimpleGladeApp):
|
|||
def main( __version__ = None):
|
||||
global app_version
|
||||
|
||||
gtk.gdk.threads_init()
|
||||
#gtk.gdk.threads_init()
|
||||
gobject.threads_init()
|
||||
bindtextdomain( app_name, locale_dir)
|
||||
app_version = __version__
|
||||
g_podder = Gpodder()
|
||||
|
|
|
@ -169,7 +169,7 @@ class downloadStatusManager( object):
|
|||
iter = self.status_list[id]['iter']
|
||||
if iter != None:
|
||||
self.smlock.acquire()
|
||||
self.tree_model.remove( iter)
|
||||
gobject.idle_add( self.tree_model.remove, iter)
|
||||
self.smlock.release()
|
||||
self.status_list[id]['iter'] = None
|
||||
self.status_list[id]['thread'].cancel()
|
||||
|
@ -181,10 +181,10 @@ class downloadStatusManager( object):
|
|||
iter = self.status_list[id]['iter']
|
||||
if iter != None:
|
||||
self.smlock.acquire()
|
||||
self.tree_model.set( iter, 0, new_status['episode'])
|
||||
self.tree_model.set( iter, 1, new_status['speed'])
|
||||
self.tree_model.set( iter, 2, new_status['progress'])
|
||||
self.tree_model.set( iter, 3, new_status['url'])
|
||||
gobject.idle_add( self.tree_model.set, iter, 0, new_status['episode'])
|
||||
gobject.idle_add( self.tree_model.set, iter, 1, new_status['speed'])
|
||||
gobject.idle_add( self.tree_model.set, iter, 2, new_status['progress'])
|
||||
gobject.idle_add( self.tree_model.set, iter, 3, new_status['url'])
|
||||
self.smlock.release()
|
||||
|
||||
def is_download_in_progress( self, url):
|
||||
|
@ -200,20 +200,14 @@ class downloadStatusManager( object):
|
|||
self.status_list[element]['iter'] = None
|
||||
self.status_list[element]['thread'].cancel()
|
||||
# clear the tree model after cancelling
|
||||
self.smlock.acquire()
|
||||
self.tree_model.clear()
|
||||
self.smlock.release()
|
||||
gobject.idle_add( self.tree_model.clear)
|
||||
|
||||
def get_url_by_iter( self, iter):
|
||||
self.smlock.acquire()
|
||||
result = self.tree_model.get_value( iter, 3)
|
||||
self.smlock.release()
|
||||
return result
|
||||
|
||||
def get_title_by_iter( self, iter):
|
||||
self.smlock.acquire()
|
||||
result = self.tree_model.get_value( iter, 0)
|
||||
self.smlock.release()
|
||||
return result
|
||||
|
||||
def cancel_by_url( self, url):
|
||||
|
|
Loading…
Reference in New Issue