Commit Graph

19 Commits

Author SHA1 Message Date
Anna Schumaker 171e8a1829 lib: Give tags a track_selected() function
For use when tracks are manually selected. I use this to wire up a
response to double-clicking the playlist view.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:17 -04:00
Anna Schumaker 7b204f2d1b lib: Give Tags __getitem__() support
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker fc82beca3d lib: Don't allow adding a track to a tag multiple times
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:33 -04:00
Anna Schumaker 54498f174a lib: Track the runtime of Tags
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:31 -04:00
Anna Schumaker c3cb3b9847 lib: Add position to the Tag TrackAdded and TrackRemoved publishers
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:29 -04:00
Anna Schumaker 7037483508 lib: Give Tags a stacked() function
This will be called when a tag is added to the tag stack to check if the
current track pointer needs to be reset.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:28 -04:00
Anna Schumaker 9fe3867eae lib: Give Tags a random next() function
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:25 -04:00
Anna Schumaker 935087a040 lib: Give Tags an ability to loop during next()
I also provide a can_loop() function that the UI can use to determine
activatability of the loop toogle button.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:24 -04:00
Anna Schumaker 6d2a817a9b lib: Give Tags a next() function
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:22 -04:00
Anna Schumaker 322dc04dd5 lib: Give Tags a get_header() function
The sidebar will want this for giving header widgets to some rows

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:50:33 -04:00
Anna Schumaker 7190feddb2 lib: Give tags support for sort order
Sometimes Musicbrainz will give us an albumsort, artistsort, or
albumartistsort field in the tags. We can use this for sorting sidebar
widgets.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:49:11 -04:00
Anna Schumaker 5c89fc8d85 lib: Test comparisons between Tags and SuperTags
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-17 13:27:12 -04:00
Anna Schumaker a6b9664231 lib: Create a SuperTag
SuperTags have a parent tag that they are associated with.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-17 12:33:35 -04:00
Anna Schumaker c7ce2b9871 lib: Give Tags TrackAdded and TrackRemoved publishers
So we can respond quickly when individual tags are changed

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-17 12:33:25 -04:00
Anna Schumaker e0c8f6dac6 lib: Return trackids in Tag.__getstate__()
And provide a function for replacing the trackid with an actual track
during startup.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-17 12:33:24 -04:00
Anna Schumaker 51fff44746 lib: Give Tags support for the str() function
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-17 12:33:23 -04:00
Anna Schumaker a6a35f37e7 lib: Add locking to the Tag class
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-17 12:33:21 -04:00
Anna Schumaker 5cdf01ddea lib: Give Tags functions for saving and restoring state
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-17 12:33:20 -04:00
Anna Schumaker c342d906e3 lib: Create a Tag class
This will help to avoid some code duplication across multiple tags

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-17 12:33:19 -04:00