Commit Graph

88 Commits

Author SHA1 Message Date
35e3085c6a playlist: Create a SortPlaylistModel
This is a Gio.ListModel for the current playlist's sort order that has
extra functions for rearranging or reversing the sort fields.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:08 -05:00
fc83b66fbe playlist: Create a PlaylistSelection list model
This is a multi-selection model so we can do operations on multiple
tracks at once.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:05:01 -05:00
f2402cdb44 playlist: Create a FilterPlaylistModel list model
With a custom Regex filter that checks if the track title, artist,
album, or disc subtitle match the given pattern.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:05:01 -05:00
f8dbb71581 playlist: Create a PlaylistModel list model
This will be used to display the tracks in a playlist

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:05:01 -05:00
39794c0830 audio: Move play_track() out of the Player
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-07 15:55:03 -04:00
5c2e4bb016 audio: Convert the Player into a GObject
And give it "state-changed" and "track-changed" signals.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 17:30:55 -04:00
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
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
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
f78402f258 Rename trackdb -> tagdb
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 11:15:15 -04:00
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
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
dece303a09 playlist: Make the currently playing track bold
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
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
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
d834ce3a34 playlist: Allow selecting multiple tracks
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
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
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
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
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
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
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
e61adceafb playlist: Add a class for playlist controls
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
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
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
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
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
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
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
035fcd3398 playlist: Allow creating models without a Tag
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
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
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
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
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
fa088ae8ea playlist: Begin playlist widgets
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
5275feecf3 runtime: Handle changing the runtime label
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
f40d72c05b runtime: Handle changing the visible count label
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
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