From 6223ef0ef03a387cbae7a8ba5ff35720f21bf747 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Fri, 28 Feb 2025 09:21:22 +0000 Subject: [PATCH] Don't allow deletion of current or next track Fixes: #283 --- app/playlists.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/playlists.py b/app/playlists.py index 6b32213..0bab593 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -774,14 +774,29 @@ class PlaylistTab(QTableView): if row_count < 1: return + # Don't delete current or next tracks + selected_row_numbers = self.selected_model_row_numbers() + for ts in [ + track_sequence.next, + track_sequence.current, + ]: + if ts: + if ( + ts.playlist_id == self.playlist_id + and ts.row_number in selected_row_numbers + ): + self.musicmuster.show_warning( + "Delete not allowed", "Can't delete current or next track" + ) + return + # Get confirmation plural = "s" if row_count > 1 else "" if not ask_yes_no("Delete rows", f"Really delete {row_count} row{plural}?"): return base_model = self.get_base_model() - - base_model.delete_rows(self.selected_model_row_numbers()) + base_model.delete_rows(selected_row_numbers) self.clear_selection() def get_base_model(self) -> PlaylistModel: