Commit Graph

18 Commits

Author SHA1 Message Date
688bd1aa29 playlist: Remove old playlist code
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
c4954c5bbc playlist: Create a FlatSortModel
To concatenate items from the SortPlaylistModel and the
DisabledOptionsModel with extra functions for enabling and disabling
sort order fields

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
0966950d86 playlist: Create a SortModelsModel
Containing SortPlaylistModel and FilterSortOptionsModel instances

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
8d901afae7 playlist: Create a DisabledOptionsModel
And a DisabledOptionsFilter for filtering out options that have been
enabled on the playlist.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
e646b12f65 playlist: Create a SortOptionsModel
Containing all the valid sort options that could be set

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
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
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
dece303a09 playlist: Make the currently playing track bold
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -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
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
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