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
Anna Schumaker
16038a16f1
sidebar: Create a Stack with pages
...
Additionally, we save the current page when it is changed and restore on
startup.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
31695863de
sidebar: Create a TableWindow scrolled window
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
2e4062a515
sidebar: Create a UserView list view
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
9dc466e8f1
sidebar: Create a TableView list view
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
869ab6d274
sidebar: Create a UserRow and UserRowFactory
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
e1cab1de6f
sidebar: Create a TreeRow and {User,Library,}TreeRowFactorys
...
This is a Gtk.TreeExpander with some extra functions to work the way we
need it. We don't have a way to create Gtk.TreeListRows manually, so we
can't test the set_item() and unset_item() functions directly.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
sidebar: Create a LibraryTreeRowFactory
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
3bd60b0f06
sidebar: Create a LibraryGrid
...
This adds a menu button with extra options for libraries
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
0e7cb81476
sidebar: Create a UserGrid
...
This adds a button users can click to remove the playlists they create.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
d1d84af228
sidebar: Create a row Grid
...
This contains the actual widgets used to display playlist information. I
override the GtkGrid.attach() function so it returns the attached widget
to simplify setup a little bit.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
b75fc78de7
sidebar: Create a row Label
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
fdc4bb7275
sidebar: Create a LibraryPopover
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
0014e5fa55
sidebar: Create a LibraryButtons box
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
59d9c3b484
sidebar: Create a UserSelection list model
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:54 -05:00
Anna Schumaker
1d5a52623c
sidebar: Create a TableSelection list model
...
Configured to allow unselecting items so we have a way of choosing an
item if it is the only one in the list.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-20 10:04:52 -05:00
Anna Schumaker
b74f948acb
sidebar: Create a FilterUserModel list model
...
With a custom filter that only displays playlists that users can add
tracks to directly.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-19 10:34:08 -05:00