libsaria: Add ids to queue visible set
When adding songs to the queue, we also need to add the ids to the visible set if they are visible. Without this step, we won't have an easy way of knowing how many IDs are visible.
This commit is contained in:
parent
d7ba67ee38
commit
c4629024a6
|
@ -48,6 +48,7 @@ def get_attrs(*attrs):
|
|||
def filter(text):
|
||||
visible = library.filter(text)
|
||||
playlist.set_visible(visible)
|
||||
queue.set_visible(visible)
|
||||
callbacks.refilter()
|
||||
|
||||
def is_visible(id):
|
||||
|
|
|
@ -1,40 +1,32 @@
|
|||
# Bryan Schumaker (12/12/2010)
|
||||
|
||||
import libsaria
|
||||
from libsaria.sources import oldlibrary
|
||||
from libsaria import callbacks
|
||||
import queue
|
||||
|
||||
filtered = False
|
||||
visible = None
|
||||
visible = set()
|
||||
|
||||
# Function pointers for convenience
|
||||
add_ids = queue.add_ids
|
||||
rm_ids = queue.rm_ids
|
||||
reset = queue.reset
|
||||
rm_ids = queue.rm_ids
|
||||
reset = queue.reset
|
||||
|
||||
def list_ids():
|
||||
for id in queue.queue_list:
|
||||
yield id
|
||||
|
||||
def filter(text):
|
||||
global visible, filtered
|
||||
if len(text) > 0:
|
||||
song_set = queue.as_set()
|
||||
visible = song_set.intersection(oldlibrary.test_filter(text))
|
||||
filtered = True
|
||||
else:
|
||||
visible = None
|
||||
filtered = False
|
||||
def add_ids(id_list):
|
||||
queue.add_ids(id_list)
|
||||
for id in id_list:
|
||||
if libsaria.sources.is_visible(id):
|
||||
visible.add(id)
|
||||
callbacks.queue_changed()
|
||||
|
||||
def is_visible(id):
|
||||
if filtered == True:
|
||||
return id in visible
|
||||
return True
|
||||
def set_visible(vset):
|
||||
global visible
|
||||
visible = queue.as_set().intersection(vset)
|
||||
|
||||
def num_visible():
|
||||
if filtered == True:
|
||||
return len(visible)
|
||||
return len(queue.queue_list)
|
||||
return len(visible)
|
||||
|
||||
def next():
|
||||
return queue.pop()
|
||||
|
|
|
@ -13,7 +13,6 @@ def add_ids(id_list):
|
|||
lock_queue()
|
||||
queue_list.extend(id_list)
|
||||
unlock_queue()
|
||||
callbacks.queue_changed()
|
||||
|
||||
def rm_ids(id_list):
|
||||
lock_queue()
|
||||
|
|
Loading…
Reference in New Issue