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, )