playlist: Give the playlist panel an add_selected_tracks() function

So we can have all the add track functionality in one place that also
allows for keyboard presses to work.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-12-09 19:25:16 -05:00
parent ba06eca07f
commit 798ef20a72
2 changed files with 14 additions and 5 deletions

View File

@ -43,6 +43,12 @@ class Panel(Gtk.Box):
for track in self.selected_tracks():
playlist.remove_track(track)
return True
elif name == "f":
self.add_selected_tracks(db.user.Table.find("Favorites"))
return True
elif name == "q":
self.add_selected_tracks(db.user.Table.find("Queued Tracks"))
return True
return False
def jump_clicked(self, button):
@ -52,3 +58,10 @@ class Panel(Gtk.Box):
def selected_tracks(self):
for track in self.window.selected_tracks():
yield track
def add_selected_tracks(self, plist):
for track in self.selected_tracks():
plist.add_track(track)
if plist == db.user.Table.find("Queued Tracks"):
audio.Player.set_playlist(plist)
db.sql.commit()

View File

@ -24,8 +24,4 @@ class Sidebar(Gtk.Box):
def add_to_playlist(self, button, playlist):
if playlist.can_add_remove_tracks():
for track in self.panel.selected_tracks():
playlist.add_track(track)
if playlist == db.user.Table.find("Queued Tracks"):
audio.Player.set_playlist(playlist)
db.sql.commit()
self.panel.add_selected_tracks(playlist)