diff --git a/playlist/view.py b/playlist/view.py index acb7171..3dc3bd9 100644 --- a/playlist/view.py +++ b/playlist/view.py @@ -14,6 +14,7 @@ class PlaylistView(Gtk.ColumnView): self.set_hexpand(True) self.set_vexpand(True) self.connect("activate", self.activated) + audio.Player.connect("track-changed", self.track_changed) self.append_column(column.TracknoColumn()) self.append_column(column.TitleColumn()) @@ -32,6 +33,16 @@ class PlaylistView(Gtk.ColumnView): if index := plist.get_track_index(track): plist.current = index + def track_changed(self, player, old, new): + selection = self.get_model() + adjustment = self.get_vadjustment() + for i in range(selection.get_n_items()): + if selection.get_item(i) == new: + selection.select_item(i, True) + pos = max(i - 5, 0) * adjustment.get_upper() + adjustment.set_value(pos / selection.get_n_items()) + return + def get_filter_model(self): return self.get_model().get_filter_model() def get_playlist(self): return self.get_model().get_playlist() def set_playlist(self, plist): self.get_model().set_playlist(plist)