From 4265472d7318d0d0021461a9a7a536ee3e0e8cb1 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Fri, 14 Mar 2025 13:22:12 +0000 Subject: [PATCH] Keep track of selected rows in model --- app/playlistmodel.py | 8 ++++++++ app/playlists.py | 3 +++ 2 files changed, 11 insertions(+) diff --git a/app/playlistmodel.py b/app/playlistmodel.py index 46eb5e4..c35e028 100644 --- a/app/playlistmodel.py +++ b/app/playlistmodel.py @@ -1426,6 +1426,14 @@ class PlaylistModel(QAbstractTableModel): return True + def set_selected_rows(self, selected_rows: list[int]) -> None: + """ + Keep track of which rows are selected in the view + """ + + self.selected_rows = [self.playlist_rows[a] for a in selected_rows] + import pdb; pdb.set_trace() + def set_next_row(self, row_number: Optional[int]) -> None: """ Set row_number as next track. If row_number is None, clear next track. diff --git a/app/playlists.py b/app/playlists.py index 67c4db9..321c383 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -456,11 +456,14 @@ class PlaylistTab(QTableView): self, selected: QItemSelection, deselected: QItemSelection ) -> None: """ + Tell model which rows are selected. + Toggle drag behaviour according to whether rows are selected """ selected_rows = self.get_selected_rows() self.musicmuster.current.selected_rows = selected_rows + self.get_base_model().set_selected_rows(selected_rows) # If no rows are selected, we have nothing to do if len(selected_rows) == 0: