playlist: Change tracks when rows are activated

And make sure we update plist.current to the selected index.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-11-20 17:12:52 -05:00
parent 594f7991f2
commit 78647884d6
1 changed files with 9 additions and 0 deletions

View File

@ -1,4 +1,5 @@
# Copyright 2021 (c) Anna Schumaker.
import audio
from gi.repository import Gtk
from . import column
from . import model
@ -12,6 +13,7 @@ class PlaylistView(Gtk.ColumnView):
self.set_enable_rubberband(True)
self.set_hexpand(True)
self.set_vexpand(True)
self.connect("activate", self.activated)
self.append_column(column.TracknoColumn())
self.append_column(column.TitleColumn())
@ -23,6 +25,13 @@ class PlaylistView(Gtk.ColumnView):
self.append_column(column.PlayCountColumn())
self.append_column(column.LastPlayedColumn())
def activated(self, view, position):
track = self.get_model().get_item(position)
if audio.play_track(track):
plist = self.get_playlist()
if index := plist.get_track_index(track):
plist.current = index
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)