From bbe48ccf8236a277aa8a68995a41574337957051 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 5 Dec 2021 12:05:33 -0500 Subject: [PATCH] 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 --- playlist/__init__.py | 4 ++++ playlist/view.py | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/playlist/__init__.py b/playlist/__init__.py index 17af829..6f692ac 100644 --- a/playlist/__init__.py +++ b/playlist/__init__.py @@ -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 diff --git a/playlist/view.py b/playlist/view.py index 3dc3bd9..0757e8e 100644 --- a/playlist/view.py +++ b/playlist/view.py @@ -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):