[gnome-music/wip/cdavis/hdywindow-hdyviewswitcher: 2/5] Use HdyViewSwitcher




commit efc5c7207342680cd465ed0072939cb70b3221c3
Author: Christopher Davis <brainblasted disroot org>
Date:   Wed Feb 3 23:04:36 2021 -0800

    Use HdyViewSwitcher
    
    Apps are now moving to use HdyViewSwitcher instead of
    GtkStackSwitcher for their main navigation.

 gnome-music.in                    | 4 +++-
 gnomemusic/views/albumsview.py    | 3 +++
 gnomemusic/views/artistsview.py   | 3 +++
 gnomemusic/views/playlistsview.py | 3 +++
 gnomemusic/views/songsview.py     | 3 +++
 gnomemusic/widgets/headerbar.py   | 4 ++--
 gnomemusic/window.py              | 2 ++
 meson.build                       | 1 +
 8 files changed, 20 insertions(+), 3 deletions(-)
---
diff --git a/gnome-music.in b/gnome-music.in
index 7b93e60a3..ca1a3ddac 100755
--- a/gnome-music.in
+++ b/gnome-music.in
@@ -43,9 +43,11 @@ import gi
 gi.require_version('Gtk', '3.0')
 gi.require_version('GIRepository', '2.0')
 gi.require_version('Gst', '1.0')
-from gi.repository import GIRepository, Gio, Gtk, Gst
+gi.require_version("Handy", "1")
+from gi.repository import GIRepository, Gio, Gtk, Gst, Handy
 
 Gst.init(None)
+Handy.init()
 
 LOCALE_DIR = '@localedir@'
 PKGDATA_DIR = '@pkgdatadir@'
diff --git a/gnomemusic/views/albumsview.py b/gnomemusic/views/albumsview.py
index 0b2f0ab8a..533e35947 100644
--- a/gnomemusic/views/albumsview.py
+++ b/gnomemusic/views/albumsview.py
@@ -41,6 +41,9 @@ class AlbumsView(Gtk.Stack):
 
     __gtype_name__ = "AlbumsView"
 
+    icon_name = GObject.Property(
+        type=str, default="media-optical-cd-audio-symbolic",
+        flags=GObject.ParamFlags.READABLE)
     search_mode_active = GObject.Property(type=bool, default=False)
     selection_mode = GObject.Property(type=bool, default=False)
     title = GObject.Property(
diff --git a/gnomemusic/views/artistsview.py b/gnomemusic/views/artistsview.py
index 7666b6ce2..c32069397 100644
--- a/gnomemusic/views/artistsview.py
+++ b/gnomemusic/views/artistsview.py
@@ -39,6 +39,9 @@ class ArtistsView(Gtk.Box):
 
     __gtype_name__ = "ArtistsView"
 
+    icon_name = GObject.Property(
+        type=str, default="system-users-symbolic",
+        flags=GObject.ParamFlags.READABLE)
     title = GObject.Property(
         type=str, default=_("Artists"), flags=GObject.ParamFlags.READABLE)
 
diff --git a/gnomemusic/views/playlistsview.py b/gnomemusic/views/playlistsview.py
index 9f4bde820..a6db6e964 100644
--- a/gnomemusic/views/playlistsview.py
+++ b/gnomemusic/views/playlistsview.py
@@ -37,6 +37,9 @@ class PlaylistsView(Gtk.Box):
 
     __gtype_name__ = "PlaylistsView"
 
+    icon_name = GObject.Property(
+        type=str, default="view-list-symbolic",
+        flags=GObject.ParamFlags.READABLE)
     title = GObject.Property(
         type=str, default=_("Playlists"), flags=GObject.ParamFlags.READABLE)
 
diff --git a/gnomemusic/views/songsview.py b/gnomemusic/views/songsview.py
index d347d5dce..ee7752ee4 100644
--- a/gnomemusic/views/songsview.py
+++ b/gnomemusic/views/songsview.py
@@ -40,6 +40,9 @@ class SongsView(Gtk.ScrolledWindow):
 
     __gtype_name__ = "SongsView"
 
+    icon_name = GObject.Property(
+        type=str, default="emblem-music-symbolic",
+        flags=GObject.ParamFlags.READABLE)
     title = GObject.Property(
         type=str, default=_("Songs"), flags=GObject.ParamFlags.READABLE)
 
diff --git a/gnomemusic/widgets/headerbar.py b/gnomemusic/widgets/headerbar.py
index ee1639637..37b98eeda 100644
--- a/gnomemusic/widgets/headerbar.py
+++ b/gnomemusic/widgets/headerbar.py
@@ -25,7 +25,7 @@
 from enum import IntEnum
 
 from gettext import gettext as _, ngettext
-from gi.repository import GObject, Gtk
+from gi.repository import GObject, Gtk, Handy
 
 from gnomemusic.widgets.appmenu import AppMenu
 
@@ -108,7 +108,7 @@ class HeaderBar(Gtk.HeaderBar):
 
         self._selection_mode = False
 
-        self._stack_switcher = Gtk.StackSwitcher(
+        self._stack_switcher = Handy.ViewSwitcher(
             can_focus=False, halign="center")
         self._stack_switcher.show()
 
diff --git a/gnomemusic/window.py b/gnomemusic/window.py
index b4ca3676d..fcfa038f2 100644
--- a/gnomemusic/window.py
+++ b/gnomemusic/window.py
@@ -258,6 +258,8 @@ class Window(Gtk.ApplicationWindow):
         for i in self.views[View.ALBUM:]:
             if i.props.title:
                 self._stack.add_titled(i, i.props.name, i.props.title)
+                self._stack.child_set_property(
+                    i, "icon-name", i.props.icon_name)
             else:
                 self._stack.add_named(i, i.props.name)
 
diff --git a/meson.build b/meson.build
index c9f54f396..23b5c225c 100644
--- a/meson.build
+++ b/meson.build
@@ -45,6 +45,7 @@ dependency('glib-2.0', version: '>= 2.67.1')
 dependency('goa-1.0', version: '>= 3.35.90')
 dependency('gobject-introspection-1.0', version: '>= 1.35.0')
 dependency('gtk+-3.0', version: '>= 3.24.13')
+dependency('libhandy-1', version: '>= 1.0.0')
 dependency('libdazzle-1.0', version: '>= 3.28.0')
 dependency('libmediaart-2.0', version: '>= 1.9.1')
 dependency('libsoup-2.4')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]