diff --git a/app/playlistmodel.py b/app/playlistmodel.py index 6dfc3d8..5a8c30b 100644 --- a/app/playlistmodel.py +++ b/app/playlistmodel.py @@ -363,12 +363,15 @@ class PlaylistModel(QAbstractTableModel): Need to delete them in contiguous groups wrapped in beginRemoveRows / endRemoveRows calls. To keep it simple, if inefficient, delete rows one by one. + + TODO: delete in blocks + + Delete from highest row back so that not yet deleted row numbers don't change. """ - log.info(f"delete_rows({row_numbers=}") - with Session() as session: - for row_number in row_numbers: + for row_number in sorted(row_numbers, reverse=True): + log.info(f"delete_rows(), {row_number=}") super().beginRemoveRows(QModelIndex(), row_number, row_number) # We need to remove data from the underlying data store, # which is the database, but we cache in