beca08b833
Implement the Gtk.Application instance in emmental.py
...
We don't use this during testing, so put it here instead of in a
submodule.
Implements #26 (Move the EmmentalApplication into emmental.py)
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-28 15:49:50 -05:00
db2d122211
lib: Replace version.DEBUG with the __debug__ constant
...
Implements #27 (Check __debug__ constant instead of a .debug file)
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-26 13:18:24 -05:00
915e3c8340
Remove unused tagdb module
...
Implements #23 (Remove tagdb/ code)
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-26 10:08:33 -05:00
a85ac03517
db: Occasionally optimize the database
...
I do this whenever we commit during scanning, and during application
shutdown.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-09 22:09:40 -05:00
bb0a9face7
ui: Update keyboard shortcuts
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-09 17:51:02 -05:00
7f31e39779
sidebar: Change the currently displayed playlist
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-12-05 13:49:24 -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
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
bc4c3588e6
ui: Convert Window code into a class
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-18 16:49:58 -05:00
b05ef737f2
ui: Convert Pane code into a class
...
This lets us create a new instance for each test we do, so we don't need
to keep resetting a single static instance.
Implements: #21 (Convert ui.pane.Pane into a class)
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-18 16:49:58 -05:00
7979cb1a4a
ui: Switch to the new audio.Header()
...
And delete the old ui/header.py code
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-11-18 16:49:58 -05:00
3a50235c38
audio: Rework the Artwork widget
...
It now sets artwork based on the signals sent by the player, allowing us
to move it out of the Player class and create instances based on the
global Player instead.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-08 10:07:45 -04:00
76bf68f484
audio: Replace the old Controls widget with AudioControls
...
And grab the global Player instance during construction.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:26:58 -04:00
e4f6018195
audio: Replace the old Seeker widget with a ScaleButtonbox
...
And make the widget separate from the audio Player
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:15:43 -04:00
e884dc5a6e
audio: Clean up the NowPlaying widget
...
It now uses the TrackTitle and TrackArtist labels. Additonally, I move
it out of the Player class and create a shortcut function for
instantiating one using the global Player instance
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-31 15:13:18 -04:00
b0a1ab5796
keyboard: Add initial keyboard shortcuts
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-02 10:25:11 -04:00
692ca1ff5d
data: Add a custom icon for Favorites
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 19:17:15 -04:00
7a41c3b1a1
Move module tests out of the toplevel directory
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 11:03:32 -04:00
500d0757d1
audio: Add an Artwork object to the Player
...
And add it to the Sidebar box while we're at it
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
828fca9abd
pane: Change the initial position
...
Now that the sidebar switcher isn't in the pane, we can make it a
little smaller
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
18d001d0f0
ui: Replace the window's Grid with a Box
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
70f9bc5015
sidebar: Put the Pulser into the Sidebar.Box directly
...
Rather than putting it in the Window.Grid. I add some labels to provide
spacing and to make sure the pulser area stays visible even if the
pulser is hidden.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
05742d0bbc
sidebar: Move the pulser into the sidebar directory
...
I'm soon going to put it into the same box as the Stack
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
cf22a32fe7
window: Add the sidebar Switcher to the Grid directly
...
Rather than putting it in the Gtk.Paned
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:34 -04:00
146777119c
playlist: Move the Runtime and Visible widgets into the Playlist pane
...
Rather than being in a fixed position at the bottom of the window
they'll now align themselves based on the position of the Gtk.Paned
divider.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:34 -04:00
a6c78f55a3
audio: Create an audio Player instance
...
And update the header to include its widgets
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:17 -04:00
d2362368f3
playlist: Add a Controls instance above the ColumnView
...
And set up a FilterListModel so we can filter tracks
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
fa088ae8ea
playlist: Begin playlist widgets
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:02 -04:00
ba5f21b0c0
Icons: Add our custom icons to the search path
...
But only when we're running in debug mode. Running while installed
should use the icons from the default search path
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
d98eca8533
pulser: Hide the pulser when not pulsing
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
dc86b1c32e
pulser: Pulse for busses, too
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
fd43952d54
pulser: Pulse when threads are started
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
aff3fade6f
sidebar: Begin sidebar widgets
...
They involve a stack and a vbox where toggle buttons will eventually be
placed.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
b10851496c
runtime: Add widgets for runtime and visible tracks
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
5556ed163c
pulser: Add a progress bar to the UI window
...
The intention is to pulse it whenever a background thread is running. I
also add a horizontal separator to show that this is a separate area
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
9339ce22bb
pane: Add a GtkPane to the Window's grid
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
ac5c8c30d8
window: Add a GtkGrid as the window's main child
...
We'll pack in more widgets later
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
3566db7ede
header: Add Title and Subtitle widgets
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
5fc2944aec
header: Add a header bar to the window
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
5f23e34972
window: Set title and window icon
...
The window icon doesn't exist at this point, but set the name based on
what it will be called once we configure the icon theme properly
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
6f3558a83e
window: Handle user maximize / unmaximize
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
1c70390449
window: Handle user resizes
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00
2455d577df
UI: Start basic files for GtkApplication and GtkWindows
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:51:54 -04:00