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
if self._get_row_userdata(row_number, self.PLAYED):
self._add_context_menu("Mark unplayed",
lambda: self._mark_unplayed(row_number))
self._add_context_menu("Mark unplayed", self._mark_unplayed)
# Unmark as next
if next_row:
@ -1388,25 +1387,23 @@ class PlaylistTab(QTableWidget):
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:
plr = self._get_row_plr(session, row_number)
if not plr:
return
plr.played = False
for row_number in self._get_selected_rows():
_ = self._set_row_userdata(row_number, self.PLAYED, False)
self._set_row_bold(row_number, True)
plr = self._get_row_plr(session, row_number)
if not plr:
continue
plr.played = False
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,
new_row_number: int) -> None: