From 728feb1c8e00829ded666d02ad864fb8b440d4ff Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Sun, 19 Mar 2023 13:47:49 +0000 Subject: [PATCH] Allow multiple selected rows to be marked unplayed --- app/playlists.py | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/app/playlists.py b/app/playlists.py index 0609a9c..2bb4328 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -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: