From 184318078f3724a6748b8756fed6a2817b0ee82c Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Fri, 15 Dec 2023 17:55:22 +0000 Subject: [PATCH] Better fix for setting track/header row spans correctly --- app/musicmuster.py | 5 ++++- app/playlistmodel.py | 39 ++++++--------------------------------- 2 files changed, 10 insertions(+), 34 deletions(-) diff --git a/app/musicmuster.py b/app/musicmuster.py index e1d12f0..abad351 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -1029,7 +1029,10 @@ class Window(QMainWindow, Ui_MainWindow): else: destination_row = self.active_model().rowCount() - if to_playlist_model.playlist_id == self.move_source_model.data_model.playlist_id: + if ( + to_playlist_model.playlist_id + == self.move_source_model.data_model.playlist_id + ): self.move_source_model.move_rows(self.move_source_rows, destination_row) else: self.move_source_model.move_rows_between_playlists( diff --git a/app/playlistmodel.py b/app/playlistmodel.py index 115e68e..6f0ca59 100644 --- a/app/playlistmodel.py +++ b/app/playlistmodel.py @@ -175,10 +175,6 @@ class PlaylistModel(QAbstractTableModel): # Add any further note (header will already have a note) if note: plr.note += "\n" + note - # Reset header row spanning - self.signals.span_cells_signal.emit( - self.playlist_id, row_number, HEADER_NOTES_COLUMN, 1, 1 - ) # Update local copy self.refresh_row(session, row_number) # Repaint row @@ -382,15 +378,14 @@ class PlaylistModel(QAbstractTableModel): Return text for display """ + # Set / reset column span + column_span = 1 + if self.is_header_row(row) and column == HEADER_NOTES_COLUMN: + column_span = self.columnCount() - 1 + self.signals.span_cells_signal.emit(self.playlist_id, row, HEADER_NOTES_COLUMN, 1, + column_span) if self.is_header_row(row): if column == HEADER_NOTES_COLUMN: - self.signals.span_cells_signal.emit( - self.playlist_id, - row, - HEADER_NOTES_COLUMN, - 1, - self.columnCount() - 1, - ) header_text = self.header_text(prd) if not header_text: return QVariant(Config.TEXT_NO_TRACK_NO_NOTE) @@ -720,14 +715,6 @@ class PlaylistModel(QAbstractTableModel): new_row_number = self._get_new_row_number(proposed_row_number) - # We need to check for header rows at and below where we are - # inserting a row and reset column spanning. - for row_number in range(new_row_number, len(self.playlist_rows)): - if self.is_header_row(row_number): - self.signals.span_cells_signal.emit( - self.playlist_id, row_number, HEADER_NOTES_COLUMN, 1, 1 - ) - with Session() as session: super().beginInsertRows(QModelIndex(), new_row_number, new_row_number) plr = PlaylistRows.insert_row(session, self.playlist_id, new_row_number) @@ -838,13 +825,6 @@ class PlaylistModel(QAbstractTableModel): if old_row != new_row: row_map[old_row] = new_row - # Reset any header rows that we're moving - for moving_row in row_map: - if self.is_header_row(moving_row): - # Reset column span - self.signals.span_cells_signal.emit( - self.playlist_id, moving_row, HEADER_NOTES_COLUMN, 1, 1 - ) # Check to see whether any rows in track_sequence have moved if track_sequence.previous.plr_rownum in row_map: track_sequence.previous.plr_rownum = row_map[ @@ -899,13 +879,6 @@ class PlaylistModel(QAbstractTableModel): and to_row_number <= max_destination_row_number ): # Move the destination playlist rows down to make room. - # If any of the rows moving are header rows, reset the - # column spanning. - for row_number in range(to_row_number, to_row_number + len(from_rows)): - if to_playlist_model.is_header_row(row_number): - self.signals.span_cells_signal.emit( - to_playlist_id, row_number, HEADER_NOTES_COLUMN, 1, 1 - ) PlaylistRows.move_rows_down( session, to_playlist_id, to_row_number, len(from_rows) )