Commit Graph

35 Commits

Author SHA1 Message Date
Anna Schumaker f55ecf0472 sidebar: Switch over to using the emmental-favorites icon
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 19:18:28 -04:00
Anna Schumaker f78402f258 Rename trackdb -> tagdb
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 11:15:15 -04:00
Anna Schumaker 7a41c3b1a1 Move module tests out of the toplevel directory
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 11:03:32 -04:00
Anna Schumaker e8f9427750 Move testing tracks into data/
And the generate_tracks.py script into tools/

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 10:57:01 -04:00
Anna Schumaker 500d0757d1 audio: Add an Artwork object to the Player
And add it to the Sidebar box while we're at it

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
Anna Schumaker 70f9bc5015 sidebar: Put the Pulser into the Sidebar.Box directly
Rather than putting it in the Window.Grid. I add some labels to provide
spacing and to make sure the pulser area stays visible even if the
pulser is hidden.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
Anna Schumaker 05742d0bbc sidebar: Move the pulser into the sidebar directory
I'm soon going to put it into the same box as the Stack

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
Anna Schumaker cf22a32fe7 window: Add the sidebar Switcher to the Grid directly
Rather than putting it in the Gtk.Paned

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:34 -04:00
Anna Schumaker e21eca37ae playlist: Create a function for changing the current tag
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 193dd7c85c sidebar: Add a key event controller to user tagrows
And respond to the delete key to remove playlists

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker 00d43547e5 sidebar: Create a custom listrow for User playlists
With a button that deletes the user-created playlist when clicked

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker 6c8903e7fd sidebar: Bold the top playlist on the trackdb.Stack
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker aa15f9bf69 sidebar: Push selected rows onto the trackdb TagStack
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker d6b7a4bb8b sidebar: Give child TagRows an indented look
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker 3362029123 sidebar: Don't set headers on child TagRows
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker f477f8f12a sidebar: Load child tagstores during __init__()
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker cf23b4f8e0 sidebar: Respond to child Added and Removed notifications
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker de155f6c88 sidebar: Create ParentTagRows
With an expander button that shows or hides its children

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker 43033b4e21 sidebar: Create ParentTagBoxes
For use displaying Tags and SuperTags

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker ab515326c9 sidebar: Create a UserTagBox
With different icons for each type of user playlist

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker e6c936d51e sidebar: Create LibraryTagRows and a LibraryTagBox for library paths
So we can add in buttons for updating and removing individual paths.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker 6059081d03 sidebar: Add a header to some TagBoxes
I enable it for Genre and Artist tagboxes right now

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker 6a044b8d4b sidebar: Load TagRows during TagBox __init__()
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker 2614db8923 sidebar: Give TagBoxes a sort_func()
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker ef759c2e64 sidebar: Give TagBoxes a clear() function
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker ca8d4961de sidebar: TagBoxes can update tag size when changed
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker bf0dbbe5dc sidebar: TagBoxes take a tagstore and icon as constructor arguments
I use the tagstore to register Added and Removed notifications. From
there, I can create and remove TagRow instances in the listbox.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker 9ceb2d8a2f sidebar: Create a TagRow class
This gives me a consistent look to use across each sidebar ListBox

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker 6e8bdf1ae1 sidebar: Add a function for adding library paths
I make sure to carefully select between the parent folder or the
currently selected file.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker e5ce819b23 sidebar: Add directory chooser widgets
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker bb44fbd128 sidebar: Give the Library tab a few extra widgets
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker ac282cb9e3 sidebar: Create a TagBox class
And set it as each of the pages in the sidebar stack

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:55:45 -04:00
Anna Schumaker 85b5c964a6 sidebar: Save the current page
And initialize to the Library page to make adding that first directory
easier for the user.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
Anna Schumaker a00701e722 sidebar: Implement a custom sidebar switcher
I'm not a fan of either of the built-in stack switching widgets, so I
implemented my own to take up less space on the side.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
Anna Schumaker aff3fade6f sidebar: Begin sidebar widgets
They involve a stack and a vbox where toggle buttons will eventually be
placed.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00