playlist: Scroll to the current track in the ColumnView
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
da708a9810
commit
cee0f4e075
|
@ -14,6 +14,7 @@ class PlaylistView(Gtk.ColumnView):
|
||||||
self.set_hexpand(True)
|
self.set_hexpand(True)
|
||||||
self.set_vexpand(True)
|
self.set_vexpand(True)
|
||||||
self.connect("activate", self.activated)
|
self.connect("activate", self.activated)
|
||||||
|
audio.Player.connect("track-changed", self.track_changed)
|
||||||
|
|
||||||
self.append_column(column.TracknoColumn())
|
self.append_column(column.TracknoColumn())
|
||||||
self.append_column(column.TitleColumn())
|
self.append_column(column.TitleColumn())
|
||||||
|
@ -32,6 +33,16 @@ class PlaylistView(Gtk.ColumnView):
|
||||||
if index := plist.get_track_index(track):
|
if index := plist.get_track_index(track):
|
||||||
plist.current = index
|
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_filter_model(self): return self.get_model().get_filter_model()
|
||||||
def get_playlist(self): return self.get_model().get_playlist()
|
def get_playlist(self): return self.get_model().get_playlist()
|
||||||
def set_playlist(self, plist): self.get_model().set_playlist(plist)
|
def set_playlist(self, plist): self.get_model().set_playlist(plist)
|
||||||
|
|
Loading…
Reference in New Issue