Better fix for setting track/header row spans correctly
This commit is contained in:
parent
c6befd219c
commit
184318078f
@ -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(
|
||||
|
||||
@ -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)
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user