sidebar: Add a key event controller to user tagrows
And respond to the delete key to remove playlists Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
00d43547e5
commit
193dd7c85c
|
@ -29,6 +29,7 @@ class TestUserSidebar(unittest.TestCase):
|
|||
row = user.UserTagRow(tag, "audio-x-generic")
|
||||
|
||||
self.assertIsInstance(row.remove, Gtk.Button)
|
||||
self.assertIsInstance(row.KeyEvent, Gtk.EventControllerKey)
|
||||
self.assertEqual(row.remove.get_icon_name(), "list-remove")
|
||||
self.assertIn(row.remove, row.grid)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
from . import tagbox
|
||||
from . import tagrow
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import Gtk, Gdk
|
||||
import trackdb
|
||||
|
||||
Icons = { "Collection" : "media-playback-start",
|
||||
|
@ -18,6 +18,14 @@ class UserTagRow(tagrow.TagRow):
|
|||
self.remove.connect("clicked", self.remove_tag)
|
||||
self.grid.attach(self.remove, 2, 0, 1, 1)
|
||||
|
||||
self.KeyEvent = Gtk.EventControllerKey()
|
||||
self.KeyEvent.connect("key-released", self.on_key_released)
|
||||
self.add_controller(self.KeyEvent)
|
||||
|
||||
def on_key_released(self, controller, keyval, keycode, state):
|
||||
if Gdk.keyval_name(keyval) == "Delete":
|
||||
trackdb.tags.User.remove(self.tag)
|
||||
|
||||
def remove_tag(self, button):
|
||||
trackdb.tags.User.remove(self.tag)
|
||||
|
||||
|
|
Loading…
Reference in New Issue