Commit Graph

1016 Commits

Author SHA1 Message Date
Anna Schumaker 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
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 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
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
Anna Schumaker 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
Anna Schumaker 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
Anna Schumaker 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
Anna Schumaker 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
Anna Schumaker 281fda1933 sidebar: Remove old Sidebar code
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker 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
Anna Schumaker 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
Anna Schumaker 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
Anna Schumaker 34350d5700 sidebar: Create an AddUpdateBox
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker 7be89be250 sidebar: Create an AddPlaylistButton
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker 5b5d166db3 sidebar: Create an AddPlaylistPopover
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker 5d18c336d5 sidebar: Create an AddPlaylistEntry
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker 0152ba1431 sidebar: Create a custom ProgressBar
This takes the ProgressBar from the scanner widgets and puts in in a Box
with Labels on either side to reserve its space at all times.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker 7beebbc7d1 sidebar: Create a Stack Switcher
This allocates a Stack during __init__(), which can then be displayed to
the user.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00