Commit Graph

88 Commits

Author SHA1 Message Date
Anna Schumaker 1296857189 playlist: Don't leave the Subtitle column blank
Instead, fill in something generated from the disc number but make it
dimmed.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2022-01-10 11:36:42 -05:00
Anna Schumaker 73ba296d74 playlist: Use the new match / case statement in __init__.py:key_pressed()
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-28 17:33:26 -05:00
Anna Schumaker 289420e504 playlist: Add a Favorite toggle button
For adding / removing the currently playing track from the Favorites
playlist

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-28 15:50:11 -05:00
Anna Schumaker 15059db59a playlist: Create a TrackBox containing the JumpButton
And put it before the filter entry in the ui

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-28 15:50:11 -05:00
Anna Schumaker c4adea15bb playlist: Split out the ControlBox as a base class
And create a PlaylistBox inheriting from it containing the buttons.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-28 15:50:11 -05:00
Anna Schumaker b768d74928 sidebar: Don't change displayed playlist to None
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-28 15:49:52 -05:00
Anna Schumaker 798ef20a72 playlist: Give the playlist panel an add_selected_tracks() function
So we can have all the add track functionality in one place that also
allows for keyboard presses to work.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-09 19:25:16 -05:00
Anna Schumaker 6c81981570 playlist: Clear selection after iterating
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-09 17:51:02 -05:00
Anna Schumaker c7b205e404 playlist: Remove selected tracks from the Queued Tracks playlist
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-09 17:44:09 -05:00
Anna Schumaker 845de3957b playlist: Scroll to the current track if "new" isn't on the playlist
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-09 17:44:08 -05:00
Anna Schumaker 580358a88e playlist: Add some useful key presses
Escape to clear the list of selected tracks and Delete to remove tracks
from playlists.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:55:37 -05:00
Anna Schumaker bbe48ccf82 playlist: Create a way to get the current selected tracks
I do this as a generator so we can work with tracks as we find them.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:24 -05:00
Anna Schumaker f15514edd1 playlist: Create a JumpButton
For jumping to the current track

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:24 -05:00
Anna Schumaker cee0f4e075 playlist: Scroll to the current track in the ColumnView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:24 -05:00
Anna Schumaker da708a9810 playlist: Make the current track bold
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:24 -05:00
Anna Schumaker 78647884d6 playlist: Change tracks when rows are activated
And make sure we update plist.current to the selected index.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:24 -05:00
Anna Schumaker 688bd1aa29 playlist: Remove old playlist code
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker dbad19ad46 playlist: Create a new Panel class
Containing the ControlBox, PlaylistWindow, and FooterBox

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 50bf64faf3 playlist: Create a Footer box
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 289a980390 playlist: Create a Runtime label
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 0ed71f8792 playlist: Create a VisibleTracks label
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 44370b265b playlist: Create a Header box
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker b09baf3d99 playlist: Add a ControlBox box
Containing the RandomToggle, LoopToggle, and SortButton

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker c5aff410b4 playlist: Create a SortButton menu button
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 94cb57dbfc playlist: Create RandomToggle and LoopToggle toggles
These both inherit from a PropertyToggle that does most of the work for
us

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker c136b8660a playlist: Create a FilterEntry entry
This derives from the lib.filter.Entry to set the playlist filter and
increase the margins.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 3b15318f7c playlist: Create a SortOrderPopover
For use by a Gtk.MenuButton to show the SortOrderView

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker d0049e4951 playlist: Create a SortOrderView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker fd728a7a99 playlist: Create a PlaylistWindow scrolled window
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 2311a3a697 playlist: Add a LastPlayed column to the PlaylistView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 67d0ba4e44 playlist: Add a PlayCount column to the PlaylistView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 36893317c2 playlist: Add a Year column to the PlaylistView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 81dc5f1b76 playlist: Add a Subtitle column to the PlaylistView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 7c009655ed playlist: Add an Album column to the PlaylistView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker d7f1f64506 playlist: Add an Artist column to the PlaylistView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 2ac2ce04aa playlist: Add a Length column to the PlaylistView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 0cdc83c21e playlist: Add a Title column to the PlaylistView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 8e7db2c472 playlist: Add a Track Number column to the PlaylistView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 4e24124755 playlist: Create a PlaylistView column view
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 296f0c53b4 playlist: Create a new Column class
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker df4074f1de playlist: Create a new LabelFactory
For creating the labels used by the ColumnView columns

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 979071cd14 playlist: Create a sort Factory
For creating SortRows and handling their signals

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 8adfb51082 playlist: Create a SortRow
To collect all the widgets used for a single row of sorting and emit
signals when they are interacted with.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 5d4ad35131 playlist: Create a FieldLabel label
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 768a3388d7 playlist: Create a DirectionButton button
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 9cfbf2acc9 playlist: Create an UpDownBox
Containing Up and Down arrow buttons that are intended to be used to
rearrange the sort order.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
Anna Schumaker 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
Anna Schumaker 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
Anna Schumaker 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
Anna Schumaker 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