Don't automatically select previously played tracks

Fixes #89
This commit is contained in:
Keith Edmunds 2021-10-17 12:08:13 +01:00
parent 125a44c645
commit 62364fdaf1

View File

@ -405,9 +405,15 @@ class PlaylistTab(QTableWidget):
scroll_to = self.item(current_row, self.COL_INDEX)
self.scrollToItem(scroll_to, QAbstractItemView.PositionAtCenter)
# Get next track
next_track_row = self._find_next_track_row()
next_track_id = self._set_next(next_track_row)
# Get next track, but skip tracks already played
search_starting_row = current_row + 1
while True:
next_track_row = self._find_next_track_row(search_starting_row)
next_track_id = self._set_next(next_track_row)
if next_track_id not in self.played_tracks:
break
search_starting_row += 1
self._repaint()
return next_track_id
@ -813,7 +819,7 @@ class PlaylistTab(QTableWidget):
if column in [self.COL_TITLE, self.COL_ARTIST]:
self.editItem(item)
def _find_next_track_row(self):
def _find_next_track_row(self, starting_row=None):
"""
Find next track to play.
@ -823,13 +829,14 @@ class PlaylistTab(QTableWidget):
"""
found_next_track = False
current_row = self._meta_get_current()
if current_row is not None:
start = current_row + 1
else:
start = 0
if starting_row is None:
current_row = self._meta_get_current()
if current_row is not None:
starting_row = current_row + 1
else:
starting_row = 0
notes_rows = self._meta_get_notes()
for row in range(start, self.rowCount()):
for row in range(starting_row, self.rowCount()):
if row in notes_rows:
continue
found_next_track = True