Use gtk.ListStore.insert
The append function of a ListStore is extremely slow. Now I use the ListStore insert function, and manually track the size of the list myself.
This commit is contained in:
parent
15cc5d22f0
commit
304855c10d
|
@ -11,7 +11,6 @@ ins_tree = None
|
||||||
class Collection:
|
class Collection:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.tree = None
|
self.tree = None
|
||||||
#self.load()
|
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
if not self.tree:
|
if not self.tree:
|
||||||
|
|
|
@ -28,6 +28,7 @@ class Tree(dict):
|
||||||
def walk(self):
|
def walk(self):
|
||||||
keys = self.keys()
|
keys = self.keys()
|
||||||
keys.sort()
|
keys.sort()
|
||||||
|
keys.reverse()
|
||||||
get_item = self.__getitem__
|
get_item = self.__getitem__
|
||||||
for key in keys:
|
for key in keys:
|
||||||
for track in get_item(key).walk():
|
for track in get_item(key).walk():
|
||||||
|
|
|
@ -21,11 +21,10 @@ class Collection(gtk.ScrolledWindow):
|
||||||
|
|
||||||
def populate(self, func):
|
def populate(self, func):
|
||||||
self.list.freeze()
|
self.list.freeze()
|
||||||
append = self.list.append
|
insert = self.list.list.insert
|
||||||
for track in func():
|
for track in func():
|
||||||
#print track
|
|
||||||
get = track.__getitem__
|
get = track.__getitem__
|
||||||
append([get("id"),
|
insert(0, [get("id"),
|
||||||
get("title"),
|
get("title"),
|
||||||
get("length"),
|
get("length"),
|
||||||
get("artist"),
|
get("artist"),
|
||||||
|
|
Loading…
Reference in New Issue