mirror of
https://github.com/codex-storage/deluge.git
synced 2025-02-05 16:13:41 +00:00
use cache for async tracker images
This commit is contained in:
parent
7359ddb879
commit
d4bbece86e
@ -89,16 +89,22 @@ class TrackerIcons(object):
|
|||||||
gobject.idle_add(callback, filename)
|
gobject.idle_add(callback, filename)
|
||||||
|
|
||||||
def get_async(self, tracker_host, callback):
|
def get_async(self, tracker_host, callback):
|
||||||
threading.Thread(
|
if tracker_host in self.images:
|
||||||
target=self. _fetch_icon_thread,
|
if callback:
|
||||||
args=(tracker_host, callback)).start()
|
callback(self.images[tracker_host])
|
||||||
|
else:
|
||||||
|
threading.Thread(target=self. _fetch_icon_thread,
|
||||||
|
args=(tracker_host, callback)).start()
|
||||||
|
|
||||||
def get(self, tracker_host):
|
def get(self, tracker_host):
|
||||||
"""
|
"""
|
||||||
returns None if the icon is not fetched(yet) or not fond.
|
returns None if the icon is not fetched(yet) or not fond.
|
||||||
"""
|
"""
|
||||||
if not tracker_host in self.images:
|
if tracker_host in self.images:
|
||||||
|
return self.images[tracker_host]
|
||||||
|
else:
|
||||||
self.images[tracker_host] = None
|
self.images[tracker_host] = None
|
||||||
self.get_async(tracker_host, None)
|
self.get_async(tracker_host, None)
|
||||||
return self.images[tracker_host]
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
@ -193,6 +193,10 @@ class FilterTreeView(component.Component):
|
|||||||
label = _(value)
|
label = _(value)
|
||||||
row = self.treestore.append(self.cat_nodes[cat],[cat, value, label, count , pix, True])
|
row = self.treestore.append(self.cat_nodes[cat],[cat, value, label, count , pix, True])
|
||||||
self.filters[(cat, value)] = row
|
self.filters[(cat, value)] = row
|
||||||
|
|
||||||
|
if cat == "tracker_host":
|
||||||
|
self.tracker_icons.get_async(value, lambda filename: self.set_row_image(cat, value, filename))
|
||||||
|
|
||||||
self.treestore.set_value(row, FILTER_COLUMN, True)
|
self.treestore.set_value(row, FILTER_COLUMN, True)
|
||||||
return row
|
return row
|
||||||
|
|
||||||
@ -230,9 +234,6 @@ class FilterTreeView(component.Component):
|
|||||||
pix = STATE_PIX.get(value, "dht")
|
pix = STATE_PIX.get(value, "dht")
|
||||||
return gtk.gdk.pixbuf_new_from_file(deluge.common.get_pixmap("%s16.png" % pix))
|
return gtk.gdk.pixbuf_new_from_file(deluge.common.get_pixmap("%s16.png" % pix))
|
||||||
|
|
||||||
elif cat == "tracker_host":
|
|
||||||
self.tracker_icons.get_async(value, lambda filename: self.set_row_image(cat, value, filename))
|
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def set_row_image(self, cat, value, filename):
|
def set_row_image(self, cat, value, filename):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user