Better fix for setting track/header row spans correctly

This commit is contained in:
Keith Edmunds 2023-12-15 17:55:22 +00:00
parent c6befd219c
commit 184318078f
2 changed files with 10 additions and 34 deletions

View File

@ -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(

View File

@ -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)
)