From 0e2c8c6056254c80a363e72ce1ec15f1fb9be097 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Fri, 23 Feb 2024 12:26:42 +0000 Subject: [PATCH] Fix delete rows bug Fixes #225 --- app/playlistmodel.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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