playlist: Create a way to get the current selected tracks

I do this as a generator so we can work with tracks as we find them.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-12-05 12:05:33 -05:00
parent f15514edd1
commit bbe48ccf82
2 changed files with 11 additions and 0 deletions

View File

@ -29,3 +29,7 @@ class Panel(Gtk.Box):
def jump_clicked(self, button):
view = self.window.get_child()
view.track_changed(audio.Player, None, audio.Player.track)
def selected_tracks(self):
for track in self.window.selected_tracks():
yield track

View File

@ -33,6 +33,12 @@ class PlaylistView(Gtk.ColumnView):
if index := plist.get_track_index(track):
plist.current = index
def selected_tracks(self):
model = self.get_model()
selection = model.get_selection()
for n in range(selection.get_size()):
yield model.get_item(selection.get_nth(n))
def track_changed(self, player, old, new):
selection = self.get_model()
adjustment = self.get_vadjustment()
@ -56,6 +62,7 @@ class PlaylistWindow(Gtk.ScrolledWindow):
def get_filter_model(self): return self.get_child().get_filter_model()
def get_playlist(self): return self.get_child().get_playlist()
def set_playlist(self, plist): self.get_child().set_playlist(plist)
def selected_tracks(self): return self.get_child().selected_tracks()
class SortOrderView(Gtk.ListView):