29 lines
859 B
Python
29 lines
859 B
Python
# Copyright 2019 (c) Anna Schumaker.
|
|
from . import playlist
|
|
from .. import notify
|
|
from .. import tree
|
|
|
|
DECADE_ICON = "x-office-calendar"
|
|
|
|
|
|
class DecadePlaylist(playlist.Playlist):
|
|
def alloc_child(self, name, icon):
|
|
return playlist.Playlist(name, icon,
|
|
[ "artist", "album", "discnumber", "tracknumber" ])
|
|
|
|
def add(self, track):
|
|
playlist.Playlist.add(self, track)
|
|
self.find_child(str(track["date"]), DECADE_ICON).add(track)
|
|
|
|
|
|
class DecadeNode(tree.ETree):
|
|
def __init__(self):
|
|
tree.ETree.__init__(self, "Decades", "x-office-calendar")
|
|
|
|
def alloc_child(self, name, icon):
|
|
return DecadePlaylist(name, icon,
|
|
[ "date", "artist", "album", "discnumber", "tracknumber" ])
|
|
|
|
def new_track(self, track):
|
|
self.find_child(track.decade(), DECADE_ICON).add(track)
|