sidebar: Give sidebar widgets tooltip properties
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
d807f8bd36
commit
c375d2366a
|
@ -35,6 +35,8 @@ class Section(section.Section):
|
|||
subtitle="0 artists, 0 albums",
|
||||
icon_name="library-artists", album_table=album_table)
|
||||
self.extra_widget = ImageToggle("music-artist", "music-artist2",
|
||||
"show album artists",
|
||||
"show all artists",
|
||||
large_icon=False, has_frame=False)
|
||||
self.album_table.connect("items-changed", self.__update_subtitle)
|
||||
self.bind_property("show-all", self.extra_widget, "active",
|
||||
|
|
|
@ -41,7 +41,8 @@ class Section(section.Section):
|
|||
"""Initialize our library path section."""
|
||||
super().__init__(table, LibraryRow, icon_name="library-music",
|
||||
title="Library Paths", subtitle="0 library paths")
|
||||
self.extra_widget = Gtk.Button(icon_name="folder-new", has_frame=False)
|
||||
self.extra_widget = Gtk.Button(icon_name="folder-new", has_frame=False,
|
||||
tooltip_text="add new library path")
|
||||
self._dialog = Gtk.FileDialog(title="Pick a Directory",
|
||||
filters=DIRECTORY_FILTERS)
|
||||
self._toast = None
|
||||
|
|
|
@ -50,6 +50,8 @@ class Section(section.Section):
|
|||
self._entry = Gtk.Entry(placeholder_text="add new playlist",
|
||||
primary_icon_name="list-add")
|
||||
self.extra_widget = buttons.PopoverButton(icon_name="document-new",
|
||||
tooltip_text=("add new "
|
||||
"playlist"),
|
||||
has_frame=False,
|
||||
popover_child=self._entry)
|
||||
|
||||
|
|
|
@ -63,6 +63,7 @@ class PlaylistRow(BaseRow):
|
|||
self._icon = Settable()
|
||||
self._title = EditableTitle(margin_start=12, margin_end=12)
|
||||
self._delete = Gtk.Button(icon_name="big-x-symbolic",
|
||||
tooltip_text="delete playlist",
|
||||
valign=Gtk.Align.CENTER,
|
||||
has_frame=False, visible=False)
|
||||
|
||||
|
@ -109,13 +110,17 @@ class LibraryRow(BaseRow):
|
|||
super().__init__(**kwargs)
|
||||
self._box = Gtk.Box()
|
||||
self._overlay = Gtk.Overlay(child=self._box)
|
||||
self._switch = Gtk.Switch(active=self.enabled, valign=Gtk.Align.CENTER)
|
||||
self._switch = Gtk.Switch(active=self.enabled, valign=Gtk.Align.CENTER,
|
||||
tooltip_text="disable library path")
|
||||
self._title = PlaylistTitle(margin_start=12, margin_end=12)
|
||||
self._scan = Gtk.Button(icon_name="update", has_frame=False,
|
||||
tooltip_text="update library path",
|
||||
valign=Gtk.Align.CENTER)
|
||||
self._stop = Gtk.Button(icon_name="stop-sign-large", has_frame=False,
|
||||
tooltip_text="cancel update",
|
||||
valign=Gtk.Align.CENTER, visible=False)
|
||||
self._delete = Gtk.Button(icon_name="big-x-symbolic",
|
||||
tooltip_text="delete library path",
|
||||
valign=Gtk.Align.CENTER, has_frame=False)
|
||||
self._progress = Gtk.ProgressBar(valign=Gtk.Align.END, visible=False)
|
||||
|
||||
|
@ -137,6 +142,7 @@ class LibraryRow(BaseRow):
|
|||
self._delete.connect("clicked", self.__on_button_press, "delete")
|
||||
self._scan.connect("clicked", self.__on_button_press, "scan")
|
||||
self._stop.connect("clicked", self.__on_button_press, "stop")
|
||||
self._switch.connect("notify::active", self.__on_switch_activated)
|
||||
|
||||
self._delete.add_css_class("emmental-delete")
|
||||
self._stop.add_css_class("emmental-stop")
|
||||
|
@ -157,6 +163,10 @@ class LibraryRow(BaseRow):
|
|||
case "scan": self.playlist.scan()
|
||||
case "stop": self.playlist.stop()
|
||||
|
||||
def __on_switch_activated(self, switch: Gtk.Switch, param) -> None:
|
||||
state = "disable" if self.enabled else "enable"
|
||||
self._switch.set_tooltip_text(f"{state} library path")
|
||||
|
||||
|
||||
class TreeRow(factory.TreeRow):
|
||||
"""A factory Row used for displaying individual playlists."""
|
||||
|
|
|
@ -33,8 +33,12 @@ class TestArtist(tests.util.TestCase):
|
|||
emmental.buttons.ImageToggle)
|
||||
self.assertEqual(self.artists.extra_widget.active_icon_name,
|
||||
"music-artist")
|
||||
self.assertEqual(self.artists.extra_widget.active_tooltip_text,
|
||||
"show album artists")
|
||||
self.assertEqual(self.artists.extra_widget.inactive_icon_name,
|
||||
"music-artist2")
|
||||
self.assertEqual(self.artists.extra_widget.inactive_tooltip_text,
|
||||
"show all artists")
|
||||
self.assertFalse(self.artists.extra_widget.large_icon)
|
||||
self.assertFalse(self.artists.extra_widget.get_has_frame())
|
||||
|
||||
|
|
|
@ -33,6 +33,8 @@ class TestLibraries(tests.util.TestCase):
|
|||
self.assertIsInstance(self.libraries.extra_widget, Gtk.Button)
|
||||
self.assertEqual(self.libraries.extra_widget.get_icon_name(),
|
||||
"folder-new")
|
||||
self.assertEqual(self.libraries.extra_widget.get_tooltip_text(),
|
||||
"add new library path")
|
||||
self.assertFalse(self.libraries.extra_widget.get_has_frame())
|
||||
|
||||
mock_set_initial_file = unittest.mock.Mock()
|
||||
|
|
|
@ -52,6 +52,8 @@ class TestPlaylists(tests.util.TestCase):
|
|||
emmental.buttons.PopoverButton)
|
||||
self.assertEqual(self.playlists.extra_widget.get_icon_name(),
|
||||
"document-new")
|
||||
self.assertEqual(self.playlists.extra_widget.get_tooltip_text(),
|
||||
"add new playlist")
|
||||
self.assertEqual(self.playlists.extra_widget.popover_child,
|
||||
self.playlists._entry)
|
||||
self.assertFalse(self.playlists.extra_widget.get_has_frame())
|
||||
|
|
|
@ -147,6 +147,8 @@ class TestPlaylistRow(unittest.TestCase):
|
|||
self.assertEqual(self.row._title.get_next_sibling(), self.row._delete)
|
||||
|
||||
self.assertEqual(self.row._delete.get_icon_name(), "big-x-symbolic")
|
||||
self.assertEqual(self.row._delete.get_tooltip_text(),
|
||||
"delete playlist")
|
||||
self.assertEqual(self.row._delete.get_valign(), Gtk.Align.CENTER)
|
||||
self.assertFalse(self.row._delete.get_has_frame())
|
||||
self.assertTrue(self.row._delete.has_css_class("emmental-delete"))
|
||||
|
@ -209,14 +211,20 @@ class TestLibraryRow(unittest.TestCase):
|
|||
self.assertTrue(self.row.enabled)
|
||||
self.assertTrue(self.row._switch.get_active())
|
||||
self.assertTrue(self.row._title.get_sensitive())
|
||||
self.assertEqual(self.row._switch.get_tooltip_text(),
|
||||
"disable library path")
|
||||
|
||||
self.row.enabled = False
|
||||
self.assertFalse(self.row._switch.get_active())
|
||||
self.assertFalse(self.row._title.get_sensitive())
|
||||
self.assertEqual(self.row._switch.get_tooltip_text(),
|
||||
"enable library path")
|
||||
|
||||
self.row._switch.set_active(True)
|
||||
self.assertTrue(self.row.enabled)
|
||||
self.assertTrue(self.row._title.get_sensitive())
|
||||
self.assertEqual(self.row._switch.get_tooltip_text(),
|
||||
"disable library path")
|
||||
|
||||
def test_progress(self):
|
||||
"""Test the progress bar widget and property."""
|
||||
|
@ -247,6 +255,8 @@ class TestLibraryRow(unittest.TestCase):
|
|||
"""Test the scan button."""
|
||||
self.assertIsInstance(self.row._scan, Gtk.Button)
|
||||
self.assertEqual(self.row._scan.get_icon_name(), "update")
|
||||
self.assertEqual(self.row._scan.get_tooltip_text(),
|
||||
"update library path")
|
||||
self.assertEqual(self.row._scan.get_valign(), Gtk.Align.CENTER)
|
||||
self.assertFalse(self.row._scan.get_has_frame())
|
||||
self.assertEqual(self.row._title.get_next_sibling(), self.row._scan)
|
||||
|
@ -262,6 +272,7 @@ class TestLibraryRow(unittest.TestCase):
|
|||
"""Test the stop button."""
|
||||
self.assertIsInstance(self.row._stop, Gtk.Button)
|
||||
self.assertEqual(self.row._stop.get_icon_name(), "stop-sign-large")
|
||||
self.assertEqual(self.row._stop.get_tooltip_text(), "cancel update")
|
||||
self.assertEqual(self.row._stop.get_valign(), Gtk.Align.CENTER)
|
||||
self.assertFalse(self.row._stop.get_has_frame())
|
||||
self.assertTrue(self.row._stop.has_css_class("emmental-stop"))
|
||||
|
@ -278,6 +289,8 @@ class TestLibraryRow(unittest.TestCase):
|
|||
"""Test the delete button."""
|
||||
self.assertIsInstance(self.row._delete, Gtk.Button)
|
||||
self.assertEqual(self.row._delete.get_icon_name(), "big-x-symbolic")
|
||||
self.assertEqual(self.row._delete.get_tooltip_text(),
|
||||
"delete library path")
|
||||
self.assertEqual(self.row._delete.get_valign(), Gtk.Align.CENTER)
|
||||
self.assertFalse(self.row._delete.get_has_frame())
|
||||
self.assertTrue(self.row._delete.has_css_class("emmental-delete"))
|
||||
|
|
Loading…
Reference in New Issue