45b7f9595c
audio: Give the Player a set_playlist() function
...
With a callback to notify when the current playlist changes.
Additionally, I make sure to reset playlist.current if the playlist has
previously finished playing.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:24 -05:00
574d03bad6
db: Make it easy to know if we can delete tracks from playlists
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:22 -05:00
6913cf992d
db: Fix Playlist.get_track_index()
...
We need to limit the OVER () clause to just pick tracks that are
actually on the requested playlist.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:15 -05:00
b4daf0e48c
db: Set check_same_thread=False
...
Apparently, the about-to-finish signal is called in a different thread
than the main thread. SQLite complains about the connection getting used
from a different thread, so we need to set this check to False so the
code skips it.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:15 -05:00
688bd1aa29
playlist: Remove old playlist code
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
7d5b9b8ba1
ui: Switch over to the new playlist.Panel class
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
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
50bf64faf3
playlist: Create a Footer box
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
289a980390
playlist: Create a Runtime label
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
0ed71f8792
playlist: Create a VisibleTracks label
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
44370b265b
playlist: Create a Header box
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
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
c5aff410b4
playlist: Create a SortButton menu button
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
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
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
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
d0049e4951
playlist: Create a SortOrderView
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
fd728a7a99
playlist: Create a PlaylistWindow scrolled window
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
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
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
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
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
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
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
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
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
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
4e24124755
playlist: Create a PlaylistView column view
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
296f0c53b4
playlist: Create a new Column class
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
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
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
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
5d4ad35131
playlist: Create a FieldLabel label
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
768a3388d7
playlist: Create a DirectionButton button
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-26 17:26:09 -05:00
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
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
281fda1933
sidebar: Remove old Sidebar code
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
35e31d0553
ui: Switch over to the new sidebar.Sidebar class
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
20b84fa019
sidebar: Create a new Sidebar class
...
Containing both the Stack Switcher and Stack Box
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
6ac08eb2bd
sidebar: Create a Stack Box
...
Containing our Stack and other widgets that get displayed along with it
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
34350d5700
sidebar: Create an AddUpdateBox
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
7be89be250
sidebar: Create an AddPlaylistButton
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
5b5d166db3
sidebar: Create an AddPlaylistPopover
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00