Commit Graph

32 Commits

Author SHA1 Message Date
Anna Schumaker f13983269b playlist: Switch over to using the emmental-favorites icon
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 19:18:17 -04:00
Anna Schumaker d3c66d7c31 playlist: Add a button for scrolling to the current track
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 13:15:49 -04:00
Anna Schumaker 1d45ce9beb playlist: Use the ColumnView's vadjustment for scrolling
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 13:15:49 -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 e248fd3658 playlist: Scroll to the current track when tracks change
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
Anna Schumaker dece303a09 playlist: Make the currently playing track bold
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
Anna Schumaker 146777119c playlist: Move the Runtime and Visible widgets into the Playlist pane
Rather than being in a fixed position at the bottom of the window
they'll now align themselves based on the position of the Gtk.Paned
divider.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:34 -04:00
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 d834ce3a34 playlist: Allow selecting multiple tracks
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker f91334dab1 playlist: Add a "Add to Playlist" button to the Controls
And display the new popover when pressed

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 7b53536b27 playlist: Create a popover for adding tracks to playlists
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker d2362368f3 playlist: Add a Controls instance above the ColumnView
And set up a FilterListModel so we can filter tracks

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 315312615e playlist: Add a Filter to the controls
And respond when text is typed in the search bar

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker e8fc15dc6c playlist: Create a custom filter for matching tracks
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 0952eeccde playlist: Configure playlist random and loop buttons
Sometimes the user is able to change them, but sometimes not. We also
need to set to the current state when changing the current playlist.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker e61adceafb playlist: Add a class for playlist controls
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker c5a4db041c playlist: Update the visible and runtime labels
I do this whenever items_changed() is called so it updates whenever we
update the model.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 9dd017dc43 playlist: Use a bus for TrackAdded and TrackRemoved
This helps keep us from sending the items_changed() signal too soon,
before the track finishes initializing.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -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 eac9bde353 playlist: Bind columns to a ListItemFactory
Gtk doesn't seem to provide a way to create a ListItem for testing, so I
skip testing this for now.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 9d2efcfedd playlist: Create a Model and have it shown by the Selection
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 91ef91a5f0 playlist: Create a way to switch tags in the TagModel
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 035fcd3398 playlist: Allow creating models without a Tag
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 1fb4c25fc6 playlist: Create a TagModel as a custom GListModel
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 6e1da0f7b4 playlist: Have the last column expand to fill any remaining space
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker fc9b734e38 playlist: Initialize column widths to some reasonable values
And save / restore through the settings file.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 849503eaf2 playlist: Create a custom columns class for the playlist ColumnView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker fa088ae8ea playlist: Begin playlist widgets
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
Anna Schumaker 5275feecf3 runtime: Handle changing the runtime label
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
Anna Schumaker f40d72c05b runtime: Handle changing the visible count label
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
Anna Schumaker b10851496c runtime: Add widgets for runtime and visible tracks
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00