Fix delete rows bug

Fixes #225
This commit is contained in:
Keith Edmunds 2024-02-23 12:26:42 +00:00
parent 2976ceaa22
commit 0e2c8c6056

View File

@ -363,12 +363,15 @@ class PlaylistModel(QAbstractTableModel):
Need to delete them in contiguous groups wrapped in beginRemoveRows / endRemoveRows Need to delete them in contiguous groups wrapped in beginRemoveRows / endRemoveRows
calls. To keep it simple, if inefficient, delete rows one by one. 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: 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) super().beginRemoveRows(QModelIndex(), row_number, row_number)
# We need to remove data from the underlying data store, # We need to remove data from the underlying data store,
# which is the database, but we cache in # which is the database, but we cache in