diff --git a/sublime/ui/app_styles.css b/sublime/ui/app_styles.css
index c65101e..c330b36 100644
--- a/sublime/ui/app_styles.css
+++ b/sublime/ui/app_styles.css
@@ -3,6 +3,11 @@
/* box-shadow: 0px 0px 3px green; */
}
+#menu-label {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
#main-menu-box {
min-width: 230px;
}
diff --git a/sublime/ui/common/album_with_songs.py b/sublime/ui/common/album_with_songs.py
index dafe463..9d2369b 100644
--- a/sublime/ui/common/album_with_songs.py
+++ b/sublime/ui/common/album_with_songs.py
@@ -84,14 +84,14 @@ class AlbumWithSongs(Gtk.Box):
album_title_and_buttons.pack_start(self.shuffle_btn, False, False, 5)
self.play_next_btn = IconButton(
- "go-top-symbolic",
+ "queue-front-symbolic",
"Play all of the songs in this album next",
sensitive=False,
)
album_title_and_buttons.pack_start(self.play_next_btn, False, False, 5)
self.add_to_queue_btn = IconButton(
- "go-jump-symbolic",
+ "queue-back-symbolic",
"Add all the songs in this album to the end of the play queue",
sensitive=False,
)
diff --git a/sublime/ui/icons/chromecast-symbolic.svg b/sublime/ui/icons/chromecast-symbolic.svg
new file mode 100644
index 0000000..16d727f
--- /dev/null
+++ b/sublime/ui/icons/chromecast-symbolic.svg
@@ -0,0 +1,3 @@
+
diff --git a/sublime/ui/icons/queue-back-symbolic.svg b/sublime/ui/icons/queue-back-symbolic.svg
new file mode 100644
index 0000000..bbf25bb
--- /dev/null
+++ b/sublime/ui/icons/queue-back-symbolic.svg
@@ -0,0 +1 @@
+
diff --git a/sublime/ui/icons/queue-front-symbolic.svg b/sublime/ui/icons/queue-front-symbolic.svg
new file mode 100644
index 0000000..e8e1662
--- /dev/null
+++ b/sublime/ui/icons/queue-front-symbolic.svg
@@ -0,0 +1 @@
+
diff --git a/sublime/ui/main.py b/sublime/ui/main.py
index 635e3f1..b62f514 100644
--- a/sublime/ui/main.py
+++ b/sublime/ui/main.py
@@ -233,13 +233,38 @@ class MainWindow(Gtk.ApplicationWindow):
def _create_downloads_popover(self) -> Gtk.PopoverMenu:
menu = Gtk.PopoverMenu()
- vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, name="main-menu-box")
+ vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, name="downloads-menu")
- download_settings = Gtk.ModelButton(
+ vbox.add(self._create_label("Current Downloads", name="menu-label"))
+
+ clear_cache = Gtk.ModelButton(
text="Clear Cache", menu_name="clear-cache", name="menu-item-clear-cache",
)
- download_settings.get_style_context().add_class("menu-button")
- vbox.add(download_settings)
+ clear_cache.get_style_context().add_class("menu-button")
+ vbox.add(clear_cache)
+
+ # Create the "Add song(s) to playlist" sub-menu.
+ clear_cache_options = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
+
+ # Back button
+ clear_cache_options.add(
+ Gtk.ModelButton(inverted=True, centered=True, menu_name="main")
+ )
+
+ # Clear Song File Cache
+ menu_items = [
+ ("Clear Song File Cache", lambda _: print("clear song file cache")),
+ ("Clear Metadata Cache", lambda _: print("clear metadata cache")),
+ ("Clear Entire Cache", lambda _: print("clear entire cache")),
+ ]
+ for text, clicked_fn in menu_items:
+ clear_song_cache = Gtk.ModelButton(text=text)
+ clear_song_cache.get_style_context().add_class("menu-button")
+ clear_song_cache.connect("clicked", clicked_fn)
+ clear_cache_options.pack_start(clear_song_cache, False, True, 0)
+
+ menu.add(clear_cache_options)
+ menu.child_set_property(clear_cache_options, "submenu", "clear-cache")
menu.add(vbox)
return menu
diff --git a/sublime/ui/player_controls.py b/sublime/ui/player_controls.py
index 0f6876f..a96ba53 100644
--- a/sublime/ui/player_controls.py
+++ b/sublime/ui/player_controls.py
@@ -609,7 +609,7 @@ class PlayerControls(Gtk.ActionBar):
# Device button (for chromecast)
self.device_button = IconButton(
- "video-display-symbolic",
+ "chromecast-symbolic",
"Show available audio output devices",
icon_size=Gtk.IconSize.LARGE_TOOLBAR,
)