Allow multiple selected rows to be marked unplayed

This commit is contained in:
Keith Edmunds 2023-03-19 13:47:49 +00:00
parent c9c47c3133
commit 728feb1c8e

View File

@ -984,8 +984,7 @@ class PlaylistTab(QTableWidget):
# Mark unplayed # Mark unplayed
if self._get_row_userdata(row_number, self.PLAYED): if self._get_row_userdata(row_number, self.PLAYED):
self._add_context_menu("Mark unplayed", self._add_context_menu("Mark unplayed", self._mark_unplayed)
lambda: self._mark_unplayed(row_number))
# Unmark as next # Unmark as next
if next_row: if next_row:
@ -1388,25 +1387,23 @@ class PlaylistTab(QTableWidget):
and pos.y() >= rect.center().y() # noqa W503 and pos.y() >= rect.center().y() # noqa W503
) )
def _mark_unplayed(self, row_number: int) -> None: def _mark_unplayed(self) -> None:
""" """
Mark passed row as unplayed in this playlist Mark selected rows as unplayed in this playlist
""" """
if row_number is None:
return
_ = self._set_row_userdata(row_number, self.PLAYED, False)
self._set_row_bold(row_number, True)
self.clear_selection()
with Session() as session: with Session() as session:
plr = self._get_row_plr(session, row_number) for row_number in self._get_selected_rows():
if not plr: _ = self._set_row_userdata(row_number, self.PLAYED, False)
return self._set_row_bold(row_number, True)
plr.played = False
plr = self._get_row_plr(session, row_number)
if not plr:
continue
plr.played = False
self._update_start_end_times(session) self._update_start_end_times(session)
self.hide_or_show_played_tracks() self.clear_selection()
self.hide_or_show_played_tracks()
def _move_row(self, session: scoped_session, plr: PlaylistRows, def _move_row(self, session: scoped_session, plr: PlaylistRows,
new_row_number: int) -> None: new_row_number: int) -> None: