da708a9810
playlist: Make the current track bold
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:24 -05:00
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
594f7991f2
audio: Pick next track from the Previous playlist first
...
This lets us move up and down the Previous playlist through the buttons,
in case we go back too far by accident.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:24 -05:00
27ad8d72b4
audio: Pick the next track from the current playlist
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:24 -05:00
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