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