# Copyright 2021 (c) Anna Schumaker. from . import tagbox from . import tagrow from gi.repository import Gtk, Gdk import tagdb Icons = { "Collection" : "media-playback-start", "Favorites" : "emblem-favorites", "New Tracks" : "starred", "Previous" : "edit-undo", "Up Next" : "edit-redo" } class UserTagRow(tagrow.TagRow): def __init__(self, tag, icon): tagrow.TagRow.__init__(self, tag, icon) self.remove = Gtk.Button.new_from_icon_name("list-remove") 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": tagdb.tags.User.remove(self.tag) def remove_tag(self, button): tagdb.tags.User.remove(self.tag) class UserTagBox(tagbox.TagBox): def __alloc_tagrow__(self, tag): if tag.name not in Icons.keys(): return UserTagRow(tag, self.icon) return tagrow.TagRow(tag, Icons.get(tag.name, self.icon)) TagBox = UserTagBox(tagdb.tags.User, "audio-x-generic")